linux 中可用 tcpdump 抓包并保存为 .pcap 文件供 wireshark 分析,全过程无需图形界面;需先安装 tcpdump 和 wireshark-common,用 -w 参数指定文件名,推荐 .pcap 后缀,再通过 scp 等工具传至有 gui 的机器用 wireshark 打开分析。

抓包前先确认基础条件
确保系统已安装 tcpdump 和 Wireshark(或仅需 wireshark-common,用于解析):
sudo apt install -y tcpdump wireshark(Ubuntu/Debian)
sudo yum install -y tcpdump wireshark(CentOS/RHEL)
普通用户若无抓包权限,后续命令可加 sudo;Wireshark 本地 GUI 分析时,建议用有图形桌面的机器打开文件。
用 tcpdump 抓包并保存为标准格式
关键参数是 -w,必须指定输出文件名,后缀推荐 .pcap(Wireshark 兼容性最好):
• 抓指定网卡、某 IP 的全部流量:
sudo tcpdump -i eth0 host 192.168.1.105 -w capture.pcap
• 抓 Modbus TCP(端口 502)流量:
sudo tcpdump -i any port 502 -w modbus.pcap
• 抓 HTTP 流量(端口 80),完整包不截断:
sudo tcpdump -i eth0 port 80 -s 0 -w http.pcap
• 后台长期抓包(如排查偶发问题):
nohup sudo tcpdump -i eth0 port 502 -w modbus-$(date +%s).pcap &
把抓包文件传到 Wireshark 环境中
Wireshark 是图形工具,通常运行在 Windows/macOS 或带桌面的 Linux 上。服务器上抓的包需导出:
• 用 scp 下载(本地 Mac/Linux):
scp user@server:/path/to/capture.pcap ./
• 用 WinSCP、FileZilla 或 rsync 传输(Windows 用户)
• 注意:不要用 base64 编码或重命名扩展名,保持原始 .pcap 后缀
在 Wireshark 中打开和初步分析
启动 Wireshark → “File” → “Open” → 选择刚传入的 .pcap 文件。
常用过滤技巧(输入到顶部显示过滤器栏):
• 只看某个 IP 的通信:
ip.addr == 192.168.1.105
• 只看 Modbus TCP 流量(端口 502,且协议被正确识别):
tcp.port == 502 && modbus
• 查看某次 TCP 对话的完整交互:
右键任一数据包 → “Follow” → “TCP Stream”
• 快速定位异常:筛选重传、零窗、RST 包:
tcp.analysis.retransmission || tcp.analysis.zero_window || tcp.flags.reset == 1











