如何在不随意乱跳的情况下选择备用 VPN 节点
同时更改国家、协议和客户端,可能找到一个可用的连接,却无法解释失败的原因。不妨改为只对比一个备选方案。
三处改动同时进行,三次猜测,只有一个能用的连接:这就是大多数人所谓的 VPN 排障,而它什么也解释不了。连接成功了,下一次失败又重新从零开始。一次受控的替换只多花一分钟,却能给出可以复现的结果。下面要谈的是这种取舍,而不是今晚哪个公共节点最快。
乱跳与一次受控替换
乱跳会同时改变国家、协议和客户端,因此成功无法归因于其中任何一项。它看起来高效,是因为第一次尝试常常成功:列表足够长时,总会有某个节点连上。但它从不产生事实,所以同样的抱怨一周后又会出现,只带着一套新的猜测,也记不得改过什么。
只有一台笔记本、没有备用设备时,一个紧急电话是乱跳的正当理由;你买的是时间,不是知识,这笔交易无可厚非。同一接入网络上重复出现的失败则相反,因为节点列表不变,失败却在变。当重复足够可靠时,值得检查的变量是你所在的链路,而不是目录里的下一个国家。
动手改列表之前先给失败分类
每一次失败的尝试都会停在四个阶段之一,而每个阶段的责任方不同。先给失败分类,就能把含糊的「不管用」变成目标,而且比再加载一个配置更省时间。表格是分类,不是对原因的猜测。
| Stage | What you actually observe | Who usually owns it |
|---|---|---|
| resolve | the hostname never becomes an address | the profile's hostname or your local resolver |
| negotiate | the socket opens, no tunnel parameters appear | protocol pairing and the server's configuration |
| authenticate | parameters agree, credentials are refused | certificate, account or server-side policy |
| carry | tunnel reports up, application traffic stalls | routes, MTU, firewall or the server's egress |
把阶段连同节点标识、协议、接入网络、所用解析器和本地时间一起记录下来。下一次尝试正是与这份记录比较,也只有它能让两次尝试真正可比。没有它,相同的失败看起来像运气不好,不同的失败看起来像进步。
在相同条件下对比一个候选
按节点实际宣传的协议和真正需要的国家挑选候选,然后按发布的样子阅读配置。靠改端口名来转换文件,做出来的东西看起来像配置,却会在没人预料到的阶段失败。
设备、接入网络和任务保持不变,只更换节点。如果替换后能连上并传输流量,问题就在原节点或其配置上,你可以这样下结论。如果它在同一阶段失败,你得到的比一个能用的连接更有用,因为故障在对比中属于你这一侧。热度评分适合给候选排序,它既不是隐私保证,也不是下个月的预测。
公共节点在身份方面无法承诺什么
阅读配置,确认节点由谁运营、使用什么协议、证书何时到期,并把证书与该运营方对比,而不是与目录列表对比。不一致意味着条目已经易主,或者从来就不准确,正确的做法是丢弃它,而不是绕过警告继续点击。
公共节点的归属和配置会在没有通知的情况下改变,所以上个月还能用的列表,今天描述的可能是另一台机器。在配置与证书一致之前,把每个条目都当作未经验证。应急备用不是跳过验证的理由,更不是提交属于另一项服务的凭据的理由。
检查不止一盏绿色状态灯
取回你真正需要的资源,确认域名能通过隧道解析,并检查节点承载哪些地址族。只转发 IPv4 却悄悄丢弃 IPv6 的隧道是部分成功,日后会以找不到明显触发条件的间歇性故障再次出现。
对交互式工作来说,响应速度和吞吐量同样重要,所以要测任务,而不是测下载。把可用的配置存成你认得的名字,删掉没成功的实验条目,并把结论限定在测试过的条件内,而不是凭一个晚上给整个国家排名。VPN Gate 列表是合理的候选来源,前提是把每个条目当作候选,而不是推荐。