TCPdump抓包命令
tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。
tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。

一、概述
顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
引用

tcpdump -vv

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:53:21.444591 IP (tos 0x10, ttl 64, id 19324, offset 0, flags [DF], proto 6, length: 92) asptest.localdomain.ssh > 192.168.228.244.1858: P 3962132600:3962132652(52) ack 2726525936 win 1266
asptest.localdomain.1077 > 192.168.228.153.domain: [bad udp cksum 166e!] 325+ PTR? 244.228.168.192.in-addr.arpa. (46)
11:53:21.446929 IP (tos 0x0, ttl 64, id 42911, offset 0, flags [DF], proto 17, length: 151) 192.168.228.153.domain > asptest.localdomain.1077: 325 NXDomain q: PTR? 244.228.168.192.in-addr.arpa. 0/1/0 ns: 168.192.in-addr.arpa. (123)
11:53:21.447408 IP (tos 0x10, ttl 64, id 19328, offset 0, flags [DF], proto 6, length: 172) asptest.localdomain.ssh > 192.168.228.244.1858: P 168:300(132) ack 1 win 1266
347 packets captured
1474 packets received by filter
745 packets dropped by kernel
不带参数的tcpdump会收集网络中所有的信息包头,数据量巨大,必须过滤。

二、选项介绍

引用
-A 以ASCII格式打印出所有分组,并将链路层的头最小化。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d 将匹配信息包的代码以人们能够理解的汇编格式给出。
-dd 将匹配信息包的代码以c语言程序段的格式给出。
-ddd 将匹配信息包的代码以十进制的形式给出。
-D 打印出系统中所有可以用tcpdump截包的网络接口。
-e 在输出行打印出数据链路层的头部信息。
-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。
-f 将外部的Internet地址以数字的形式打印出来。
-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i 指定监听的网络接口。
-l 使标准输出变为缓冲行形式,可以把数据导出到文件。
-L 列出网络接口的已知数据链路。
-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
-n 不把网络地址转换成名字。
-nn 不进行端口名称的转换。
-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。
-t 在输出的每一行不打印时间戳。
-O 不运行分组分组匹配(packet-matching)代码优化程序。
-P 不将网络接口设置成混杂模式。
-q 快速输出。只输出较少的协议信息。
-r 从指定的文件中读取包(这些包一般通过-w选项产生)。
-S 将tcp的序列号以绝对值形式输出,而不是相对值。
-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。
-t 不在每一行中输出时间戳。
-tt 在每一行中输出非格式化的时间戳。
-ttt 输出本行和前面一行之间的时间差。
-tttt 在每一行中输出由date处理的默认格式的时间戳。
-u 输出未解码的NFS句柄。
-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。

三、tcpdump的表达式介绍

表达式是一个正则表达式,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命令的输出信息

  • (1) 想要截获所有210.27.48.1 的主机收到的和发出的所有的分组:
    #tcpdump host 210.27.48.1
  • (2) 想要截获主机210.27.48.1 和主机210.27.48.2或210.27.48.3的通信,使用命令(注意:括号前的反斜杠是必须的):
    #tcpdump host 210.27.48.1 and 210.27.48.2or210.27.48.3
  • (3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
    #tcpdump ip host 210.27.48.1 and ! 210.27.48.2
  • (4) 如果想要获取主机192.168.228.246接收或发出的ssh包,并且不转换主机名使用如下命令:
    #tcpdump -nn -n src host 192.168.228.246 and port 22 and tcp
  • (5) 获取主机192.168.228.246接收或发出的ssh包,并把mac地址也一同显示:
    #tcpdump -e src host 192.168.228.246 and port 22 and tcp -n -nn
  • (6) 过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头:
    #tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
  • (7) 过滤源主机物理地址为XXX的报头:
    #tcpdump ether src 00:50:04:BA:9B and dst……
    (为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。
  • (8) 过滤源主机192.168.0.1和目的端口不是telnet的报头,并导入到tes.t.txt文件中:
    #tcpdump src host 192.168.0.1 and dst port not telnet -l > test.txt
    ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。

五、命令参数使用

格式:
tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae]
[-qX] [-r 文件] [所欲捕获的数据内容]
参数:
-nn,直接以 IP 及 Port Number 显示,而非主机名与服务名称。
-i,后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。
-w,如果你要将监听所得的数据包数据储存下来,用这个参数就对了。后面接文件名。
-c,监听的数据包数,如果没有这个参数, tcpdump 会持续不断的监听,
直到用户输入 [ctrl]-c 为止。
-A,数据包的内容以 ASCII 显示,通常用来捉取 WWW 的网页数据包资料。
-e,使用资料连接层 (OSI 第二层) 的 MAC 数据包数据来显示。
-q,仅列出较为简短的数据包信息,每一行的内容比较精简。
-X,可以列出十六进制 (hex) 以及 ASCII 的数据包内容,对于监听数据包内容很有用。
-r,从后面接的文件将数据包数据读出来。那个「文件」是已经存在的文件,
并且这个「文件」是由 -w 所制作出来的。
所欲捕获的数据内容:我们可以专门针对某些通信协议或者是 IP 来源进行数据包捕获。
那就可以简化输出的结果,并取得最有用的信息。常见的表示方法有。
‘host foo’, ‘host 127.0.0.1’ :针对单台主机来进行数据包捕获。
‘net 192.168’ :针对某个网段来进行数据包的捕获。
‘src host 127.0.0.1’ ‘dst net 192.168’:同时加上来源(src)或目标(dst)限制。
‘tcp port 21’:还可以针对通信协议检测,如tcp、udp、arp、ether 等。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,
greater,还有三种逻辑运算,取非运算是 ‘not ’ ‘! ‘, 与运算是’and’,’&&’;或运算 是’o
r’ ,’||’;

范例一:以 IP 与 Port Number 捉下 eth0 这个网卡上的数据包,持续 3 秒
root@LEDE:/# tcpdump -i eth2 -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:24:27.909392 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:28.921286 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:29.924456 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
14:24:30.926103 IP 192.168.2.100.50792 > 239.255.255.250.1900: UDP, length 174
^C
4 packets captured            <==捉取下来的数据包数量
4 packets received by filter  <==由过滤所得的总数据包数量
0 packets dropped by kernel  <==被核心所丢弃的数据包
范例二,只取出port 22的联机数据包,可以这样做:
root@LEDE:/# tcpdump -i eth2 -nn port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:30:03.573634 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 4239821093:4239821157, ack 2221711633, win 266, options [nop,nop,TS val 3919183717 ecr 39666099], length 64
14:30:03.573816 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 1:65, ack 64, win 271, options [nop,nop,TS val 39676055 ecr 3919183717], length 64
14:30:03.574045 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 65, win 266, options [nop,nop,TS val 3919183718 ecr 39676055], length 0
14:30:03.799980 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 64:128, ack 65, win 266, options [nop,nop,TS val 3919183944 ecr 39676055], length 64
14:30:03.800104 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 65:129, ack 128, win 271, options [nop,nop,TS val 39676112 ecr 3919183944], length 64
14:30:03.800318 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 129, win 266, options [nop,nop,TS val 3919183944 ecr 39676112], length 0
14:30:03.941660 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 128:192, ack 129, win 266, options [nop,nop,TS val 3919184085 ecr 39676112], length 64
14:30:03.941782 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 129:193, ack 192, win 271, options [nop,nop,TS val 39676147 ecr 3919184085], length 64
14:30:03.941991 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 193, win 266, options [nop,nop,TS val 3919184086 ecr 39676147], length 0
14:30:04.053929 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 192:256, ack 193, win 266, options [nop,nop,TS val 3919184197 ecr 39676147], length 64
14:30:04.054043 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 193:257, ack 256, win 271, options [nop,nop,TS val 39676175 ecr 3919184197], length 64
14:30:04.054252 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 257, win 266, options [nop,nop,TS val 3919184198 ecr 39676175], length 0
14:30:04.325984 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 256:320, ack 257, win 266, options [nop,nop,TS val 3919184470 ecr 39676175], length 64
14:30:04.326115 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 257:321, ack 320, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 64
14:30:04.326324 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 321, win 266, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326347 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [P.], seq 321:497, ack 320, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 176
14:30:04.326528 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326711 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 320:368, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 48
14:30:04.326712 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [P.], seq 368:448, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 80
14:30:04.326756 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [.], ack 448, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 0
14:30:04.326799 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [F.], seq 448, ack 497, win 276, options [nop,nop,TS val 3919184470 ecr 39676243], length 0
14:30:04.326963 IP 192.168.2.1.22 > 192.168.2.11.52658: Flags [F.], seq 497, ack 449, win 271, options [nop,nop,TS val 39676243 ecr 3919184470], length 0
14:30:04.327154 IP 192.168.2.11.52658 > 192.168.2.1.22: Flags [.], ack 498, win 276, options [nop,nop,TS val 3919184471 ecr 39676243], length 0
范例3:使用tcpdump监听来自eth2适配卡且通信协议为port 22,目标来源为192.168.1.11的数据包,
root@LEDE:/# tcpdump -i eth2 -nn -X 'port 22' and src 192.168.2.11

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
14:40:55.167076 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [S], seq 3410946283, win 29200, options [mss 1460,sackOK,TS val 3919835324 ecr 0,nop,wscale 7], length 0
	0x0000:  4500 003c 35ff 4000 4006 7f60 c0a8 020b  E..<5.@.@..`....
	0x0010:  c0a8 0201 cdc0 0016 cb4e e8eb 0000 0000  .........N......
	0x0020:  a002 7210 f420 0000 0204 05b4 0402 080a  ..r.............
	0x0030:  e9a3 f0bc 0000 0000 0103 0307            ............
14:40:55.167341 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [.], ack 2213702200, win 229, options [nop,nop,TS val 3919835324 ecr 39838953], length 0
	0x0000:  4500 0034 3600 4000 4006 7f67 c0a8 020b  E..46.@.@..g....
	0x0010:  c0a8 0201 cdc0 0016 cb4e e8ec 83f2 6a38  .........N....j8
	0x0020:  8010 00e5 be94 0000 0101 080a e9a3 f0bc  ................
	0x0030:  025f e4e9                                ._..
14:40:55.167583 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 0:32, ack 1, win 229, options [nop,nop,TS val 3919835324 ecr 39838953], length 32
	0x0000:  4500 0054 3601 4000 4006 7f46 c0a8 020b  E..T6.@.@..F....
	0x0010:  c0a8 0201 cdc0 0016 cb4e e8ec 83f2 6a38  .........N....j8
	0x0020:  8018 00e5 57bc 0000 0101 080a e9a3 f0bc  ....W...........
	0x0030:  025f e4e9 5353 482d 322e 302d 4f70 656e  ._..SSH-2.0-Open
	0x0040:  5353 485f 372e 3670 3120 5562 756e 7475  SSH_7.6p1.Ubuntu
	0x0050:  2d34 0d0a                                -4..
14:40:55.168600 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [.], ack 323, win 237, options [nop,nop,TS val 3919835325 ecr 39838954], length 0
	0x0000:  4500 0034 3602 4000 4006 7f65 c0a8 020b  E..46.@.@..e....
	0x0010:  c0a8 0201 cdc0 0016 cb4e e90c 83f2 6b7a  .........N....kz
	0x0020:  8010 00ed bd28 0000 0101 080a e9a3 f0bd  .....(..........
	0x0030:  025f e4ea                                ._..
14:40:55.168799 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 32:1392, ack 323, win 237, options [nop,nop,TS val 3919835325 ecr 39838954], length 1360
	0x0000:  4500 0584 3603 4000 4006 7a14 c0a8 020b  E...6.@.@.z.....
	0x0010:  c0a8 0201 cdc0 0016 cb4e e90c 83f2 6b7a  .........N....kz
	0x0020:  8018 00ed 73f6 0000 0101 080a e9a3 f0bd  ....s...........
	0x0030:  025f e4ea 0000 054c 0514 6b73 5c4d 7939  ._.....L..ks\My9
	0x0040:  4000 860c 3fd3 5b16 3985 0000 0130 6375  @...?.[.9....0cu
	0x0050:  7276 6532 3535 3139 2d73 6861 3235 362c  rve25519-sha256,
	0x0060:  6375 7276 6532 3535 3139 2d73 6861 3235  curve25519-sha25
	0x0070:  3640 6c69 6273 7368 2e6f 7267 2c65 6364  6@libssh.org,ecd
	0x0080:  682d 7368 6132 2d6e 6973 7470 3235 362c  h-sha2-nistp256,
	0x0090:  6563 6468 2d73 6861 322d 6e69 7374 7033  ecdh-sha2-nistp3
	0x00a0:  3834 2c65 6364 682d 7368 6132 2d6e 6973  84,ecdh-sha2-nis
	0x00b0:  7470 3532 312c 6469 6666 6965 2d68 656c  tp521,diffie-hel
	0x00c0:  6c6d 616e 2d67 726f 7570 2d65 7863 6861  lman-group-excha
	0x00d0:  6e67 652d 7368 6132 3536 2c64 6966 6669  nge-sha256,diffi
	0x00e0:  652d 6865 6c6c 6d61 6e2d 6772 6f75 7031  e-hellman-group1
	0x00f0:  362d 7368 6135 3132 2c64 6966 6669 652d  6-sha512,diffie-
	0x0100:  6865 6c6c 6d61 6e2d 6772 6f75 7031 382d  hellman-group18-
	0x0110:  7368 6135 3132 2c64 6966 6669 652d 6865  sha512,diffie-he
	0x0120:  6c6c 6d61 6e2d 6772 6f75 702d 6578 6368  llman-group-exch
	0x0130:  616e 6765 2d73 6861 312c 6469 6666 6965  ange-sha1,diffie
	0x0140:  2d68 656c 6c6d 616e 2d67 726f 7570 3134  -hellman-group14
	0x0150:  2d73 6861 3235 362c 6469 6666 6965 2d68  -sha256,diffie-h
	0x0160:  656c 6c6d 616e 2d67 726f 7570 3134 2d73  ellman-group14-s
	0x0170:  6861 312c 6578 742d 696e 666f 2d63 0000  ha1,ext-info-c..
	0x0180:  0122 7373 682d 7273 612d 6365 7274 2d76  ."ssh-rsa-cert-v
	0x0190:  3031 406f 7065 6e73 7368 2e63 6f6d 2c72  01@openssh.com,r
	0x01a0:  7361 2d73 6861 322d 3531 322c 7273 612d  sa-sha2-512,rsa-
	0x01b0:  7368 6132 2d32 3536 2c73 7368 2d72 7361  sha2-256,ssh-rsa
	0x01c0:  2c65 6364 7361 2d73 6861 322d 6e69 7374  ,ecdsa-sha2-nist
	0x01d0:  7032 3536 2d63 6572 742d 7630 3140 6f70  p256-cert-v01@op
	0x01e0:  656e 7373 682e 636f 6d2c 6563 6473 612d  enssh.com,ecdsa-
	0x01f0:  7368 6132 2d6e 6973 7470 3338 342d 6365  sha2-nistp384-ce
	0x0200:  7274 2d76 3031 406f 7065 6e73 7368 2e63  rt-v01@openssh.c
	0x0210:  6f6d 2c65 6364 7361 2d73 6861 322d 6e69  om,ecdsa-sha2-ni
	0x0220:  7374 7035 3231 2d63 6572 742d 7630 3140  stp521-cert-v01@
	0x0230:  6f70 656e 7373 682e 636f 6d2c 7373 682d  openssh.com,ssh-
	0x0240:  6564 3235 3531 392d 6365 7274 2d76 3031  ed25519-cert-v01
	0x0250:  406f 7065 6e73 7368 2e63 6f6d 2c65 6364  @openssh.com,ecd
	0x0260:  7361 2d73 6861 322d 6e69 7374 7032 3536  sa-sha2-nistp256
	0x0270:  2c65 6364 7361 2d73 6861 322d 6e69 7374  ,ecdsa-sha2-nist
	0x0280:  7033 3834 2c65 6364 7361 2d73 6861 322d  p384,ecdsa-sha2-
	0x0290:  6e69 7374 7035 3231 2c73 7368 2d65 6432  nistp521,ssh-ed2
	0x02a0:  3535 3139 0000 006c 6368 6163 6861 3230  5519...lchacha20
	0x02b0:  2d70 6f6c 7931 3330 3540 6f70 656e 7373  -poly1305@openss
	0x02c0:  682e 636f 6d2c 6165 7331 3238 2d63 7472  h.com,aes128-ctr
	0x02d0:  2c61 6573 3139 322d 6374 722c 6165 7332  ,aes192-ctr,aes2
	0x02e0:  3536 2d63 7472 2c61 6573 3132 382d 6763  56-ctr,aes128-gc
	0x02f0:  6d40 6f70 656e 7373 682e 636f 6d2c 6165  m@openssh.com,ae
	0x0300:  7332 3536 2d67 636d 406f 7065 6e73 7368  s256-gcm@openssh
	0x0310:  2e63 6f6d 0000 006c 6368 6163 6861 3230  .com...lchacha20
	0x0320:  2d70 6f6c 7931 3330 3540 6f70 656e 7373  -poly1305@openss
	0x0330:  682e 636f 6d2c 6165 7331 3238 2d63 7472  h.com,aes128-ctr
	0x0340:  2c61 6573 3139 322d 6374 722c 6165 7332  ,aes192-ctr,aes2
	0x0350:  3536 2d63 7472 2c61 6573 3132 382d 6763  56-ctr,aes128-gc
	0x0360:  6d40 6f70 656e 7373 682e 636f 6d2c 6165  m@openssh.com,ae
	0x0370:  7332 3536 2d67 636d 406f 7065 6e73 7368  s256-gcm@openssh
	0x0380:  2e63 6f6d 0000 00d5 756d 6163 2d36 342d  .com....umac-64-
	0x0390:  6574 6d40 6f70 656e 7373 682e 636f 6d2c  etm@openssh.com,
	0x03a0:  756d 6163 2d31 3238 2d65 746d 406f 7065  umac-128-etm@ope
	0x03b0:  6e73 7368 2e63 6f6d 2c68 6d61 632d 7368  nssh.com,hmac-sh
	0x03c0:  6132 2d32 3536 2d65 746d 406f 7065 6e73  a2-256-etm@opens
	0x03d0:  7368 2e63 6f6d 2c68 6d61 632d 7368 6132  sh.com,hmac-sha2
	0x03e0:  2d35 3132 2d65 746d 406f 7065 6e73 7368  -512-etm@openssh
	0x03f0:  2e63 6f6d 2c68 6d61 632d 7368 6131 2d65  .com,hmac-sha1-e
	0x0400:  746d 406f 7065 6e73 7368 2e63 6f6d 2c75  tm@openssh.com,u
	0x0410:  6d61 632d 3634 406f 7065 6e73 7368 2e63  mac-64@openssh.c
	0x0420:  6f6d 2c75 6d61 632d 3132 3840 6f70 656e  om,umac-128@open
	0x0430:  7373 682e 636f 6d2c 686d 6163 2d73 6861  ssh.com,hmac-sha
	0x0440:  322d 3235 362c 686d 6163 2d73 6861 322d  2-256,hmac-sha2-
	0x0450:  3531 322c 686d 6163 2d73 6861 3100 0000  512,hmac-sha1...
	0x0460:  d575 6d61 632d 3634 2d65 746d 406f 7065  .umac-64-etm@ope
	0x0470:  6e73 7368 2e63 6f6d 2c75 6d61 632d 3132  nssh.com,umac-12
	0x0480:  382d 6574 6d40 6f70 656e 7373 682e 636f  8-etm@openssh.co
	0x0490:  6d2c 686d 6163 2d73 6861 322d 3235 362d  m,hmac-sha2-256-
	0x04a0:  6574 6d40 6f70 656e 7373 682e 636f 6d2c  etm@openssh.com,
	0x04b0:  686d 6163 2d73 6861 322d 3531 322d 6574  hmac-sha2-512-et
	0x04c0:  6d40 6f70 656e 7373 682e 636f 6d2c 686d  m@openssh.com,hm
	0x04d0:  6163 2d73 6861 312d 6574 6d40 6f70 656e  ac-sha1-etm@open
	0x04e0:  7373 682e 636f 6d2c 756d 6163 2d36 3440  ssh.com,umac-64@
	0x04f0:  6f70 656e 7373 682e 636f 6d2c 756d 6163  openssh.com,umac
	0x0500:  2d31 3238 406f 7065 6e73 7368 2e63 6f6d  -128@openssh.com
	0x0510:  2c68 6d61 632d 7368 6132 2d32 3536 2c68  ,hmac-sha2-256,h
	0x0520:  6d61 632d 7368 6132 2d35 3132 2c68 6d61  mac-sha2-512,hma
	0x0530:  632d 7368 6131 0000 001a 6e6f 6e65 2c7a  c-sha1....none,z
	0x0540:  6c69 6240 6f70 656e 7373 682e 636f 6d2c  lib@openssh.com,
	0x0550:  7a6c 6962 0000 001a 6e6f 6e65 2c7a 6c69  zlib....none,zli
	0x0560:  6240 6f70 656e 7373 682e 636f 6d2c 7a6c  b@openssh.com,zl
	0x0570:  6962 0000 0000 0000 0000 0000 0000 0000  ib..............
	0x0580:  0000 0000                                ....
14:40:55.211618 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 1392:1440, ack 323, win 237, options [nop,nop,TS val 3919835368 ecr 39838965], length 48
	0x0000:  4500 0064 3604 4000 4006 7f33 c0a8 020b  E..d6.@.@..3....
	0x0010:  c0a8 0201 cdc0 0016 cb4e ee5c 83f2 6b7a  .........N.\..kz
	0x0020:  8018 00ed 3b5c 0000 0101 080a e9a3 f0e8  ....;\..........
	0x0030:  025f e4f5 0000 002c 061e 0000 0020 cebf  ._.....,........
	0x0040:  ad8f 89df a1f2 c445 26ef f3d3 53fc 11a4  .......E&...S...
	0x0050:  c009 9633 3b57 178f f543 a549 4528 0000  ...3;W...C.IE(..
	0x0060:  0000 0000                                ....
14:40:55.281502 IP 192.168.2.11.52672 > 192.168.2.1.22: Flags [P.], seq 1440:1456, ack 947, win 247, options [nop,nop,TS val 3919835438 ecr 39838979], length 16
	0x0000:  4500 0044 3605 4000 4006 7f52 c0a8 020b  E..D6.@.@..R....
	0x0010:  c0a8 0201 cdc0 0016 cb4e ee8c 83f2 6dea  .........N....m.
	0x0020:  8018 00f7 aa6b 0000 0101 080a e9a3 f12e  .....k..........
	0x0030:  025f e503 0000 000c 0a15 0000 0000 0000  ._..............
	0x0040:  0000 0000                                ....

除了过滤语句,还有一个很重要的参数,它就是-s 参数,snaplen, 也就是数据包的截取长度,仔细看man就会明白的!
默认截取长度为60个字节,但一般ethernet MTU都是1500字节。所以,要抓取大于60字节的包时,使用默认参数就会导致包数据丢失!
只要使用-s 0就可以按包长,截取数据!

范例4:tcpdump 存 wireshark 可分析的文件pcap
# tcpdump -i eth0 host example.com -w example.pcap
13 packets captured
13 packets received by filter
0 packets dropped by kernel

参数说明:
-n:打印 IP 而不是 hostname,打印端口号而不是协议(例如打印 80 而不是 http)
-S:打印绝对时间戳
-i eth0:指定从 eth0 网卡抓包
host example.com:抓和 example.com 通信的包(双向)
-w 命令可以将抓到的包写到文件,注意这和用重定向方式将输出写到文件是不同的。后者写的只是标准输出打印的 LOG,而 -w 写的是原始包。