tcpdump 常用命令

2023-07-05 23:57:59 浏览数 (2)

Linux 的命令太多,tcpdump 是一个非常强大的抓包命令。

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

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

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

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

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

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

抓取 eth0 网卡的 80 端口:
代码语言:shell复制
tcpdump -nnA 'port 80' -i eth0

-A:以ASCII格式打印出所有分组,并将链路层的头最小化

-nn:显示IP地址和端口号

抓取发往 10.48.31.56 的数据包:
代码语言:shell复制
tcpdump -i eth0 dst host 10.48.31.56
指定网络过滤:
代码语言:shell复制
tcpdump -i eth0 src net 10.48
指定协议过滤:
代码语言:shell复制
tcpdump -i eth0 tcp
表达式过滤:
代码语言:shell复制
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 抓包分析》

0 人点赞