服务器网络抓包排查需先定位问题范围再精准捕获:用ping确认丢包、traceroute定位故障跳、ss/netstat验证端口监听、iptables/firewall-cmd检查拦截规则;选对网卡并用-nn -tttt -c N及host/port等过滤条件;抓包后通过grep重传/RST包、awk分析SYN/RST、seq乱序等快速识别根因,并结合ethtool、netstat、ss等内核指标交叉验证。

服务器网络抓包排查不是一上来就 tcpdump -i eth0 抓满屏,而是有逻辑、分层次的实战动作。核心是:先定位问题范围,再精准捕获,最后结合协议特征判断根因。
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
明确抓包目标:先搞清“在哪丢、丢什么”
抓包前必须缩小怀疑范围,避免海量无效包干扰判断:
- 用
ping -c 100 目标IP看丢包率和延迟波动,确认是否真丢包 - 用
traceroute -n 目标IP查路径中哪一跳开始超时或延迟突增 - 用
ss -tuln或netstat -tuln确认服务端口确实在监听 - 检查防火墙:
iptables -L -n或firewall-cmd --list-all,看是否有 DROP 规则拦截流量
选对网卡和过滤条件:让抓包结果干净有用
别默认抓 lo 或错的物理网卡,也别抓全量包:
- 列出可用接口:
tcpdump -D或ip -br a - 常见业务网卡名:eth0、ens33、bond0、vlan100(注意区分管理网和业务网)
- 必加基础参数组合:
-nn -tttt -c N(不解析域名端口、带完整时间戳、限制包数) - 按需加过滤表达式:
• 只抓某IP通信:host 192.168.1.100
• 只抓某端口TCP流量:tcp and port 8080
• 排除干扰包(如NTP、DNS):not port 53 and not port 123
抓包后快速识别关键线索:不用Wireshark也能看出问题
保存为 pcap 文件后,用命令行直接筛关键信息:
- 查重传包(链路不稳定/丢包证据):
tcpdump -r capture.pcap | grep "retransmission" - 统计连接建立失败(SYN未响应):
tcpdump -r capture.pcap | awk '$6 ~ /S$/ {print $3,$4}' | sort | uniq -c | sort -nr - 看是否有大量 RST 包(连接被强制中断):
tcpdump -r capture.pcap | grep "R." - 检查 TCP 序列号重复或乱序:
tcpdump -r capture.pcap -nn | awk '{print $3,$7}' | head -20(关注 seq 字段变化)
结合系统状态交叉验证:抓包只是证据链一环
单看包不够,要和内核指标联动分析:
- 查网卡收发丢包:
ethtool -S eth0 | grep -i "drop|error|over" - 查 ring buffer 溢出:
cat /proc/net/dev中 tx_dropped / rx_dropped 列 - 查内核丢包位置:
netstat -s | grep -A 5 "Tcp:"(关注 “retransmits”、“embryonic RSTs”) - 查 socket 缓存溢出:
ss -m或cat /proc/net/snmp | grep -A 1 "Tcp:"
不复杂但容易忽略

















