服务器丢包排查方法:从 ping 到 MTR 的完整定位流程

服务器出现丢包时,先别急着换机房或重启。
你需要先判断丢包发生在哪一段:是本机网卡、本地运营商、中间骨干网,还是目标服务器。
大多数情况下,用 ping 加 mtr 就能把范围缩小到某一段链路,再用 tcpdump 确认是否被防火墙或限速策略拦截。

先确认是不是真丢包

在开始排查前,需要先排除“看起来像丢包”的假象。
例如目标服务器禁用了 ICMP 回包,ping 会显示超时,但 TCP 业务其实是通的。

准备条件:

  • 一台能正常执行命令的 Linux 服务器(CentOS、Ubuntu、Debian 均可)。
  • 知道目标 IP 或域名,最好同时准备一个同机房的其他 IP 做对照。
  • 如果是宝塔面板用户,可以直接在面板终端操作,路径为:面板首页 -> 终端。

先执行基础连通性测试:

ping -c 20 目标IP

观察输出末尾的统计行,例如 20 packets transmitted, 20 received, 0% packet loss。
如果丢包率在 1% 以内且延迟稳定,通常属于正常波动;
如果丢包率超过 5% 或延迟忽高忽低,才需要继续排查。

如果 ping 完全不通,但网站能打开或 SSH 能登录,说明目标禁用了 ICMP,这种情况不要用 ping 判断丢包。

用 MTR 定位丢包发生在哪一跳

ping 只能告诉你“丢了”,mtr 能告诉你“在哪丢的”。
MTR 会结合 ping 和 traceroute,持续向每一跳发送探测包。

安装 MTR:

# Debian/Ubuntu
apt install mtr -y

# CentOS
yum install mtr -y

执行双向测试,先测本机到目标:

mtr -rwzc 50 目标IP

参数含义:-r 输出报告,-w 宽屏模式,-z 显示 ASN 信息,-c 50 发送 50 个包。

结果解读:

  • 如果从第 1 跳就开始丢包,问题在本机网卡、网线或本地网关。
  • 如果中间某一跳开始丢包,且后续所有跳都持续丢包,问题大概率在该跳或之后。
  • 如果中间某一跳丢包,但后续跳恢复正常,这通常是该路由器不响应 ICMP,属于正常现象,不代表链路故障。

再从目标服务器反向 MTR 回你的 IP,因为去程和回程可能走不同线路。
两边结果对比,能更快锁定单向丢包。

检查本机网卡和防火墙

如果 MTR 显示第一跳就丢包,或者丢包集中在你自己这台机器上,优先查网卡统计和防火墙规则。

查看网卡错误和丢包计数:

ip -s link show eth0

把 eth0 换成你的实际网卡名,可以用 ip addr 查看。
重点看 RX 和 TX 部分的 errors、dropped、overrun。
如果 dropped 持续增长,可能是网卡缓冲区不足或 CPU 处理不过来;
如果 errors 增长,可能是网线、光模块或交换机端口问题。

检查防火墙是否拦截或限速:

iptables -L -n -v

如果使用 firewalld:

firewall-cmd --list-all

注意看有没有 DROP、REJECT 规则,或者 hashlimit、limit 这类限速模块。
宝塔用户可以在 安全 页面查看是否有异常 IP 封禁记录。

用 tcpdump 确认业务端口是否被拦截

ICMP 测试正常,但业务端口丢包,需要用 tcpdump 抓包确认数据包到底有没有到达服务器。

抓取指定端口的流量:

tcpdump -i eth0 -nn host 你的客户端IP and port 目标端口 -c 100

例如排查 443 端口:

tcpdump -i eth0 -nn host 203.0.113.10 and port 443 -c 100

在客户端同时发起请求,观察服务端是否能抓到包。

判断依据:

  • 服务端能抓到请求包,但没有回包,问题在服务端应用或防火墙出站规则。
  • 服务端抓不到任何包,问题在中间链路或客户端到服务端之间被拦截。
  • 抓到大量重复包或重传包,说明链路存在拥塞或丢包。

抓包时注意不要长时间全量抓取,避免占满磁盘。-c 100 表示抓满 100 个包自动停止,按 Ctrl+C 也可以手动结束。

容易踩坑的几个地方

不要只看一次 ping 结果就下结论。 网络抖动有随机性,至少测试 50 到 100 个包,并且在不同时间段复测。

MTR 中间跳丢包不一定是故障。 很多骨干路由器对 ICMP 探测包做了限速或降优先级,只要最终跳不丢包,业务通常不受影响。

区分 ICMP 丢包和 TCP 丢包。 有些服务器或云厂商安全组默认只放行特定端口,ICMP 被丢弃不代表业务端口有问题,反过来也一样。

云服务器还要看安全组和控制台监控。 阿里云、腾讯云等厂商的控制台通常有网络监控和流量日志,安全组规则错误也会表现为“丢包”,但实际是拦截。

改动防火墙或网卡参数前先备份。 例如修改 iptables 规则前执行 iptables-save > /root/iptables.bak,避免规则清空后无法远程连接。

验证丢包是否真正解决

完成调整后,按同样的方式复测,确认结果可对比:

ping -c 100 目标IP
mtr -rwzc 100 目标IP

如果丢包率从高位降到 0% 或接近 0%,且 MTR 各跳延迟稳定,说明问题已缓解。
如果仍然丢包,保留两次测试结果,提交给服务器提供商或运营商,让它们从骨干网侧继续排查。

排查服务器丢包的核心思路是:先确认是否真丢包,再用 MTR 定位跳数,最后用网卡统计和抓包确认本机与业务端口状态。
按这个顺序走,大多数常见丢包问题都能在半小时内缩小到具体环节。

分享到:
上一篇
Windows系统日志分析:从入门到精通的排错实战
下一篇
内网穿透配置教程:从零搭建到远程访问验证
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意