开着 VPN 时微信、支付宝很慢或者打不开
国内 App 在开着 VPN 时变慢、转圈、要求额外验证, 最常见的原因是它被送出国绕了一圈。先看线路模式, 再看 DNS 这一层, 最后是规则包没加载成功那种情况。
微信消息发得出去但图片半天不出来, 支付宝首页能开、点进账单就转圈, 或者忽然要你收一条短信验证码。这些现象看着像是 App 出了问题, 但我们收到的这类反馈里, 最常见的原因是同一个: 这些本来在你身边的服务, 被送出国绕了一圈。
这张图说的是最常见的那一种。中间那个方块是你要访问的国内服务。上排是默认的智能分流, 手机到它两点一线。下排是全局代理, 同一个目的地要先越过它、绕到境外的节点, 再折回来。多出来的那段距离是实打实的, 没有任何设置能把它变短。下面还有两种别的原因, 排在后面是因为它们没这么常见。
一, 先花十秒确认是不是这一类
把出问题的那个 App 停在能复现的那一页, 然后做一件事: 断开 VPN, 重新试一次。
- 断开就正常: 是这一类, 往下看第二步。
- 断开还是不正常: 多半和 VPN 无关, 更可能是这个 App 自己的服务或者你的网络本身出了问题。再换一个别的 App 试试, 两个都不正常就基本能确定。
注意别用"重启手机"来验证, 重启会同时改变一堆状态, 验完你也不知道是哪一件起了作用。
二, 看线路模式
打开 App, 线路模式这一栏有两个选项:
- 智能分流(默认): 国内的网站和 App 直连, 境外的才走隧道。装好之后没动过设置的话, 你就是这个模式。
- 全局代理: 上网流量都走隧道, 包括国内的。它存在的意义是让你的 IP 处处显示在境外, 代价是面向国内部署的服务基本都要绕远路。同一个局域网里的设备是例外, 见下面那条提示。
如果你为了某件事临时开过全局代理, 事后很容易忘记关。切回智能分流, 然后重新连接一次 —— 模式是在建立连接时决定的, 不重连不生效, App 里也会有一句提示告诉你这件事。
三, 为什么会是"首页能开, 点进去就卡"
"首页正常、点进去卡"可以有好几种原因: 详情页调的是另一套接口、要新建连接、素材在别的服务器上。这里说其中一种, 因为它最容易被忽略, 而且和 VPN 直接相关 —— 它出在 DNS 那一层, 不在连接本身。
手机要访问一个网站, 得先把域名换成 IP, 这一步叫解析。国内的大服务几乎都用 CDN, 而 CDN 需要判断该把你调度到哪个节点。它看到的通常不是你本人的地址, 而是替你发起查询的那台递归解析器的地址, 有时候还能通过一个叫 EDNS Client Subnet 的扩展拿到你所在的网段。判断依据是网络拓扑与时延, 不完全等于地理上最近。
所以解析请求从哪里发出去, 会影响你拿到哪个节点。我们实测过五个国内媒体类域名, 用境内解析器和境外解析器各查一遍, 五个的结果 IP 无一相同。解析本身的耗时差距也很直观: 同一批查询, 国内解析器十几到三十几毫秒, 境外解析器两三百毫秒。这个代价不会每次都付, 域名有缓存, 但每遇到一个还没缓存过的域名就要等一次。
这也是我们见得最多的一种解释: 首页那几个域名早就在缓存里了, 而点进去要加载的图片、视频、评论往往在别的域名上, 那些要现解析。
我们的实现是这样分的: 智能分流下, 被判定为直连的域名, 解析请求送到国内的解析器。全局代理下, 解析跟着流量一起进隧道, 上面这一整套就反过来了。
四, 我选的是智能分流, 表现却像全局
有一种情况需要你知道, 因为你在界面上看不出来。
智能分流靠一份规则包判断哪些目的地该直连。这份规则包偶尔会加载不成功 —— 下发出问题、文件被截断、签名对不上, 都有可能。遇到这种情况, 客户端不会把你的网断掉, 而是退回到全代理继续工作。结果就是: 你选的是智能分流, 实际跑的是全局。
我们没有把这个状态做成界面上的提示, 所以你自己判断不了。能做的是: 如果你确认自己在智能分流, 国内 App 却持续表现得像开了全局, 把这个现象告诉客服。降级这件事我们这边有记录, 一查就知道, 比你反复试设置有用得多。
先自己能做的一件事: 断开再重连一次。规则包是每次建立连接时加载的, 重连就重新加载一次, 临时性的下发问题会自己好。
五, 关于额外验证
部分国内服务在检测到访问来自境外 IP 时, 会追加一次身份验证, 比如发一条短信、要你扫一次脸。规则是它们定的, 我们既改不了也没打算绕过。但触发它的那个境外出口 IP 确实来自隧道, 所以这件事和你开着 VPN 有关, 只是决定权不在我们这边。
该做的不是去找一条"看起来更像国内"的线路, 而是让这些服务根本不经过隧道, 智能分流做的就是这件事。切回去之后, 这类服务看到的就是你本来的网络出口。要说明的是, 风控看的不只是 IP, 还有设备、账号、常用地点这些, 所以不能保证从此不再要求验证, 只能说因为出口 IP 触发的那一类通常就不再出现了。
自测清单
- 断开 VPN 再试一次, 确认问题确实和 VPN 有关。
- 线路模式切到智能分流。
- 重新连接一次(不重连不生效)。
- 再打开出问题的那个 App, 这次直接点到刚才卡住的那一页。
这四步之后还是不对, 把三件事写给客服: 哪个 App 的哪一页、线路模式是哪个、断开 VPN 之后有没有区别。有这三条通常一轮就能定位, 没有的话我们只能反过来问你同样的三个问题。
常见问题
为什么开了 VPN 之后国内 App 反而变慢?
支付宝要我做额外验证, 是 VPN 弄的吗?
我选的就是智能分流, 为什么还是不对?
相关文章
本文由 Nono VPN 团队整理,借助 AI 辅助写作,发布前经人工核对。