客户端在下载中途死掉,托盘图标随之消失。传输仍然走家庭连接继续。正是这个顺序说明了断网开关为何存在,而 Windows 不用第二个产品也能接近它。

值得了解的方法有两个。它们在不同环节失效,而且都不是完整答案。

方法一:只在一个配置文件里放行程序

Windows 防火墙把规则限定在 Domain、Private 和 Public 三个配置文件上。诀窍是给隧道适配器一个类别,给物理适配器另一个类别。然后写一条出站规则,在隧道配置文件上放行受保护的程序,在其他所有位置一律拦截。防火墙读的是类别,不是适配器名称。

先把 VPN 连接设为 Private,把物理网络设为 Public。再为该程序添加一条针对不想要的那些配置文件的阻止规则。之后用 Get-NetConnectionProfile 确认这次归属,因为规则跟随的正是这个归属。

Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory

New-NetFirewallRule -DisplayName 'Block browser off VPN' -Direction Outbound `
  -Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Block -Profile Public

New-NetFirewallRule -DisplayName 'Allow browser on VPN' -Direction Outbound `
  -Program 'C:\Program Files\Mozilla Firefox\firefox.exe' -Action Allow -Profile Private

弱点在结构上。配置文件规则跟随类别,所以当 Windows 重新归类酒店网络时,拦截可能失效。此时规则列表里不会出现任何变化。

方法二:删除物理默认路由

路由办法更粗暴,也远远更容易审计。记下物理网关,让 VPN 以更低的度量装入自己的默认路由,然后删除物理默认路由。此后没有别的东西能承载流量。

route print -4
route delete 0.0.0.0 mask 0.0.0.0 192.168.50.1
route print -4 | findstr /c:"0.0.0.0"

客户端一死,VPN 路由就随它的适配器一起消失。机器会掉线而不是泄漏,这正是断网开关该产生的结果。

有两个细节决定它能不能撑过一周。链路一抖动,DHCP 就把网关放回来。静态寻址的物理适配器能避开这个意外。VPN 服务器自身的地址也必须保持可达。没有这条主机路由,客户端在触发拦截的那次掉线之后永远无法重连。

方法三:不留网关,只留一条持久主机路由

第三个选项先从适配器设置里清掉网关。随后一条指向 VPN 端点的持久路由取而代之。这样在隧道起来之前,机器只能和服务器说话。

route -p add 198.51.100.44 mask 255.255.255.255 192.168.50.1 metric 1
route print -4 | findstr 198.51.100.44

恢复网关就恢复普通互联网,这让它成了一个干净的开关。它不依赖监视接口事件的脚本。它也不在乎网络如何被归类。

代价是隧道停摆期间的彻底隔离。更新会停,促成这次练习的那次下载也会停。对工作笔记本来说这往往是对的,对个人机器则是有意为之的决定。

为什么地球图标什么也证明不了

Windows 通过对 Microsoft 端点的探测来报告可达性。那个探测对你的隧道一无所知。已连接的隧道可能待在一个报告无互联网的地球后面,而死掉的隧道也可能显示连接良好。

杀掉客户端进程来测试,然后尝试用数字地址访问一个公网地址。名称查询可能从缓存得到回答,所以图标和 DNS 回答都不是证据。

真实掉线之后该记录什么

把测试当成一串步骤,而不是一次检查。杀掉进程而不是断开连接,然后在两套地址族上各试一个数字地址。之后恢复客户端,确认它仍能通过你保留的路由到达自己的服务器。

taskkill /IM openvpn-gui.exe /F
ping -4 198.51.100.44
ping -6 2606:4700:4700::1111
route print -4 | findstr /c:"0.0.0.0"

在休眠后、换 Wi-Fi 后、从有线切到无线后重复这串步骤。配置文件方法和 DHCP 行为正是在这些切换处双双失效。在办公桌上成立的规则,在酒店里未必成立。

把回退步骤写在每条规则和路由旁边。Microsoft 在Windows 防火墙规则参考里记录了出站规则的创建方法,那比只放截图的教程更可靠。

相关文章