tcpdump采用命令行方式,它的命令格式为:
tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]html
(1). tcpdump的选项介绍 linux
-a 将网络地址和广播地址转变成名字;
(2). tcpdump的表达式介绍web
表达式是一个正则表达式, 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' ,'││';这些关键字能够组合起来构成强大的组合条件来知足人们的须要,下面举几个例子来讲明。正则表达式
A想要截获全部210.27.48.1 的主机收到的和发出的全部的数据包:
(3). tcpdump的输出结果介绍缓存
下面咱们介绍几种典型的 tcpdump命令的输出信息
A,数据链路层头信息
使用命令
分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0 接受该数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它代表是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip 是代表该数据包是IP数据包,60 是数据包的长度, h219.33357 > ice.telnet 代表该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535 代表对序列号是222535的包进行响应. win 8760代表发送窗口的大小是8760.网络
B,ARP包的TCPDUMP输出信息less
使用命令
C,TCP包的输出信息tcp
用TCPDUMP捕获的TCP包的通常输出信息是:
D,UDP包的输出信息分布式
用TCPDUMP捕获的UDP包的通常输出信息是: route.port1 > ice.port2: udp lenth UDP十分简单,上面的输出行代表从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP, 包的长度是lenth