路由优化实战:回程怎么看,线路怎么选,中转怎么加

发布于 8 天前 44 次阅读


上一篇讲了主机类型的分工:谁管出境、谁管落地。但知道「谁在干活」,和知道「这条路过得好不好」,是两件事。

这篇讲三个环节:怎么测(把路由看清楚)、怎么判(区分真问题和假问题)、怎么改(按成本从低到高)。

本文属于 VPS 网络与代理链路系列,该系列共六篇,可从此页查看完整阅读顺序与全部索引。

一、先分清三个方向

一条链路其实是两段路径拼起来的:

  • 去程:你的机器 → 服务器(上传、请求)
  • 回程:服务器 → 你的机器(下载、响应)

关键在于:去程和回程经常不对称。BGP 是单向决策,你的 ISP 怎么把包送出去,和服务器那边怎么把包送回来,走的是两套完全不同的路由策略。

所以会出现这种情况:去程走 CN2、回程走 163 骨干——ping 看着还行,但下载速度在晚高峰直接掉一半。

判断标准:如果你只测了一个方向,那等于没测。尤其回程更影响体感,因为网页加载、文件下载、API 返回全都走回程。

二、怎么测:工具与判读

2.1 三件套

# 1. 基础延迟与丢包(只看末跳数值)
ping -c 50 目标IP

# 2. 逐跳路径 + AS 号(最有用的一条命令)
mtr -rwzbc 100 目标IP

# 3. 用 TCP 探测,绕开 ICMP 限速干扰
mtr --tcp --port 443 -rwzbc 100 目标IP

参数含义:

  • -r 报告模式,跑完输出汇总表
  • -w 宽输出,避免 AS 名称被截断
  • -z 显示每一跳的 AS 号
  • -b 同时显示 IP 和反解域名
  • -c 100 探测 100 次,样本足够才准

2.2 回程必须分开测三大运营商

因为三家运营商的回程路径完全不同,而你的访客可能来自任何一家。从服务器上分别测:

# 在服务器上执行,测回程
mtr -rwzbc 100 电信测试IP
mtr -rwzbc 100 联通测试IP
mtr -rwzbc 100 移动测试IP

测试 IP 从哪来?最真实的是你自己的家宽 IP(直接体验);其次是各省运营商的测速节点 IP。

2.3 三条判读铁律

第一条:中间跳丢包不一定是问题。

路由器对 ICMP 限速是常态,很多骨干设备直接不回应探测包。所以你会看到第 5 跳 80% 丢包、末跳 0% 丢包——这种情况下链路是好的,只看末跳。

第二条:看 AS 路径,不只看延迟。

延迟 40ms 但路径里塞了 20 跳、绕了半个地球,白天看着还行,晚高峰必然崩。AS 路径比延迟数值更能说明问题。

第三条:必须在晚高峰测。

20:00–23:00 的表现才是真实体验。白天测出来的漂亮数据没有参考价值,因为那时候大家都在上班。

2.4 怎么看出「绕路」

三个信号:

  • 地理不匹配:连日本机器,路径里出现美国、欧洲的 IP
  • 跳数异常:正常跨境 10–15 跳,绕路可能 20 跳以上
  • 出现不该出现的骨干:国内到日本却经过 NTT 美国、Telia 欧洲这类

用 mtr -z 看 AS 号最快:数字跳来跳去、反复穿越同一个 AS,基本就是绕路。

三、线路等级怎么分

等级 典型线路 AS 号 特点 晚高峰
顶级 CN2 GIA、联通 9929、移动 CMIN2 AS4809 / AS9929 / AS58807 独立通道、优先级高、带宽独享 稳
良好 CN2 GT、联通 4837、软银、IIJ AS4809 / AS4837 / AS17676 / AS2497 有优化但共享 略波动
普通 电信 163 骨干、普通 BGP AS4134 完全共享骨干 明显劣化
差 绕美 / 绕欧的国际线路 — 路径长、跳数多 基本不可用

关键认知:线路等级和机器配置是两回事。同样 1 核 1G,CN2 GIA 和 163 骨干的体验能差十倍。选机器先看线路,再看配置。

四、优化手段:按成本从低到高

4.1 零成本:内核与协议

先确认拥塞控制算法。默认往往是 cubic,换成 BBR 在高延迟链路上提升明显:

# 查看当前算法
sysctl net.ipv4.tcp_congestion_control

# 启用 BBR(Debian / Ubuntu)
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

# 验证:应输出 bbr
sysctl net.ipv4.tcp_congestion_control
lsmod | grep bbr

再减少协议往返。TCP 三次握手加 TLS 握手,冷启动至少 2–3 个 RTT。用连接复用能省掉重复握手:

但要说清楚边界:协议优化解决不了物理绕路。RTT 200ms 的链路,换什么协议都是 200ms。协议优化只省握手开销,不改变路径。

4.2 低成本:加中转

原理是把一条长链路拆成两段,每段都用各自最优的路径。

最典型的场景是移动宽带访问优化线路——移动的国际出口质量差,但如果你先跳到一台国内电信机器,再从电信机器走 CN2,整条路就顺了:

移动宽带 ──→ 国内电信中转 ──→ CN2 目标机
              (这一段用电信优质出口)

中转机最简做法是 iptables DNAT:

# 在中转机上开启转发
sysctl -w net.ipv4.ip_forward=1

# 把进来的 443 转发到目标机
iptables -t nat -A PREROUTING -p tcp --dport 443 
  -j DNAT --to-destination 目标IP:443
iptables -t nat -A POSTROUTING -j MASQUERADE

# 持久化(Debian)
apt install -y iptables-persistent
netfilter-persistent save

如果不想动内核转发,用 realm 这类用户态转发更简单,也不影响 ip_forward 设置。

注意:中转只改善「到中转机」这一段。如果目标机回程本身很差,中转救不回来——回程路径由目标机决定。

4.3 中成本:换线路机

按自己的运营商选,别为用不上的线路付钱:

你用的是 优先选 别选
电信 CN2 GIA、CN2 GT 移动优化线路(对你没优化)
联通 9929、4837 CN2(联通走反而绕)
移动 CMIN2、CMI 电信 163 骨干
三网都有访客 三网优化(最贵但最通用) 单网优化

单网优化 vs 三网优化:如果你就自己一个人用、走固定运营商,买单网优化性价比最高;如果机器要给不同运营商的人用,才需要三网优化。

4.4 高成本:专线 / IX

IPLC / IEPL 不走公网,不受审查影响,延迟稳定;IX 是单机多 IP,入口国内、出口境外。

这两类方案的分工和协议选择(专线内不需要伪装,线路机必须伪装)在上一篇里讲过,这里不重复。

要不要上?判断标准很简单:如果晚高峰丢包超过 10% 且换线路机也解决不了,才值得考虑专线。大部分人不需要。

五、实战:移动家宽访问美国 VPS,晚高峰卡

第一步:测出问题在哪

mtr -rwzbc 100 你的VPS_IP

典型的问题输出会长这样:

  • 前几跳是移动出口(AS9808 / AS56048 等)
  • 中间突然切到 AS4134(电信 163 骨干)
  • 然后绕到美国西海岸,再跳回目标机房
  • 跳数 20+,末跳晚高峰丢包 5–15%

第二步:判断根因

移动用户被丢到电信骨干,说明移动到该机房的直连路径质量差,运营商的 BGP 决策把流量甩给了电信。这不是协议问题、不是配置问题,是路由问题。

第三步:三个方案对比

方案 成本 改善哪一段 预期效果
加国内电信中转 一台国内 VPS 去程 去程明显改善,回程不变
换 CMIN2 线路机 换机器 去程 + 回程 两个方向都优化,效果最好
加香港落地 中高 国际互联段 访问欧美日更快,但国内段不变

第四步:改完必须复测

用同一条命令、同样的时段(还是晚高峰)再跑一次,对比三项:末跳延迟、末跳丢包、跳数。三项都改善才算真的优化成功,只看延迟下降可能只是运气好。

六、五个常见误区

  1. 只看 ping 就下结论。ping 走 ICMP,经常被路由器降优先级,和 TCP 实际表现不是一回事。用 mtr --tcp。
  2. 只测去程。下载慢、网页加载慢,几乎都是回程问题。
  3. 迷信「三网优化」标签。不少商家把 4837 也宣传成三网优化。自己跑 mtr 看 AS 号最可靠。
  4. 以为换协议能解决绕路。协议只影响握手开销,改不了物理路径。绕路要靠换线路或加中转。
  5. 白天测完就说好。晚高峰的丢包才是真问题,白天数据没有参考价值。

七、优化决策树

问题:感觉慢 / 卡
│
├─ 末跳延迟高(>150ms)
│   ├─ 路径绕路(跳数多、AS 乱)→ 换线路机 或 加中转
│   └─ 纯物理距离(路径干净)→ 换更近的机房
│
├─ 延迟正常,但末跳丢包高
│   ├─ 中间跳丢包、末跳正常 → 忽略,是 ICMP 限速
│   └─ 末跳真的丢包 → 线路拥堵,换线路 或 加中转
│
└─ 延迟丢包都正常,但速度上不去
    ├─ 带宽跑满 → 升配 / 换大带宽
    └─ 单连接慢、多连接正常 → 协议开销,调 TCP 或换协议

八、小结

路由优化的正确顺序是:先测(搞清问题在哪一段)→ 再判(区分真问题和 ICMP 假象)→ 后改(按成本从低到高试)。

绝大部分「VPS 慢」的原因不是配置不够,而是选错了线路。花时间跑几条 mtr,比盲目换机器有效得多。

相关阅读