tcpdump
是一个在 Unix/Linux 系统上用于抓取和分析网络数据包的命令行工具。它能够捕获网络接口上的数据包,并将它们以各种形式进行显示或保存。以下是一些常见的 tcpdump
用法:
- 基本用法:
- 抓取指定网络接口上的所有数据包:
bash sudo tcpdump -i eth0
-
这将捕获
eth0
接口上的所有数据包。 -
指定协议:
-
指定抓取特定协议的数据包,例如,只抓取TCP协议的数据包:
bash sudo tcpdump -i eth0 tcp
-
指定端口:
-
指定抓取特定端口的数据包,例如,只抓取目标端口为80的数据包:
bash sudo tcpdump -i eth0 port 80
-
保存到文件:
-
将抓取的数据包保存到文件中,以便稍后分析:
bash sudo tcpdump -i eth0 -w output.pcap
后续可以使用 Wireshark 或其他工具打开output.pcap
文件进行分析。 -
显示ASCII和十六进制:
-
显示每个数据包的 ASCII 和十六进制表示:
bash sudo tcpdump -i eth0 -X
-
显示时间戳:
-
显示每个数据包的时间戳:
bash sudo tcpdump -i eth0 -tttt
-
过滤器:
-
使用过滤器来捕获符合特定条件的数据包,例如,只抓取源IP地址为192.168.1.1的数据包:
bash sudo tcpdump -i eth0 src host 192.168.1.1
-
显示DNS查询:
- 显示 DNS 查询和响应:
bash sudo tcpdump -i eth0 udp port 53
请注意,使用 tcpdump
需要具有足够的权限,通常需要使用 sudo
或在 root
用户下运行。此外,根据系统和网络配置,可能需要安装 tcpdump
。