晚高峰(20:00–23:00)丢包,原因多半是下面五类中的一类:
- 服务器自己扛不住
- 回程没有走 CN2 GIA
- 移动、联通用户跨网绕路
- 机房上游带宽超卖
- 被小流量攻击打满了接口
先用十分钟排除本机问题,再在晚高峰跑一次双向 MTR,通常能确定问题出在哪一层。层次不同,处理方法也不同。原因没找准就换机房,换完照样丢包的情况很常见。

第一步:先确认不是服务器自己的问题
在丢包发生的时段登录服务器,看下面四项:
- CPU 和负载:用
top或htop查看。CPU 跑满时,响应变慢、超时,客户端看起来就像丢包。 - 连接数:用
ss -s查看总连接数,留意SYN_RECV、TIME_WAIT是否异常偏多。 - 出向带宽:用
sar -n DEV 1或iftop看网卡 Tx 有没有贴着购买的带宽上限。 - 网卡丢弃:用
ip -s link看 dropped 计数。也可以执行ethtool -S 网卡名 | grep -i drop,观察计数是否随晚高峰一起上涨。
如果 Tx 贴着上限,或者 dropped 持续增长,瓶颈就在本机带宽或性能上,换线路解决不了。这种情况要么扩容,要么把流量从源站分流出去,后文会讲。
如果连接数暴增,而且请求来源集中、请求路径单一,就要考虑是不是 CC 攻击,可以参考如何判断网站遭遇的是DDoS还是CC攻击。
第二步:在晚高峰跑双向 MTR,重点看回程
很多人只从本地 ping 一下香港服务器,这只测到了去程。CN2 的晚高峰问题大多出在回程,也就是香港服务器把数据送回国内用户的那段路。
具体做法:
- 去程:在国内用户侧对香港服务器执行
mtr -rwzbc 100 服务器IP。 - 回程:在香港服务器上,分别对电信、联通、移动的国内目标 IP 执行同样的命令。目标 IP 最好用你真实用户所在网络的地址,比如办公室或家里不同运营商宽带的公网 IP。
- 对照:白天非高峰时段再跑一组,和晚高峰的结果对比。
参数说明:-z 显示 AS 号,方便判断线路;-c 100 每跳发 100 个包,结果比几次 ping 可靠。
结果这样看:
- 中间某一跳丢包,后面各跳又恢复到 0%:多半是那台路由器对 ICMP 限速,不是真丢包,不用管。
- 从某一跳开始丢包,一直延续到最后一跳,同时延迟明显跳升:这才是真实的丢包点。记下这一跳的 IP、AS 号和所在地。
- 只有一个方向丢包:问题在单向路由,最常见的是回程。
这几组截图请保存好,后面找服务商时要用。
第三步:从路由核对线路到底是什么
拿到回程路由后,看经过的骨干节点:
- 去程和回程都走 59.43 开头的节点(AS4809):这是 CN2 GIA,晚高峰通常比较稳。
- 路由里出现 202.97 开头的节点:说明走的是 CN2 GT,或者普通 163 骨干网(AS4134)。晚高峰国际出口拥塞时,这类线路更容易丢包。
- 去程走 CN2,回程走 163,或者绕到美国、日本等第三地:这是晚高峰丢包最典型的来源,严重时丢包率可能超过 30%。
详细的判断方法见怎么判断是不是真的CN2线路。两种 CN2 在晚高峰的差异,可以看CN2 GIA和CN2 GT有什么区别。
如果实际线路和购买时宣传的不一致,就带着晚高峰的 MTR 截图找服务商,要求调整回程路由,或者更换线路。
第四步:看是不是只有移动、联通用户丢包
CN2 是中国电信的精品网,对移动和联通用户来说,并不天然是最优路径。
如果电信回程正常,移动或联通回程在晚高峰丢包、绕路,问题就在跨网互联上。只接了电信 CN2 的香港单线机房,最容易出这种情况。
处理之前,先在后台或统计工具里看一下用户的运营商分布:
- 用户以电信为主:这个问题影响有限。
- 移动、联通用户占比不低:需要针对性优化的线路。联通常见的是 AS9929,移动常见的是 CMI、CMIN2。也可以在前面加一层三网直连的加速节点。
第五步:以上都正常,怀疑上游超卖或攻击
有一种情况比较难查:本机带宽没跑满,路由也确实是 GIA,但晚高峰仍然随机丢包。
CN2 带宽单价高,一些小机房采购的上游带宽储备不足,晚高峰会超卖。邻居用户突发流量时,可能触发运营商 QoS 限速,你的服务器也跟着丢包。如果同机房其他用户也有类似反馈,基本可以往这个方向判断。可以要求服务商出示上游端口的监控,或者直接迁移机房。
另一种可能是攻击。CN2 线路本身的防御比较薄弱,晚高峰来一波不大的 DDoS 或 CC,就可能把物理接口打满。判断依据是:入向流量、包量或连接数在丢包时段异常升高。
按原因对应处理
| 原因 | 判断依据 | 处理方式 |
|---|---|---|
| 本机性能或带宽不足 | Tx 贴上限、CPU 满、网卡 dropped 增长 | 扩容;做动静分离,把静态流量移出源站 |
| 回程不是 GIA | 回程出现 202.97、163 或绕第三地 | 让服务商调整回程路由,或更换真 GIA 线路 |
| 跨网绕路 | 只有移动、联通丢包 | 换三网优化线路,或前置三网加速节点 |
| 上游超卖 | 本机和路由都正常,丢包随机,同机房有类似反馈 | 让服务商出示监控,或迁移机房 |
| 小流量攻击 | 丢包时入向流量、连接数异常 | 前置防护层,同时隐藏源站 IP |
长期做法:在源站前加一层三网加速和防护
如果你的业务同时面向三网用户,晚高峰还要扛流量和攻击,只靠给源站加买 CN2 大带宽,成本高,也解决不了跨网和防护的问题。
更省事的做法是在香港源站前面加一层 CDN 边缘节点,要求同时具备三网直连和 DDoS/WAF 清洗能力。这样做有三点好处:
- 用户先连到线路更优的节点,静态资源由节点直接返回,源站的下行压力明显变小。
- 源站 IP 被隐藏,不容易被直接打。
- 源站不再需要为高峰流量单独购买昂贵的 CN2 大带宽。
要注意两点。第一,这一层分担不了动态请求带来的 CPU 压力,第一步查出的性能瓶颈仍要在源站解决。第二,接入后要把源站 IP 收口,否则隐藏源站的效果会打折扣,具体方法见高防CDN接入后源站IP还会暴露吗。如果是 TCP/UDP 私有协议的游戏业务,常规 CDN 不适用,可以参考游戏服务器该选高防IP还是高防CDN。
如果排查结果是回程绕路、跨网丢包,或者晚高峰被小流量攻击,可以试试 RockCloud 的 CN2 中国加速。它支持电信 CN2、联通、移动三网直连,免备案。加速和 DDoS/CC 防护在同一条链路上完成,只收一份费用;按固定峰值计费,不限流量。
建议先申请免费测试。在晚高峰用同一组目标 IP 跑 MTR,对比接入前后的丢包率和业务监控数据,再决定是否切换。
评论(0)