如何通过Ubuntu Dumpcap进行网络故障排查
导读:Ubuntu 上使用 Dumpcap 进行网络故障排查 一 安装与权限配置 安装工具:在 Ubuntu 上安装包含 Dumpcap 的 Wireshark 套件即可使用 Dumpcap。 命令:sudo apt update &...
Ubuntu 上使用 Dumpcap 进行网络故障排查
一 安装与权限配置
- 安装工具:在 Ubuntu 上安装包含 Dumpcap 的 Wireshark 套件即可使用 Dumpcap。
- 命令:
sudo apt update & & sudo apt install wireshark
- 命令:
- 权限与安全:
- 推荐将当前用户加入 wireshark 组,避免使用 root 直接抓包。
- 命令:
sudo usermod -aG wireshark $USER,然后注销并重新登录生效。
- 命令:
- 或使用能力(capabilities)授权:
- 命令:
sudo setcap 'cap_net_raw,cap_net_admin+eip' /usr/bin/dumpcap
- 命令:
- 推荐将当前用户加入 wireshark 组,避免使用 root 直接抓包。
- 抓包通常需要管理员权限,以上两种方式任选其一即可。
二 快速定位与抓包流程
- 明确现象:例如 网络中断、丢包、高延迟、DNS 解析失败、HTTP 访问异常 等,便于选择接口与过滤器。
- 选择接口:先确认要监听的网卡名称(如 eth0、ens33、wlan0、lo)。
- 查看接口:
ip addr或ip link
- 查看接口:
- 执行抓包:优先写入文件,便于事后分析;必要时配合显示过滤器实时观察。
- 示例:
sudo dumpcap -i eth0 -w capture.pcap
- 示例:
- 停止与回看:按 Ctrl+C 停止;用 Wireshark 打开 .pcap 文件分析,或用
tshark -r capture.pcap命令行查看。
三 常用命令与过滤表达式
- 常用命令
- 捕获指定接口到文件:
sudo dumpcap -i eth0 -w capture.pcap - 仅捕获前 N 个包:
sudo dumpcap -i eth0 -c 100 -w short.pcap - 按时间/大小自动轮转(便于长时间抓包):
- 每 60 秒 新建一个文件:
sudo dumpcap -i any -G 60 -W bysec -w cap_%Y-%m-%d_%H:%M:%S.pcap
- 每 60 秒 新建一个文件:
- 实时查看(管道到 tcpdump):
sudo dumpcap -i eth0 -w - | tcpdump -r -
- 捕获指定接口到文件:
- 捕获过滤器(BPF 语法,放在
-f后)- 仅 HTTP:
sudo dumpcap -i any -f "tcp port 80" -w http.pcap - 仅 DNS:
sudo dumpcap -i any -f "udp port 53 or tcp port 53" -w dns.pcap - 仅 SSH:
sudo dumpcap -i any -f "tcp port 22" -w ssh.pcap - 指定主机:
sudo dumpcap -i any -f "host 192.168.1.10" -w host.pcap - 指定 MAC:
sudo dumpcap -i any -f "ether host 00:11:22:33:44:55" -w mac.pcap
- 仅 HTTP:
- 显示过滤器(Wireshark/tshark 打开文件后用,放在
-Y后)- HTTP 请求/响应:
tshark -r capture.pcap -Y "http"
- HTTP 请求/响应:
- 提示:捕获过滤器在抓包阶段就减少数据量,性能更好;显示过滤器在分析阶段再细化。
四 典型故障的抓包与判断要点
- 丢包或连接不稳定
- 抓包:
sudo dumpcap -i eth0 -f "host 10.0.0.10" -w loss.pcap - 判断:观察是否有 TCP Retransmission、Duplicate ACK、Zero Window 等重传与窗口告警,定位链路或远端拥塞问题。
- 抓包:
- 高延迟或卡顿
- 抓包:
sudo dumpcap -i eth0 -f "tcp port 443" -w latency.pcap - 判断:查看 TCP 握手时延(SYN→SYN/ACK)、请求→响应的 RTT,结合重传与乱序判断服务端/网络路径问题。
- 抓包:
- DNS 解析失败
- 抓包:
sudo dumpcap -i any -f "udp port 53 or tcp port 53" -w dns.pcap - 判断:是否存在 SERVFAIL/REFUSED、查询无响应或超时,核对域名与 DNS 服务器配置。
- 抓包:
- HTTP 访问异常
- 抓包:
sudo dumpcap -i any -f "tcp port 80 or tcp port 443" -w http.pcap - 判断:是否出现 TCP 建连失败(SYN 无响应)、TLS 握手失败、HTTP 4xx/5xx,结合重传与分段情况定位客户端/服务端/中间设备问题。
- 抓包:
五 性能与合规建议
- 性能优化
- 增大内核缓冲区:
-B 1048576(单位字节),在高流量环境减少丢包。 - 限制捕获范围:优先使用 捕获过滤器 精确抓取目标主机/端口/协议。
- 长时间抓包:使用 -G/-W 按时间或大小自动切分文件,便于归档与分析。
- 实时查看:通过管道到 tcpdump 或使用 Wireshark 远程抓包,降低本地资源占用。
- 增大内核缓冲区:
- 合规与安全
- 抓包可能获取敏感信息,务必在授权范围内进行,并妥善保管 .pcap 文件。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过Ubuntu Dumpcap进行网络故障排查
本文地址: https://pptw.com/jishu/758342.html
