如何阻止连接VPN客户端路由器的Windows PC在VPN断开时使用非VPN流量?
如何阻止连接VPN客户端路由器的Windows PC在VPN断开时使用非VPN流量?
嘿,这个需求我碰到过不少,本质就是要实现「VPN断了就彻底断网」,不让Windows自动 fallback 到普通互联网。我给你分路由器端和Windows本地两种方案,结合你的TP-link AX20来具体说:
路由器端配置(推荐,一劳永逸)
因为所有设备的流量都走路由器,在这儿设置是最省心的,不用单独给每台设备折腾。针对你的TP-link Archer AX20,你可以这么操作:
- 先登录路由器管理后台(默认地址一般是
192.168.0.1或192.168.1.1,看你当初的设置) - 找到「VPN客户端」的设置页面,找一找有没有类似**「VPN断开时禁止互联网访问」**或者「仅允许VPN流量」的开关——很多TP-link型号的VPN客户端功能里自带这个「断网保护」选项,打开它就搞定了,这是最简单的方法。
- 如果没找到现成的开关,那就手动配置防火墙规则:
- 核心思路是:拒绝LAN口设备的所有出站流量,除非流量是通过VPN隧道传输的。你可以在路由器的「防火墙」→「规则设置」里新建一条规则,把非VPN的出站流量全部拦截。不过这里需要你对路由规则有一点基础,要是摸不清的话,优先找前面提到的自带开关,实在不行再查路由器的官方说明书。
Windows系统端配置(单PC生效)
要是路由器端没法设置,或者你只想针对这台Windows PC做限制,那可以在系统本地操作:
方法1:修改路由表
- 当路由器的VPN正常连接时,以管理员身份打开命令提示符,输入
route print,查看当前的默认路由(0.0.0.0/0对应的网关),这个一般是路由器的LAN地址。 - 你可以写个简单的脚本,定期检测VPN是否正常(比如ping VPN服务器的固定IP,ping不通就判定为断开),一旦检测到VPN断开,就删除Windows的默认路由,这样系统就没有可用的互联网出口了。等VPN恢复后,再重新添加默认路由。
- 注意:脚本需要用任务计划定时执行,或者结合第三方工具触发,操作起来有点繁琐,适合有一定技术基础的用户。
方法2:Windows防火墙规则
- 打开「Windows Defender防火墙」→「高级设置」
- 先创建一条出站阻止规则:选择「所有程序」,阻止所有出站流量;然后再创建一条出站允许规则,允许流量访问VPN服务器的IP地址,以及路由器的管理地址(比如
192.168.0.1,不然你连路由器后台都进不去)。 - 这样一来,当VPN正常连接时,Windows能通过路由器走VPN流量;当VPN断开后,因为所有非允许地址的出站流量都被拦截,就没法用普通互联网了。
总结
优先推荐路由器端的配置,你的TP-link AX20大概率自带VPN断网保护功能,找一下就能启用,而且所有连路由器的设备都能受益;如果路由器没有这个功能,再考虑Windows本地的设置,不过后者只对这一台PC生效。
备注:内容来源于stack exchange,提问作者Roman M




