【系列文章】

《神探tcpdump第一招》-linux命令五分钟系列之三十五
《神探tcpdump第二招》-linux命令五分钟系列之三十六
《神探tcpdump第三招》-linux命令五分钟系列之三十七
《神探tcpdump第四招》-linux命令五分钟系列之三十八
《神探tcpdump第五招》-linux命令五分钟系列之三十九
《神探tcpdump第六招》-linux命令五分钟系列之四十
《神探tcpdump第七招》-linux命令五分钟系列之四十一
《神探tcpdump第八招》-linux命令五分钟系列之四十二

==

如果你已经认真阅读过了前面的八篇文章,那么tcpdump的最主要招数你应该已经驾轻就熟了,恭喜你。

在最后的“终结招”中,我们会给大家介绍一些之前没有提到的“小秘籍”,让大家在追查网络问题、进行协议分析时,可以用得上。

[秘籍一]

使用-A选项,则tcpdump只会显示ASCII形式的数据包内容,不会再以十六进制形式显示;

[秘籍二]

使用-XX选项,则tcpdump会从以太网部分就开始显示网络包内容,而不是仅从网络层协议开始显示。

[秘籍三]

使用如下命令,则tcpdump会列出所有可以选择的抓包对象。

# tcpdump -D
1.eth0
2.any (Pseudo-device that captures on all interfaces)
3.lo

[秘籍四]

如果想查看哪些ICMP包中“目标不可达、主机不可达”的包,请使用这样的过滤表达式:

icmp[0:2]==0x0301

[秘籍五]

要提取TCP协议的SYN、ACK、FIN标识字段,语法是:

tcp[tcpflags] & tcp-syn
tcp[tcpflags] & tcp-ack
tcp[tcpflags] & tcp-fin

[秘籍六]

要提取TCP协议里的SYN-ACK数据包,不但可以使用上面的方法,也可以直接使用最本质的方法:

tcp[13]==18

[秘籍七]

如果要抓取一个区间内的端口,可以使用portrange语法:

tcpdump -i eth0 -nn 'portrange 52-55' -c 1  -XX

好了,我们的《神探tcpdump系列文章》就写到这里了。
洋洋洒洒写了9篇文章,自觉内容编排还算合理,希望能让朋友们在网络捕获和流量分析方面有一定收获!