基本语法与常用选项
tcpdump [选项] [过滤表达式]
最常用的选项(Flags)
选项 | 全称 | 说明 |
|---|
-i <接口>
| --interface
| 指定要监听的网络接口(如 eth0, ens33, wlan0)。-i any 表示监听所有接口。 |
-n
| | 不将地址(IP、端口)转换成名称。禁用 DNS 解析,显著提升显示速度。 |
-nn
| | 既不解析主机名,也不解析端口名(如 443 显示为 https)。强烈推荐始终使用。 |
-c <数量>
| --count
| 仅捕获指定数量的数据包后自动停止。例如 -c 10 捕获10个包。 |
-s <长度>
| --snapshot-length
| 设置每个数据包的捕获长度(字节)。-s 0 捕获完整数据包(默认65535)。 |
-A
| | 以 ASCII 格式打印每个数据包(不包括链路层报头),常用于查看网页内容。 |
-X
| | 同时以十六进制和 ASCII 格式打印数据包的内容。 |
-XX
| | 比 -X 更详细,同时打印链路层头部。 |
-v
| --verbose
| 输出更详细的信息(TTL、IP ID、数据包长度等)。 |
-vv
| | 输出比 -v 更详细的信息。 |
-vvv
| | 输出最详细的信息。 |
-w <文件>
| --write
| 将原始数据包写入文件,而不是打印到屏幕。例如 -w capture.pcap。 |
-r <文件>
| --read
| 从文件中读取数据包,而不是从网络接口。用于分析保存的抓包文件。 |
-q
| --quiet
| 安静模式,输出更简洁。 |
-l
| | 使标准输出行缓冲,常与管道 ` |
-e
| | 打印数据包的链路层头部信息(如 MAC 地址)。 |
类型 | 说明 | 示例 |
|---|
host
| 指定主机(IP或域名) | host 192.168.1.1
|
net
| 指定网络段 | net 192.168.1.0/24
|
port
| 指定端口 | port 80
|
portrange
| 指定端口范围 | portrange 8000-9000
|
src
| 源 | src host 192.168.1.100
|
dst
| 目的 | dst port 53
|
proto
| 指定协议 | proto TCP (可省略,通常直接写 tcp)
|
常用命令实例
捕获所有网卡的所有流量
tcpdump -i any
捕获指定网卡的流量(不解析域名)
tcpdump -i eth0 -nn
捕获指定主机的流量(进来和出去的都抓)
tcpdump -nn host 192.168.1.100
捕获源IP是 192.168.1.100 的流量
tcpdump -nn src host 192.168.1.100
捕获目标端口是 80 或 443 的流量
tcpdump -nn dst port 80 or dst port 44
完整格式的、带日期的绝对时间戳
tcpdump -i any -nn -tttt port 80
评论区