利用Linux Sniffer分析网络问题可按以下步骤操作,结合工具特性与场景选择合适方法:
捕获数据包
tcpdump -i eth0(监听eth0网卡)。-w capture.pcap,后续用Wireshark分析。-c 100(抓取100个包后停止)。过滤关键信息
tcpdump host 192.168.1.100 and port 80(抓取指定IP的HTTP流量)。tcpdump icmp(抓取ICMP包,排查ping问题)。tcpdump not port 22(排除SSH流量)。分析数据包
tcpdump -r capture.pcap -nn -X:显示包的十六进制和ASCII内容,用于分析应用层协议(如HTTP)。tshark -r capture.pcap -Y "http.request":过滤HTTP请求包。| 问题类型 | 抓包命令/技巧 | 分析重点 |
|---|---|---|
| 网络连通性故障 | tcpdump -i eth0 host 10.0.0.1 and port 443(测试目标IP的HTTPS连接) |
是否有SYN/ACK响应,是否存在丢包或RST包 |
| DNS解析异常 | tcpdump -i eth0 udp port 53(抓取DNS查询/响应包) |
查询域名是否正确,响应是否超时或错误 |
| TCP连接问题 | `tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn | tcp-ack) != 0’`(抓取TCP握手包) |
| 应用层协议错误 | tcpdump -i eth0 -A -s0 port 80(抓取HTTP明文数据) |
请求头、响应码是否正确,是否存在超时或重定向 |
| 广播风暴或异常流量 | tcpdump -i eth0 broadcast 或 tcpdump -i eth0 arp(抓取ARP请求) |
广播包数量是否异常,是否存在大量ARP洪泛 |
sudo获取权限,确保抓包行为符合公司政策与法律法规。-s 0限制抓包长度减少资源占用。通过以上方法,可高效定位网络中断、延迟、协议异常等问题,结合工具特性与过滤技巧快速缩小故障范围。