上一篇讲了主机类型的分工:谁管出境、谁管落地。但知道「谁在干活」,和知道「这条路过得好不好」,是两件事。
这篇讲三个环节:怎么测(把路由看清楚)、怎么判(区分真问题和假问题)、怎么改(按成本从低到高)。
本文属于 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。用连接复用能省掉重复握手:
- XHTTP / XMUX 的复用机制(详见 VLESS + XHTTP + Reality + XMUX 技术实现)
- 开启 TCP Fast Open(
net.ipv4.tcp_fastopen=3)
但要说清楚边界:协议优化解决不了物理绕路。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 线路机 | 换机器 | 去程 + 回程 | 两个方向都优化,效果最好 |
| 加香港落地 | 中高 | 国际互联段 | 访问欧美日更快,但国内段不变 |
第四步:改完必须复测
用同一条命令、同样的时段(还是晚高峰)再跑一次,对比三项:末跳延迟、末跳丢包、跳数。三项都改善才算真的优化成功,只看延迟下降可能只是运气好。
六、五个常见误区
- 只看 ping 就下结论。ping 走 ICMP,经常被路由器降优先级,和 TCP 实际表现不是一回事。用
mtr --tcp。 - 只测去程。下载慢、网页加载慢,几乎都是回程问题。
- 迷信「三网优化」标签。不少商家把 4837 也宣传成三网优化。自己跑 mtr 看 AS 号最可靠。
- 以为换协议能解决绕路。协议只影响握手开销,改不了物理路径。绕路要靠换线路或加中转。
- 白天测完就说好。晚高峰的丢包才是真问题,白天数据没有参考价值。
七、优化决策树
问题:感觉慢 / 卡
│
├─ 末跳延迟高(>150ms)
│ ├─ 路径绕路(跳数多、AS 乱)→ 换线路机 或 加中转
│ └─ 纯物理距离(路径干净)→ 换更近的机房
│
├─ 延迟正常,但末跳丢包高
│ ├─ 中间跳丢包、末跳正常 → 忽略,是 ICMP 限速
│ └─ 末跳真的丢包 → 线路拥堵,换线路 或 加中转
│
└─ 延迟丢包都正常,但速度上不去
├─ 带宽跑满 → 升配 / 换大带宽
└─ 单连接慢、多连接正常 → 协议开销,调 TCP 或换协议
八、小结
路由优化的正确顺序是:先测(搞清问题在哪一段)→ 再判(区分真问题和 ICMP 假象)→ 后改(按成本从低到高试)。
绝大部分「VPS 慢」的原因不是配置不够,而是选错了线路。花时间跑几条 mtr,比盲目换机器有效得多。
相关阅读
- 多线 VPS 的源地址选择与策略路由 —— 出口 IP 怎么强制指定
- 路由追踪怎么读:traceroute、mtr 与 AS 路径判读 —— 判读命令输出的完整方法
- 中转家宽代理搭建实战:三种架构与完整配置 —— 家宽中转的三种方案与配置
- 线路机、落地机、家宽、前置、IX、专线(IPLC/IEPL)都是什么
- VLESS + XHTTP + Reality + XMUX 技术实现
- 基于不同可用区域的 GRE 隧道搭建

Comments NOTHING