tcpdump常用参数

1.tcpdump常用参数说明

参数 含义 举例
-i <interface> 指定抓包网卡 tcpdump -i eth0
-n 不解析域名(避免DNS查询影响) tcpdump -i eth0 -n
-nn 不解析端口号和主机名 tcpdump -i eth0 -nn
-v/-vv/-vvv 增加输出详细程度 tcpdump -i eth0 -nn -vv
-c <count> 抓包数量到达指定值后退出 tcpdump -i eth0 -nn -c 100
-s <snaplen> 抓包长度(默认为262144) tcpdump -i eth0 -s 0 (抓完整包)
-w <file> 把抓到的数据包写入文件 tcpdump -i eth0 -w dump.pcap
-r <file> 读取抓包文件分析 tcpdump -r dump.pcap
port <port> 抓指定端口流量 tcpdump -i eth0 port 80
host <ip> 抓指定IP流量 tcpdump -i eth0 host 192.168.1.10
src <ip> / dst <ip> 抓源/目的IP流量 tcpdump -i eth0 src 192.168.1.10
tcp / udp / icmp 协议过滤 tcpdump -i eth0 tcp
and / or / not 逻辑组合 tcpdump -i eth0 tcp and port 80

2.过滤表达式示例

  1. 抓 HTTP 流量(80端口):
1
tcpdump -i eth0 -nn tcp port 80
  1. 抓指定源 IP 流量:
1
tcpdump -i eth0 -nn src 192.168.1.10
  1. 抓指定目的 IP 且是 TCP 流量:
1
tcpdump -i eth0 -nn dst 10.0.0.5 and tcp
  1. 抓 ICMP(ping)包:
1
tcpdump -i eth0 -nn icmp
  1. 抓 HTTP + HTTPS 流量(80 和 443 端口):
1
tcpdump -i eth0 -nn tcp port 80 or tcp port 443
  1. 抓完整包并写入文件:
1
tcpdump -i eth0 -nn -s 0 -w /tmp/capture.pcap
  1. 从文件读取并分析:
1
tcpdump -r /tmp/capture.pcap -nn -vv

3.进阶用法

  • 抓前后N行数据包
1
tcpdump -i eth0 -nn -c 100 -A  # -A 打印 ASCII 数据,方便看HTTP内容
  • 抓 SYN 包(TCP三次握手开始)
1
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
  • 抓带时间戳的数据包
1
tcpdump -i eth0 -tttt