Linux Sniffer如何进行网络故障排查
导读:Linux Sniffer网络故障排查实战指南 一、排查流程与定位思路 明确症状与目标:是连通性问题(ping、端口)、性能问题(时延、丢包、重传)、还是应用问题(HTTP 5xx、握手失败)。 选好抓包点:在问题路径上就近抓包,例如客户...
Linux Sniffer网络故障排查实战指南
一、排查流程与定位思路
- 明确症状与目标:是连通性问题(ping、端口)、性能问题(时延、丢包、重传)、还是应用问题(HTTP 5xx、握手失败)。
- 选好抓包点:在问题路径上就近抓包,例如客户端、服务器、网关/旁路镜像口;服务器抓包通常需要开启网卡混杂模式以看到经过接口的所有帧。
- 最小化采集:先用BPF 过滤表达式精准限定目标主机、端口、协议,避免产生过大抓包文件。
- 快速判读:先看是否有ARP/DNS异常,再看TCP 三次握手与重传/超时,最后结合HTTP/DNS等应用层细节定位根因。
- 复现与对照:在问题复现时抓取,并与正常时段对比;必要时分链路、分方向抓包对照。
- 合规与授权:抓包涉及隐私与合规,务必获得相应授权后再实施。
二、常用工具与核心命令
- 工具选型与定位
- tcpdump:命令行抓包与快速过滤,适合服务器/无图形环境。
- Wireshark/tshark:图形化/命令行深度解析,适合协议细查与离线分析。
- EtherApe:按主机/连接关系可视化流量,便于发现异常主机或异常会话。
- 快速上手命令
- 监听指定网卡并保存:
- tcpdump -i eth0 -w capture.pcap
- 只抓指定数量包:
- tcpdump -i eth0 -c 100 -w capture.pcap
- 按主机/端口过滤:
- tcpdump -i any host 192.168.1.100 and port 80
- 只抓 HTTP 请求行(tshark):
- tshark -i eth0 -f “port 80” -T fields -e http.host -e http.request.uri
- 读取 pcap 并分析 DNS:
- tshark -r capture.pcap -Y dns
- 图形化分析:用 Wireshark 打开 .pcap,配合显示过滤器如 ip.addr==x.x.x.x、tcp.port==80、http、dns。
- 监听指定网卡并保存:
- 权限与接口选择
- 抓包需要原始套接字权限:使用 sudo 或将用户加入 wireshark 组(sudo usermod -aG wireshark $USER)。
- 查看接口:ip addr / ifconfig;指定接口:tcpdump -i eth0;必要时用 -i any 监听所有接口。
三、典型故障的抓包与判读要点
- 连通性/DNS 问题
- 抓 DNS:tcpdump -i any -n port 53,观察是否有查询与响应、响应是否来自预期 DNS 服务器、是否超时。
- 抓 ICMP:tcpdump icmp -n -i eth0,判断是否被ping通或被防火墙丢弃。
- TCP 连接失败/卡在握手
- 三次握手是否完成:是否出现 [S] SYN、[S.] SYN-ACK、[.] ACK;若只有 SYN 无 SYN-ACK,常见于对端未监听、ACL/防火墙拦截、或中间设备丢弃。
- 是否存在重传:重复 SYN/ACK 或数据段重传,提示链路不稳定、对端过载或中间限速。
- HTTP/应用层异常
- 过滤 port 80/443,观察 HTTP 请求/响应是否到达、是否有 RST 中断、TLS 握手是否成功(Wireshark 可解析握手与告警)。
- ARP 异常
- 抓 arp:tcpdump arp -c 2,确认是否频繁 ARP 请求/响应、是否出现IP 冲突或网关 MAC 异常。
- 异常流量/DoS 迹象
- 抓 ICMP 或特定端口,观察是否有突发高密度包、异常协议调用或来自单一源的大量连接,作为进一步处置依据。
四、高效过滤表达式速查
- 指定接口与数量:
- -i eth0 -c 200
- 只看某主机:
- host 192.168.1.10
- 只看某端口(如 HTTP):
- port 80;请求方向:dst port 80;响应方向:src port 80
- 组合条件:
- host 192.168.1.10 and port 80
- 排除某主机:host 192.168.1.10 and ! 192.168.1.1
- 协议限定:
- arp、icmp、tcp、udp
- 显示控制:
- -n(不做名字解析,更快更清晰)、-X(显示十六进制/ASCII 负载)
- 提示:复杂逻辑可用括号,命令行需转义(如 ( … ))。
五、排错清单与最佳实践
- 权限与接口
- 抓包需要root或加入 wireshark 组;确认选择了正确的网卡/镜像口。
- 过滤与性能
- 始终使用过滤表达式,避免全量抓包;必要时限制包数(-c)或时长。
- 文件与离线分析
- 优先保存为 .pcap 再用 Wireshark/tshark 分析,便于反复查看与分享。
- 资源与稳定性
- 长时间抓包注意磁盘空间与CPU/内存占用;必要时分片抓取。
- 合规与安全
- 抓包可能包含敏感数据,仅在授权范围内实施,并妥善保护抓包文件。
- 若仍无法定位
- 复核IP/路由/网关/DNS配置,检查防火墙/ACL策略,必要时联系网络设备侧同事联合排查。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Sniffer如何进行网络故障排查
本文地址: https://pptw.com/jishu/758467.html
