tcpdump 常用命令及参数解析
一、基础核心命令
| 功能描述 | 命令示例 | 适用场景 |
|---|---|---|
| 指定 ens160 抓包 | sudo tcpdump -i ens160 | 基础抓包,查看网卡实时流量 |
| 限制抓包数量 | sudo tcpdump -i ens160 -c 100 | 避免产生大量数据,快速取样 |
| 禁止地址 / 端口解析 | sudo tcpdump -i ens160 -n -nn | 提升抓包效率,显示原始 IP / 端口 |
| 保存抓包到文件 | sudo tcpdump -i ens160 -w traffic.pcap | 离线分析或留存证据 |
| 读取保存的数据包 | sudo tcpdump -r traffic.pcap -nn | 分析已捕获的离线数据 |
| 显示详细包信息 | sudo tcpdump -i ens160 -v -vv | 查看 TTL、校验和等深层信息 |
二、协议过滤命令
| 功能描述 | 命令示例 | 适用场景 |
|---|---|---|
| 捕获 TCP 协议包 | sudo tcpdump -i ens160 -nn tcp | 排查 HTTP、SSH 等 TCP 服务问题 |
| 捕获 UDP 协议包 | sudo tcpdump -i ens160 -nn udp | 排查 DNS、视频流等 UDP 服务问题 |
| 捕获 ICMP 协议包 | sudo tcpdump -i ens160 -nn icmp | 排查 ping 不通、主机可达性问题 |
| 排除指定协议 | sudo tcpdump -i ens160 -nn not icmp | 过滤无关协议,聚焦目标流量 |
三、IP 与端口过滤命令
| 功能描述 | 命令示例 | 适用场景 |
|---|---|---|
| 按源 IP 过滤 | sudo tcpdump -i ens160 -nn src 192.168.1.5 | 监控特定主机发出的流量 |
| 按目标 IP 过滤 | sudo tcpdump -i ens160 -nn dst 192.168.1.10 | 监控发送到特定主机的流量 |
| 按主机过滤(双向) | sudo tcpdump -i ens160 -nn host 192.168.1.8 | 监控与特定主机的所有通信 |
| 按网段过滤 | sudo tcpdump -i ens160 -nn net 192.168.1.0/24 | 监控某一网段的流量 |
| 按目标端口过滤 | sudo tcpdump -i ens160 -nn dst port 80 | 排查 HTTP(80 端口)服务问题 |
| 按源端口过滤 | sudo tcpdump -i ens160 -nn src port 22 | 排查 SSH(22 端口)连接问题 |
| 按端口范围过滤 | sudo tcpdump -i ens160 -nn portrange 1000-2000 | 监控某一端口区间的流量 |
| IP + 端口组合过滤 | sudo tcpdump -i ens160 -nn src 192.168.1.5 and dst port 443 | 监控特定主机访问 HTTPS(443 端口)的流量 |
四、TCP 标志位过滤命令
| 功能描述 | 命令示例 | 适用场景 |
|---|---|---|
| 捕获 SYN 连接请求包 | sudo tcpdump -i ens160 -nn tcp[13] & 2 != 0 | 排查 TCP 连接建立失败问题 |
| 捕获 SYN+ACK 响应包 | sudo tcpdump -i ens160 -nn tcp[13] = 18 | 验证服务器是否响应连接请求 |
| 捕获 RST 重置包 | sudo tcpdump -i ens160 -nn tcp[13] & 4 != 0 | 排查服务崩溃、端口未监听等异常 |
| 捕获 FIN 断开请求包 | sudo tcpdump -i ens160 -nn tcp[13] & 1 != 0 | 分析连接正常断开流程 |
五、内容查看命令
| 功能描述 | 命令示例 | 适用场景 |
|---|---|---|
| ASCII 格式显示内容 | sudo tcpdump -i ens160 -A -nn tcp port 80 | 查看 HTTP 请求 / 响应的文本内容 |
| 十六进制 + ASCII 显示 | sudo tcpdump -i ens160 -X -nn tcp port 80 | 查看二进制 + 文本混合数据(如文件传输) |
| 过滤含特定关键词的包 | sudo tcpdump -i ens160 -A -nn 'tcp port 80 and contains "login"' | 捕获登录请求等关键业务数据包 |
六、关键参数解析
| 参数 | 功能说明 | 优先级 / 常用度 |
|---|---|---|
-i [网卡名] | 指定抓包网卡(如 ens160、any 表示所有网卡) | 必选 |
-c [数量] | 捕获指定数量的数据包后停止 | 常用 |
-n | 禁止将 IP 地址转换为域名 | 常用 |
-nn | 禁止 IP 转域名、端口转服务名(如 80→http) | 常用 |
-w [文件] | 将数据包保存为 pcap 格式文件 | 常用 |
-r [文件] | 读取 pcap 格式的离线数据包文件 | 常用 |
-v/-vv/-vvv | 显示详细程度不同的数据包信息(v 越多越详细) | 可选 |
-A | 以 ASCII 码格式显示数据包内容 | 文本协议常用 |
-X | 以十六进制 + ASCII 码格式显示数据包内容 | 二进制数据常用 |
src/dst | 指定源 / 目标 IP 或端口 | 过滤必选 |
host | 指定双向通信的主机 IP | 过滤常用 |
net | 指定网段 | 网段监控常用 |
port/portrange | 指定单个端口 / 端口范围 | 服务排查常用 |
tcp/udp/icmp | 指定协议类型 | 协议过滤常用 |
and/or/not | 逻辑运算符,组合多个过滤条件(not 优先级最高) | 复杂过滤常用 |



