内网流量抓包Wireshark,分析服务器网络异常
内网抓包到底能解决什么问题
当服务器出现访问慢、
连接被重置、
丢包或接口超时,
日志往往只给出「连接失败」这类笼统提示。内网流量抓包Wireshark的核心用途,
是把网卡上真实经过的数据包记录下来,
用时间线、
重传、
RST等字段判断问题出在客户端、
服务端还是中间链路。 本文按零基础可照做的顺序,
讲清安装、
抓包、
过滤、
分析和验证,
读完你能独立定位一次内网网络异常。
抓包不是万能药,它只能看到经过抓包点的流量。
如果你在A服务器抓包,而问题发生在B到C之间,A上可能什么都看不到——所以第一步是选对抓包位置。
抓包前的环境准备
优先在离故障最近且流量必经的机器上抓包,常见选择是问题服务器本机或核心交换机镜像口。
Linux服务器建议先装命令行工具,避免图形界面依赖:
# Debian/Ubuntu
apt update && apt install -y tcpdump wireshark-common
# CentOS/Rocky
yum install -y tcpdump wireshark
确认网卡名称和抓包权限:
ip -br addr
# 普通用户无权限时用sudo,或临时赋予cap_net_raw
getcap tcpdump
如果服务器没有图形界面,用 tcpdump 抓成 .pcap 文件,再下载到本地用Wireshark打开分析。
这是生产环境最稳妥的方式,不要在高峰期直接在服务器上跑Wireshark图形界面,会占用较多内存。
用 tcpdump 精准抓取内网流量
抓包时加过滤条件,能大幅减少文件体积和后续分析难度。
假设要排查 192.168.1.50 与 192.168.1.80 之间 8080 端口的通信:
# 抓指定主机和端口,-s 0 抓完整包,-w 写入文件
tcpdump -i eth0 -s 0 -w /tmp/net.pcap host 192.168.1.50 and host 192.168.1.80 and port 8080
# 抓内网整段,排除本机SSH干扰
tcpdump -i eth0 -s 0 -w /tmp/lan.pcap net 192.168.1.0/24 and not port 22
停止抓包按 Ctrl+C,然后用 scp 把文件下载到本地:
scp root@192.168.1.50:/tmp/net.pcap ./
抓包文件不要长期留在服务器上,一是占用磁盘,二是可能包含敏感数据,分析完及时删除。
Wireshark 显示过滤与异常特征识别
打开 pcap 文件后,先用显示过滤器缩小范围。
常用语法:
ip.addr == 192.168.1.80 && tcp.port == 8080
tcp.flags.reset == 1
tcp.analysis.retransmission
判断异常时重点看这几类特征:
- 大量TCP Retransmission(重传):说明链路丢包或对端处理慢,可用
tcp.analysis.retransmission过滤后统计数量。 - RST包集中出现:通常是对端端口未监听、连接被防火墙重置,或服务主动拒绝。
- 零窗口(Zero Window):接收方缓冲区满,服务端处理不过来,属于应用层瓶颈而非网络问题。
- 三次握手缺失或超时:SYN发出后没有SYN-ACK,多为路由、防火墙或对端宕机。
右键任意一个包选择 Follow → TCP Stream,能完整还原一次会话的收发内容,快速判断是请求没发出还是响应没回来。
避坑与常见误判
抓包分析最容易踩的坑,是抓包点选错导致结论完全相反。
如果只在客户端抓包看到重传,别急着断定是网络问题,也要在对端抓一次做对比。
另外注意:
- 交换机镜像口可能丢包或只镜像单向流量,抓到的结果不能完全代表真实链路。
- 虚拟机网卡抓包常受宿主机虚拟交换影响,必要时在宿主机物理网卡抓。
- 抓包文件过大时Wireshark会卡顿,建议用
tcpdump先按条件过滤,而不是全量抓。 - 时间戳不准会导致时序误判,跨设备对比前先确认各机器NTP同步。
一个可独立引用的判断:如果重传集中在单一IP对,多半是链路或该主机问题;
如果重传分散到多个对端,优先怀疑本机网卡、驱动或上游交换机。
验证修复效果
调整防火墙、路由或应用配置后,用同样的过滤条件再抓一次,对比重传率和RST数量是否下降。
tcpdump -i eth0 -s 0 -w /tmp/after.pcap host 192.168.1.80 and port 8080
把修复前后的 pcap 都用 tcp.analysis.retransmission 过滤,重传包数量明显减少、握手能正常完成,才算验证通过。
如果异常依旧,回到抓包点选择这一步重新排查,而不是反复修改应用配置。
内网流量抓包Wireshark不是一次就能定位所有问题,但按「选点—过滤—看特征—对比验证」的流程走,绝大多数丢包、延迟和连接异常都能找到明确方向。