tcpdump 是 Linux 系统提供的一个非常强大的抓包工具,熟练使用它,对我们排查网络问题非常有用。如果你的机器上还没有安装,可以使用如下命令安装:
yum install tcpdump
如果要使用 tcpdump 命令必须具有 sudo 权限。
tcpdump 常用的选项有:
-i 指定要捕获的目标网卡名,网卡名可以使用前面章节中介绍的 ifconfig 命令获得;如果要抓所有网卡的上的包,可以使用 any 关键字。
## 抓取网卡ens33上的包
tcpdump -i ens33
## 抓取所有网卡上的包
tcpdump -i any
-X 以 ASCII 和十六进制的形式输出捕获的数据包内容,减去链路层的包头信息;-XX 以 ASCII 和十六进制的形式输出捕获的数据包内容,包括链路层的包头信息。
-n 不要将 ip 地址显示成别名的形式;-nn 不要将 ip 地址和端口以别名的形式显示。
-S 以绝对值显示包的 ISN 号(包序列号),默认以上一包的偏移量显示。
-vv 抓包的信息详细地显示;-vvv 抓包的信息更详细地显示。
-w 将抓取的包的原始信息(不解析,也不输出)写入文件中,后跟文件名:
tcpdump -i any -w fi