flexible, powerful command-line tool helps ease the pain of troubleshooting network issues.
1、基础
yum install -y tcpdump
查看有哪些nic网络接口可以用
sudo tcpdump -D
测试capturing所有packets
sudo tcpdump -i any
Ctrl+C
stop.
限制抓包数量:
sudo tcpdump -i any -c 5
tcpdump默认解析了ip和port的names,需要直接显示ip或者port的话使用 -n
和 -nn
sudo tcpdump -i any -c5 -nn
2、输出
tcp、udp、icmp等格式在
tcpdump官方手册可以查到详细的格式。
下面是tcp:
08:41:13.729687 IP 192.168.64.28.22 > 192.168.64.1.41916: Flags [P.], seq 196:568, ack 1, win 309, options [nop,nop,TS val 117964079 ecr 816509256], length 372
- 时间戳
- 协议(ip ipv6)
- 源ip端口
- 目的ip端口
- Flags:
|值 | flag type|描述|
|-|-|-|
|S|SYN|开始同步连接|
|F|FIN|完成连接|
|P|PUSH|数据推送|
|R|RST| 连接重置|
|.|ACK|返回连接确认|
[P.]
: PUSH-ACK
- sequence:
包数据的序列区间,seq 196:568表示这个package包含数据bytes 196到568.
3、过滤
- Protocol协议
sudo tcpdump -i any -c5 icmp
- Host地址过滤
sudo tcpdump -i any -c5 -nn host 54.204.39.132
- port端口
sudo tcpdump -i any -c5 -nn port 80
- 源地址/目的地址
sudo tcpdump -i any -c5 -nn src 192.168.122.98
sudo tcpdump -i any -c5 -nn dst 192.168.122.98
查看包内容
-X to print content in hex, and ASCII or -A to print the content in ASCII
- -X 十六进制
- -A ascii码
sudo tcpdump -i any -c10 -nn -A port 80