实战计算机网络问题排查(二) -- tcpdump 的过滤指令

2021-06-04 15:18:57   最后更新: 2021-06-04 15:18:57   访问数量:263




 

上一篇文章中,我们详细介绍了 tcpdump 的各种使用参数:

 

实战计算机网络问题排查(一) -- tcpdump 原理与基础参数

 

运用这些参数,tcpdump 指令就可以输出你想要的信息了。

 

然而除了这些参数,更为重要的是如何在茫茫的输出结果中过滤出你最为关心的信息呢?这就需要使用过滤指令了。

 

本文,我们就来详细介绍一下 tcpdump 的过滤指令。

 

 

 

2.1 抓取特定来自/发往特定主机的请求

 

最基本的过滤器就是按照地址来选择数据流(host 关键字可以省略):

 

tcpdump host 205.153.63.30

 

这个命令抓取了所有来自和发往 205.153.63.30 这个 IP 地址主机的请求。

 

你也可以通过 MAC 地址进行过滤:

 

tcpdump ether host 0:10:5a:e3:37:c

 

2.2 单向过滤

 

可以通过添加 src 或 dst 关键字来过滤来自或发往指定主机的单向请求:

 

tcpdump dst host 205.153.63.30

 

 

tcpdump 也支持对广播与多播报文进行过滤:

 

  • 以太网广播数据包

 

tcpdump ether broadcast

 

  • IPv4 广播数据包

 

tcpdump ip broadcast

 

  • 以太网多播数据包

 

tcpdump ether multicast

 

  • IPv4 多播数据包

 

tcpdump ip multicast

 

 

4.1 抓取固定协议数据流

 

tcpdump ip

 

这个指令中,关键字 ip 可以换成 igmp、tcp、udp、icmp 来实现对应协议数据流的抓取。

 

除了上述五种已知的协议外,通过协议编号,tcpdump 可以支持更多协议的过滤,例如 ospf 协议:

 

tcpdump ip proto 89

 

4.2 基于端口过滤

 

下面的指令过滤了指定端口上的数据:

 

tcpdump port 53

 

 

  • 收集长度大于200字节的报文

 

tcpdump greater 200

 

  • ip 协议头指定位过滤

 

我们知道,ip 协议头的第 10 字节是网络层协议代码,因此下面表示抓取 tcp 协议:

 

tcpdump "ip[9] = 6"

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周都有精彩推文,全部原创,只有干货没有鸡汤

 

 

https://www.tecmint.com/12-tcpdump-commands-a-network-sniffer-tool/

https://www.bookstack.cn/read/network-basic/17.md

 

 

TCP/IP 详解






linux      unix      network      计算机网络      技术分享      技术贴      tcpdump     


京ICP备15018585号