IT技术博客大学习 共学习 共进步

神探tcpdump第三招

linux大棚-roclinux.cn 2012-09-03 13:48:36 浏览 4,723 次

    上篇文章说过,tcpdump会分成“选项”、“过滤表达式”和“输出信息”三部分讲解。

    截止到目前,我们一直在围绕tcpdump的选项部分进行讲解,已经介绍过的选项包括-i选项、-nn选项、-c选项、-X选项、-e选项、-l选项。

     今天仍然不例外,我们继续有关选项的内容。

    ==

    【-t选项】- 输出时不打印时间戳

    这个选项非常好理解,直接看例子吧:

# tcpdump -i eth0 -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
01:52:10.433391 ARP, Request who-has 116.255.247.61 tell 116.255.247.125, length 64
# tcpdump -i eth0 -c 1 -t
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
ARP, Request who-has 116.255.245.35 tell 116.255.245.62, length 64

    【-v选项】- 输出更详细的信息

    加了-v选项之后,在原有输出的基础之上,你还会看到tos值、ttl值、ID值、总长度、校验值等。

     至于上述值的含义,需要你专门去研究下IP头、TCP头的具体协议定义咯。

# tcpdump -i eth0 -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
01:53:09.162644 IP 116.255.245.206.snapenetio > 221.223.255.234.54198: Flags [P.], seq 1443040202:1443040398, ack 3517061690, win 353, length 196
# tcpdump -i eth0 -c 1 -v
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
01:52:57.902894 IP (tos 0x10, ttl 64, id 18293, offset 0, flags [DF], proto TCP (6), length 172)
116.255.245.206.snapenetio > 221.223.255.234.54198: Flags [P.], cksum 0x4dd9 (correct), seq 1443039302:1443039434, ack 3517061430, win 353, length 132

    【-F选项】- 指定过滤表达式所在的文件

    还记得我们在第一招中所提到的命令么,我帮助大家回忆一下:

 tcpdump -i eth0 -nn -X ‘port 53′ -c 1

    这里面的’port 53′便叫做“过滤表达式”,用于设置我们抓包的条件的,只有满足过滤条件的网络包,才会被抓过来。

     当这个过滤条件非常复杂,或者我们需要将一个过滤条件固化下来复用的时候,就会想到把它存到一个文本文件中。

     此时,-F选项就会派上用场。请看例子:

# cat filter.txt
port 53
# tcpdump -i eth0 -c 1 -t -F filter.txt
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 116.255.245.206.54357 > ns.sc.cninfo.net.domain: 36720+ A? www.baidu.com. (31)
1 packets captured
6 packets received by filter
0 packets dropped by kernel

    我们建立了一个filter.txt文本文件来存储过滤表达式,然后通过-F来指定filter.txt,这样tcpdump就会心知肚明地读取filter.txt中的内容作为过滤条件。

    ==

    下一招,会使选项讲解的最后一次,重点讲讲-w和-r两个选项,敬请期待。

    谢谢!

建议继续学习

  1. 神探tcpdump第一招 (阅读 9,443)
  2. 使用wireshark分析网络报文 (阅读 7,746)
  3. 记一次丢包网络故障 (阅读 6,388)
  4. 神探tcpdump第六招 (阅读 5,364)
  5. ssldump (阅读 5,103)
  6. 神探tcpdump第四招 (阅读 5,086)
  7. 神探tcpdump第五招 (阅读 4,622)
  8. tcpdump匹配http头 (阅读 3,583)
  9. 调试利器之tcpdump详解 (阅读 3,442)