从 28% 丢包到 0%:一次 v2ray 卡顿排查与搬瓦工 CN2 GIA 升级实录
记录一次 v2ray 卡顿问题的完整排查过程,从 28% 丢包定位到搬瓦工普通线路拥堵,最终升级到 CN2 GIA ECOMMERCE 的全过程与前后 benchmark 对比。
- 问题:v2ray 突然很卡
- 诊断:先排除本地网络
- 关键发现:DNS 污染 + 节点高丢包
- 为什么普通线路会这么差
- 解决方案:升级到 CN2 GIA ECOMMERCE
- 升级与迁移过程
- 升级前后 benchmark 对比
- 总结
- 后续:当升级后的速度又慢下来
问题:v2ray 突然很卡
某天打开浏览器,发现通过 v2ray 访问 YouTube、Google 都慢得难以忍受。本地代理端口是 10808,v2rayN 显示连接正常,但网页就是转圈。
第一反应通常是怀疑节点挂了,但 v2rayN 并没有报错。为了定位问题,我决定从本地网络、代理进程、节点链路三个层面做一次系统排查。
诊断:先排除本地网络
先用 curl 走 socks5 代理测速:
1
2
3
curl -x socks5h://127.0.0.1:10808 -o /dev/null \
-w "HTTP %{http_code}, 总耗时 %{time_total}s\n" \
https://www.google.com/
结果:HTTP 000,连接超时。但本地直连百度却非常流畅(0.07 秒),这说明问题不在本地宽带,而在代理链路。
进一步检查端口监听,确认 xray 进程在跑:
1
netstat -ano | grep 10808
输出显示 xray.exe 正在监听 0.0.0.0:10808,进程本身没问题。
关键发现:DNS 污染 + 节点高丢包
当我用 --resolve 强制 Google 的正确 IP 再测试时,代理居然能打开 Google,只是很慢。这说明 socks5h 的远程 DNS 解析返回了被污染的 IP。
同时,ping 节点 IP 65.49.202.163 的结果触目惊心:
1
2
发送: 50, 收到: 36, 丢失: 14 (28% 丢包)
平均延迟: 185ms
28% 的丢包率,足以让任何基于 TCP 的代理体验崩溃。WebSocket + TLS 对丢包尤其敏感,每丢一个包就要重传,页面打开时间会被放大数倍。
为什么普通线路会这么差
要理解这个问题,需要先搞清楚中国电信的几类国际出口线路。
中国电信骨干网分层
| 网络 | AS 号 | 特点 | 适用场景 |
|---|---|---|---|
| 163 / ChinaNet | AS4134 | 最早的公众骨干网,容量大、便宜、高峰期极拥堵 | 普通访问 |
| CN2 GT | AS4809 接 AS4134 | 国际段走 CN2,进国内后走 163 | 中等质量 |
| CN2 GIA | AS4809 | 全程 CN2,质量最高、价格最贵、容量有限 | 视频会议、稳定代理 |
| CTGNet | AS23764 | 中国电信全球网络,实际等效于 CN2 GIA | 企业精品线路 |
搬瓦工文档里对这几条线路的描述很准确:普通 163 和 CN2 GT 在晚高峰都会拥堵,只有 CN2 GIA / CTGNet 能提供稳定的跨太平洋连接。
我当前的 20G KVM - PROMO 套餐走的就是普通线路,位于 USCA_2 机房,所以高峰期丢包严重。
flowchart LR
A[用户电脑] --> B[本地宽带]
B --> C[国际出口]
C --> D[美国机房]
D --> E[目标网站]
subgraph 普通线路["普通 163 / CN2 GT"]
C -->|高峰期拥堵| D
end
subgraph CN2_GIA["CN2 GIA / CTGNet"]
C -.->|全程高速| D2[美国 CN2 GIA 机房]
end
style 普通线路 fill:#ffe3e3
style CN2_GIA fill:#e8f5e9
解决方案:升级到 CN2 GIA ECOMMERCE
搬瓦工提供了 SPECIAL 20G KVM PROMO V5 - CN2 GIA ECOMMERCE 套餐,年费 $169.99。由于我当前套餐还有 159 天剩余,按未使用天数折算后补差价 $48.83,还能叠加一个 6.58% 的循环优惠码。
机房选择
CN2 GIA 套餐可选多个机房。搬瓦工官方推荐洛杉矶 USCA_9,原因有三:
- 容量最大:8×10Gbps CN2 GIA/CTGNet 链路
- 三网优化:电信 CN2 GIA + 移动 CMIN2 + 联通 CUP
- 对中国路由最好:延迟通常 130-150ms
另外还有 USCA_6(圣何塞)、CABC_6(温哥华)、USNY_8(纽约)等可选,但对大陆用户来说,洛杉矶 USCA_9 性价比最高。
升级与迁移过程
- 在搬瓦工后台提交升级到 CN2 GIA ECOMMERCE
- 进入 KiwiVM 的 Migrate to another datacenter
- 选择
USCA_9(DC9 AMD+NVMe, CT CN2GIA, CMIN2, CUP) - 等待迁移完成,获取新 IPv4 地址
- 在 Cloudflare 把域名 A 记录从旧 IP
65.49.202.163改为新 IP95.169.10.75 - 本地执行
ipconfig /flushdns - 重启 v2rayN,让 xray 重新解析域名
迁移完成后,新 IP 是 95.169.10.75,先 ping 一下:
1
2
发送: 50, 收到: 50, 丢失: 0 (0% 丢包)
平均延迟: 153ms
丢包直接归零,延迟也降了 30ms。
升级前后 benchmark 对比
| 指标 | 升级前(USCA_2 普通线路) | 升级后(USCA_9 CN2 GIA) |
|---|---|---|
| 节点 IP | 65.49.202.163 | 95.169.10.75 |
| Ping 丢包 | 28% | 0% |
| Ping 延迟 | 185ms | 153ms |
| 代理打开 Google | 3.78s | 0.84s |
| 代理打开 YouTube | 13.14s | 0.95s |
| 下载 10MB | 完全失败 | 3-6 Mbps |
本地直连百度的速度没有变化(始终在 0.04 秒左右),证明改善完全来自国际线路质量的提升。
总结
这次卡顿的根因不是 v2rayN 配置错误,也不是本地网络问题,而是搬瓦工普通线路在晚高峰的严重丢包。升级到 CN2 GIA ECOMMERCE 并迁移到 USCA_9 后,丢包从 28% 降到 0%,Google 和 YouTube 的打开速度分别提升了 4 倍和 13 倍。
对于个人翻墙用途,洛杉矶 CN2 GIA 20G 套餐已经足够。如果未来还想进一步优化,可以考虑把协议从 VMess + WebSocket + TLS 换成抗封锁能力更强的 VLESS + Vision + REALITY,但就当前体验而言,CN2 GIA 已经解决了核心痛点。
后续:当升级后的速度又慢下来
更新于 2026-06-28。
升级当晚的 benchmark 确实很漂亮,但过了几天我又感觉代理变卡了——YouTube 缓冲、网页转圈,完全没体会到 CN2 GIA 的优势。于是我做了一次更深入的排查,甚至临时搭了一套
VLESS + REALITY做对照实验。
排查思路
为了不凭感觉下结论,我从三个层面验证:
- 本地网络:确认不是家里宽带的问题;
- DNS 与路由:确认流量真的走到了 CN2 GIA / CMIN2;
- 协议对照:在同一台 VPS、同一域名上,同时跑
VMess + WebSocket + TLS和VLESS + REALITY,看速度差异。
flowchart TD
A[感觉代理卡] --> B{本地直连百度?}
B -->|正常| C[问题在国际链路]
B -->|也卡| D[本地网络问题]
C --> E[检查 DNS 解析到的 IP]
E --> F[确认 95.169.10.75]
F --> G[traceroute / mtr 看路由]
G --> H{是否经过 59.43 或 223.120?}
H -->|是| I[线路本身在走优质骨干]
H -->|否| J[可能没有真正走到 CN2/CMIN2]
I --> K[协议对照实验]
J --> L[检查 VPS 套餐与机房]
K --> M[判断是协议被 QoS 还是线路容量问题]
关键发现
1. DNS 与 IP 没问题
puppylpg.top 仍然解析到升级后的 95.169.10.75,没有走 Cloudflare 代理,也没有解析回旧 IP。
2. ICMP 被屏蔽,但 TCP 443 可达
1
2
ping 95.169.10.75 # 全丢包
tracert 95.169.10.75 # 第三跳后全超时
一开始我以为 IP 不通,后来用 Test-NetConnection 测 TCP 443 发现是通的。这说明:国际线路普遍屏蔽 ICMP,不能拿 ping 丢包判断代理质量。
3. 反向路由确认走了移动 CMIN2
从 VPS 侧做反向 traceroute 回我家公网 IP,路径很清晰:
1
2
3
4
5
6
7
1 10.26.0.1 BWG 内网
2 10.26.255.0 BWG 内网
3 45.78.0.74 BWG/QuadraNet 上联
4 223.120.200.57 CMIN2(中国移动国际精品网)
5 223.120.197.1 CMIN2
6 223.120.161.5 CMIN2
...221.183.x.x... 中国移动国内骨干
第 4 跳进入 223.120.x.x,说明 USCA_9 的 CMIN2 优化确实生效,不是虚假宣传。
4. VPS 本身不是瓶颈
- 负载
load average只有 0.08; - 到 GitHub 下载速度 ~400 Mbps;
- 到中国移动北京 DNS ping 稳定在 124 ms。
所以问题不在 VPS 的 CPU、网卡或带宽。
协议对照实验:VMess vs REALITY
我在同一台 VPS 上临时起了一个 Xray 容器,新增 VLESS + Vision + REALITY 监听 8443 端口(dest 用 www.cloudflare.com),然后本地分别用两种协议跑 50MB 下载测速:
| 协议 | Google 打开耗时 | 50MB 下载速度 |
|---|---|---|
| VMess + WS + TLS | 1.54s | ~8.4 Mbps |
| VLESS + REALITY | 1.25s | ~6.5 Mbps |
结果出乎意料:两者速度差不多,REALITY 并没有更快。
如果 VMess+WS+TLS 被移动 QoS 限速,REALITY 应该明显拉开差距。但实测没有,说明瓶颈不在协议层面。
那问题到底在哪?
结合所有证据,最可能的结论是:
瓶颈在“我家移动宽带 → CMIN2 入口”这一段,以及 CMIN2 本身的容量。
- 升级后的 VPS 是“对的”,线路也确实走了 CMIN2;
- 但 CMIN2 不是无限带宽,晚高峰该挤还是挤;
- 我家是移动 CGNAT(
100.96.0.1),共享公网 IP,出口 QoS 由省移动决定; - 同一时段 fast.com 能跑到 24 Mbps,但 Cloudflare 测速只有 6–8 Mbps,说明不同 CDN 路径差异也很大。
做了哪些清理
实验结束后,我已把临时创建的 Xray REALITY 容器、配置文件、本地 Docker 测试容器全部删除。VPS 上只保留了原来的 V2Ray 4.x / 5.x 两套服务,没有残留端口或配置。
现在的判断
- 换协议(VMess → REALITY)收益不大,不需要为了速度迁移;
- 如果想进一步验证,可以在晚高峰 21:00–23:00 和凌晨 01:00 各跑一次
fast.com,确认是不是只有晚高峰卡; - 如果全天都卡,那可能是本地移动 CGNAT 出口质量差,换电信/联通热点一试便知;
- 如果只是晚高峰卡,那就是 CMIN2 容量问题,搬瓦工这条线路在该时段满载,加钱上更高配套餐也未必能解决。
一句话总结:CN2 GIA-E / CMIN2 不是没用,只是它不是魔法,救不了你家宽带到国际出口的最后一公里拥堵。