tcpdump工具

来源:互联网 发布:淘宝店招怎么做全屏 编辑:程序博客网 时间:2024/06/07 08:55

tcpdump工具


tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
    [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
    [ -T 类型 ] [ -w 文件名 ] [表达式 ]

OPTIONS
-A    以ASCII格式打印所有分组
-c    收到count个包后退出
-C    在将包写入文件前,先检查文件大小是否超过file_size大小,如果超过则关闭该文件并重新打开新文件
-D    打印出系统中所有可用tcpdump监听的端口
-e    打印出链路层包头信息
-f    将外部的Internet地址以数字的形式打印出来
-F    从指定文件中读取表达式,忽略命令行的表达式
-i    监听的网络端口,如果没有指定,则监听最低号码的端口。在2.2内核以后,可以使用any参数使tcpdump监听在所有端口
-n    不把ip地址转化成名称
-N    不输出主机名中的域名部分
-P    不将接口设置成混杂模式
-q    快速输出,输出较少的协议信息
-r    在一个文件中读取包信息(使用-w创建的文件)
-T    将监听到的包直接解释为指定的类型的报文
-v    输出一个详细的包信息,当使用-w把报文写入一个文件中时,每10秒报告一次
-vv    输出更详细
-vvv    输出更详细
-t    不在每一行显示时间戳
-tt    在每一行中显示非格式化的时间戳
-ttt    输出本行和前面一行的时间差
-u    输出未解码的NFS句柄
-w   把抓取的包写入一个文件中,稍后可以使用-r从该文件中读取包信息,如果把输出写入一个文件或者管道中,输出会先输入buffer中,所以从文件中读取会有延迟,使用-U标记可以使包信息立刻写入文件中




表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般如下几种类型的关键字。


    第一种是关于目标类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.


    第二种是确定传输方向的关键字,主要包括src, dst,dst or src, dst and src,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2, dst net 202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是src or dst关键字。


    第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。


    除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'││';这些关键字可以组合起来构成强大的组合条件来满足人们的需要。


tcpdump只是一个抓取工具,更重要的是会对抓取的包进行分析。