指南
如何测试 VPN 终止开关
三种无需通知客户端即可断开隧道的方法、断开后必须停止的内容,以及测试大多数终止开关都会跳过的一种情况:机器启动到客户端连接之间的空白。基于 2026 年末的客户端撰写。
本文确定了什么
终止开关的承诺是:隧道失效时,任何连接都不会回退到普通网络。客户端的设置页面会说明是否作出这项承诺;下面的测试则说明它是否兑现,以及在发生哪些故障时兑现。在任何会离开家中网络的设备上运行一次,并在客户端更新后再次运行。终止开关的用途见终止开关页面。
按发生频率排列的三种断开情况。能经受第一种而不能经受第二种的终止开关很常见,而三种都能经受、却无法覆盖启动空白的终止开关则更常见。
开始前
- 在客户端中打开终止开关;如果它提供第二种更严格的模式 — 永久、始终开启、系统启动时开启 — 请记下你选择的是哪一种。下面会分别测试这两种模式。
- 启动一个持续传输并显示自身进度的任务:大型下载、长视频,或终端中的持续 ping。已经加载完成的页面不能证明任何事情,因为它已经没有内容需要获取。
- 在第二个窗口中打开地址页面,并在连接状态下记下出口地址。每次断开后都要重新加载该页面。
三种断开情况
1. 断开网络
关闭 Wi-Fi,或拔掉网线,等待几秒后再重新开启。隧道会因其路径中断而断开,问题在于:网络恢复后、隧道恢复前的几秒内,客户端会做什么。传输必须保持停止,直到客户端再次显示已连接;如果传输在客户端恢复连接前就恢复运行,说明它正在裸网络上运行。
2. 不通知客户端,结束隧道
直接结束客户端的后台进程:在 Windows 上使用 Task Manager 结束其服务,在 macOS 上使用 Activity Monitor 结束其进程,在 Android 的应用设置中执行 force stop,或在 Linux 的终端中结束其进程。客户端没有收到断开通知,因此只对正常断开操作作出响应的终止开关不会被触发。传输必须立即停止,并保持停止,直到你重新启动客户端。
3. 在客户端下方切换网络
在手机上保持移动数据开启,同时关闭 Wi-Fi,让设备从一个网络切换到另一个网络;在笔记本电脑上加入第二个 Wi-Fi 网络或手机热点。移动操作系统会在新网络上重建隧道,重建期间的窗口正是弱终止开关发生泄漏的地方。新网络一建立就重新加载地址页面:显示出口地址,或完全无法加载,算通过;显示你自己的地址,算失败。
启动空白
大多数客户端自带的终止开关只在客户端运行时生效。从机器启动到客户端连接之间没有任何保护;而在酒店网络上恢复运行的笔记本电脑,这段空白足以让所有随系统启动的应用通过开放连接向外通信。
- 将客户端设置为随系统启动,并在启动时连接。这通常是两个独立的开关,第二个默认关闭。
- 重启机器,并在客户端显示已连接前,重新加载你之前打开的地址页面。如果页面已经加载且显示你自己的地址,就是存在启动空白;如果出现错误,或页面一直等待客户端连接、随后显示出口地址,则说明启动空白已被封闭。
- 如果页面成功加载,找到终止开关的更严格模式 — 即标注为永久启用或系统启动时生效的模式 — 然后重复测试。在 Android 上,无论客户端如何,系统自身的设置都会覆盖这种情况,见下文。
Android 的系统自身终止开关
Android 自带一个终止开关,位于 VPN 的系统设置中,而不是客户端内:Always-on VPN,其下方还有 Block connections without VPN。它由操作系统强制执行,因此同时覆盖客户端被结束、网络切换和启动空白,这比大多数客户端自身的终止开关覆盖的情况更多。打开这两个选项,然后再次运行三种断开测试和重启测试。客户端的终止开关也可以保持开启;两者不会冲突,而当应用未运行时,真正发挥作用的是系统的终止开关。
通过意味着什么
这些检查证明了什么
+无论隧道以何种方式失效,连接都会变成断开的连接,而不是开放连接
+网络恢复到隧道恢复之间的几秒内不会传输任何内容
+对于在陌生网络上启动的设备,客户端连接前的空白已被封闭
这些检查无法证明什么
−它们无法说明隧道开启期间服务商会留存什么 — 这由留存页面回答
−终止开关保持生效,并不能修复泄漏的隧道:DNS 和 IPv6 会在如何检查 VPN 是否正常工作中单独检查
−通过只说明这个客户端版本的情况;更新可能改变或重置终止开关
结果不明确时
下载暂停了几秒,然后继续进行
先查看客户端,再判断发生了什么。如果客户端重新连接,下载也通过隧道恢复,那么终止开关正常生效,暂停只是重新连接造成的。如果客户端仍显示已断开,而下载正在进行,说明终止开关在超时后开放了网络,这就是终止开关未能保持生效。
在下载恢复期间检查地址即可确定结果:显示出口地址意味着隧道已恢复,显示你自己的地址则意味着隧道尚未恢复。
什么都没有停止,但客户端显示终止开关已开启
这说明终止开关的适用范围比你以为的更窄。许多客户端只在认为自己已连接时执行终止开关,因此,被要求关闭的隧道,或随进程一起消失的隧道,都不会触发它。寻找名为永久、始终开启或系统启动时开启之类的第二种模式,然后打开该模式重新测试。
如果不存在这种模式,那么在与实际相关的断开情况下,这个终止开关只是装饰;如果平台提供系统自身的终止开关,应依靠它。
所有内容都停止了,而且再也没有恢复
这正是终止开关在正常工作。终止开关保持生效时,连接会一直断开,直到隧道恢复;如果客户端无法重新连接,你必须让它正常断开或关闭终止开关,才能恢复联网。在笔记本电脑上,这就是你要求的行为;它之所以看起来像故障,只是因为它阻止的故障不会发出提示。
只有部分内容停止了
说明有内容被豁免了。分流规则、带有自身代理的浏览器扩展,或在隧道建立前就保持连接的应用,都可能在终止开关保持生效时继续传输;这些都是配置问题,而不是终止开关失效。检查客户端中的豁免项,然后检查控制隧道建立前连接的设置;有些客户端默认不会处理这类连接。
同样的步骤,不同的设备
其余平台
每个平台都有自己独立的指南,而不是同一页面下的一个标签。步骤从安装程序打开的那一刻起就开始分岔,一篇试图同时回答三个平台的文章,哪一个都答不好。