乐趣区

关于后端:tcpdump-常用命令

最初更新工夫 2021-10-05.

Linux 的命令太多,tcpdump 是一个十分弱小的抓包命令。

有时候想看线上产生的一些问题:

  • nginx 有没有客户端连贯过去……
  • 客户端连贯过去的时候 Post 上来的数据对不对……
  • 我的 Redis 实例到底是哪些业务在应用……

tcpdump 作为网络分析神器就派上用场了!

它自身的命令和参数有点多,我也简略记录下一些罕用的操作。

网上的材料其实挺多(见文末),

但真的派上用场的,可能也就是我上面列出来的这几个 :)

抓取 eth0 网卡的 80 端口:

tcpdump -nnA 'port 80' -i eth0

-A:以 ASCII 格局打印出所有分组,并将链路层的头最小化
-nn:显示 IP 地址和端口号

抓取发往 10.48.31.56 的数据包:

tcpdump -i eth0 dst host 10.48.31.56

指定网络过滤:

tcpdump -i eth0 src net 10.48

指定协定过滤:

tcpdump -i eth0 tcp

表达式过滤:

tcpdump -i eth0 '((tcp) and (port 80) and ((dst host 10.48.31.56) or (dst host 10.48.31.58)))'

参考资料

  1. 《tcpdump 应用技巧》
  2. 《肝了三天,万字长文教你玩转 tcpdump,从此抓包不必愁》
  3. 《tcpdump 原理及常用命令》
  4. 《Linux 零碎 tcpdump 抓包命令应用教程》
  5. 《聊聊 tcpdump 与 Wireshark 抓包剖析》

文章来源于自己博客,公布于 2018-06-02,原文链接:https://imlht.com/archives/185/

退出移动版