Kill Switch 是什么?断网保护的两种实现与验证方法

Yalgorup 编辑部 · 更新于 2026年8月1日

一句话回答Kill Switch(断网保护)在 VPN 隧道意外中断时阻断设备的出站流量,防止流量退回原线路暴露真实 IP。实现分两种:改写系统防火墙规则的系统级方案,和监控进程状态的应用级方案,前者可靠得多。

核心要点

  • 它防的是「隧道断了但你没发现」这几秒钟 —— 而这几秒足够后台应用暴露真实 IP。
  • 系统级实现直接在防火墙里只放行隧道接口,进程被强杀也依然有效。
  • 应用级实现依赖客户端自身运行,客户端崩溃时保护往往一起失效。
  • 验证方法只有一个:强制结束客户端进程,再看网络是否还通。

它解决的是哪几秒钟

VPN 连接不会永远稳定。服务器重启、Wi-Fi 切换、系统休眠唤醒、线路抖动 —— 隧道随时可能断开几秒。

在这几秒里,操作系统会做一件很自然的事:把流量退回原来的默认路由。于是正在同步的网盘、正在下载的客户端、正在轮询的应用,全部用真实 IP 继续跑,而屏幕上可能什么提示都没有。

Kill Switch 的作用就是:宁可断网,也不放行。

两种实现方式

系统级(防火墙规则)

客户端在连接时向系统防火墙写入规则:只允许流量从隧道接口出去,其他接口一律拒绝。Linux 上用 nftables/iptables,Windows 上用 WFP 过滤平台,macOS 用 pf。

优点是它不依赖客户端继续运行。哪怕进程被强制结束、甚至崩溃,规则依然留在系统里,网络仍然是封死的。

应用级(进程监控)

客户端监控隧道状态,一旦发现断开,就关闭用户指定的应用程序或暂停其网络访问。

这种实现有个结构性弱点:保护逻辑本身跑在客户端里。客户端崩溃时,监控随之消失,流量照常放行。

常见的失效场景

场景为什么会漏
客户端进程被强制结束应用级实现失去执行主体
系统从休眠唤醒网络恢复早于 VPN 重连,中间有窗口
IPv6 流量防火墙规则只写了 IPv4
开机到连上 VPN 之间若未启用「开机即阻断」,这段时间是裸的
局域网白名单过宽放行范围写得太大,等于开了口子

第二和第四条尤其值得注意 —— 它们发生在你还没开始用电脑的时候。

怎么验证它真的有效

不要相信设置页面上的开关状态,动手测一次:

  1. 连上 VPN,确认出口 IP 已改变。
  2. 打开一个持续产生流量的东西,例如在线视频。
  3. 在任务管理器里直接结束 VPN 客户端进程(不要点「断开」按钮)。
  4. 观察视频是否立刻中断、浏览器是否无法访问。

如果网络自动恢复了直连,说明这个 Kill Switch 只覆盖了正常断开的路径 —— 在最需要它的崩溃场景里并不生效。

再补一项:重启电脑,在客户端自动连接完成之前尝试打开网页。若能打开,说明开机阶段没有保护。

移动端的情况

Android 提供系统级支持:在「VPN」设置里开启「始终开启的 VPN」和「屏蔽没有 VPN 的连接」,由系统而非应用来保证,可靠性高。

iOS 的 Always-On VPN 主要面向受管理的设备,需要配置描述文件,个人用户通常只能依赖客户端自身的实现。

该不该一直开着

如果使用 VPN 的目的包含隐藏真实 IP,就应该开着 —— 否则那几秒的窗口足以让一次暴露发生,而且你不会知道。

如果只是偶尔换个出口访问某个服务,开着反而会在断线时打断所有网络活动。按用途决定,而不是默认全开。

常见问题

开着 Kill Switch 会影响正常上网吗?+

会。VPN 断开时整台设备(或指定应用)会失去网络连接,这正是它的设计意图。部分客户端提供白名单,允许局域网访问。

应用级和系统级怎么分辨?+

看设置里是「阻止所有流量」还是「关闭指定应用」。前者通常是防火墙级,后者只是在检测到断开后杀掉列表里的程序。

手机上有 Kill Switch 吗?+

有。Android 的系统设置里有「始终开启 VPN」和「阻止没有 VPN 的连接」;iOS 上通过 Always-On VPN 配置描述文件实现,个人用户可用的选项较少。

为什么开了 Kill Switch 还是泄露了?+

常见原因是它只覆盖 IPv4,或者只在正常断开时触发。IPv6 与进程崩溃是两个典型漏网场景。

参考资料

延伸阅读