返回介绍

最佳实践 73:学习 tcpdump 的 5 个参数和过滤器

发布于 2025-04-20 17:44:49 字数 1165 浏览 0 评论 0 收藏

使用 tcpdump 进行网络抓包时,必须要坚持以下原则。

- 抓包的结果应该尽量少。过多的无用信息会产生信息噪音,从中分离有效信息的过程也会变得费时费力。

- 客户端和服务器端都能够完全控制的情况下,同时在两端进行抓包分析确认。

- 怀疑交换机等网络设备丢包时,在能够完全控制的情况下,使用端口镜像的方式,把网络设备的进出流量引导到服务器上抓包分析确认。

学习 tcpdump 的 5 个参数

初次使用 tcpdump 时,使用 tcpdump-h 命令可以看到它有数十个参数。根据我们在运维工作中的经验,掌握 tcpdump 以下 5 个参数即可满足大部分的工作需要了。

- -i 参数:指定需要抓包的网卡。如果未指定的话,tcpdump 会根据搜索到的系统中状态为 UP 的最小数字的网卡确定,一般情况下是 eth0。使用-i 参数通过指定需要抓包的网卡,可以有效地减少抓取到的数据包的数量,增加抓包的针对性,便于后续的分析工作。

- -nnn 参数:禁用 tcpdump 展示时把 IP、端口等转换为域名、端口对应的知名服务名称。这样看起来更加清晰。

- -s 参数:指定抓包的包大小。使用-s 0 指定数据包大小为 262144 字节,可以使得抓到的数据包不被截断,完整反映数据包的内容。

- -c 参数:指定抓包的数量。

- -w 参数:指定抓包文件保存到文件,以便后续使用 Wireshark 等工具进行分析。

学习 tcpdump 的过滤器

tcpdump 提供了丰富的过滤器,以支持抓包时的精细化控制,达到减少无效信息干扰的效果。常用的过滤器规则有下面几个。

- host a.b.c.d:指定仅抓取本机和某主机 a.b.c.d 的数据通信。

- tcp port x:指定仅抓取 TCP 协议目的端口或者源端口为 x 的数据通信。

- icmp:指定仅抓取 ICMP 协议的数据通信。

- !:反向匹配,例如 port!22,抓取非 22 端口的数据通信。

以上几种过滤器规则,可以使用 and 或者 or 进行组合,例子如下。

- host a.b.c.d and tcp port x:则只抓取本机和某主机 a.b.c.d 之间基于 TCP 的目的端口或者源端口为 x 的数据通信。

- tcp port x or icmp:则抓取 TCP 协议目的端口或者源端口为 x 的数据通信或者 ICMP 协议的数据通信。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。