Linux tcpdump命令是一款用于捕获网络数据包的命令行工具,它可以抓取网络中的数据包,并以文本形式显示其数据内容。它的功能强大,可以支持多种网络协议,如TCP、IP、UDP、ICMP等。
使用方法
1. 启动tcpdump:
tcpdump -i eth0
以上命令将会抓取eth0接口的数据包,并将其保存到标准输出。
2. 抓取特定协议的数据包:
tcpdump -i eth0 -n tcp
以上命令将只抓取TCP协议的数据包,而忽略其他协议的数据包。
3. 抓取指定IP地址的数据包:
tcpdump -i eth0 -n host 192.168.1.100
以上命令将只抓取源地址或目的地址为192.168.1.100的数据包。
4. 抓取指定端口的数据包:
tcpdump -i eth0 -n port 80
以上命令将只抓取源端口或目的端口为80的数据包。
5. 抓取指定网络掩码的数据包:
tcpdump -i eth0 -n net 192.168.1.0/24
以上命令将只抓取源地址或目的地址在192.168.1.0/24网段内的数据包。
tcpdump参数
- -i:指定抓取数据包的网络接口;
- -n:不解析IP地址,显示IP地址的原始数值;
- -s:指定抓取数据包的长度;
- -c:指定抓取数据包的数量;
- -w:指定保存抓取的数据包的文件;
- -v:显示更详细的信息;
- -e:显示数据包的链路层信息;
- -d:显示数据包的数据链路层信息;
- -X:显示数据包的十六进制信息;
- -A:显示数据包的ASCII信息。
tcpdump实例
1. 抓取eth0接口的TCP数据包:
tcpdump -i eth0 -n tcp
2. 抓取eth0接口的TCP数据包,并将抓取的数据包保存到文件:
tcpdump -i eth0 -n tcp -w /tmp/tcpdump.log
3. 抓取eth0接口的TCP数据包,并显示更详细的信息:
tcpdump -i eth0 -n tcp -v