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 [网卡名] 指定抓包网卡(如 ens160any 表示所有网卡) 必选
-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 优先级最高) 复杂过滤常用
相关推荐
小王要努力上岸1 小时前
[特殊字符] Nginx全栈实战指南:Rocky Linux 10 & Ubuntu 24.04 双系统部署
linux·nginx·ubuntu
linweidong4 小时前
C++ 模块化编程(Modules)在大规模系统中的实践难点?
linux·前端·c++
invicinble8 小时前
对linux形成认识
linux·运维·服务器
小Pawn爷8 小时前
14.VMmare安装ubuntu
linux·运维·ubuntu
郝学胜-神的一滴8 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
半桔8 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
绵绵细雨中的乡音8 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
HABuo9 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
Howrun7779 小时前
关于Linux服务器的协作问题
linux·运维·服务器
暖馒9 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件