安全设置

配置 LetsVPN Kill Switch 的完整步骤

作者:LetsVPN官方团队
#Kill Switch#断网保护#配置#验证#隐私
LetsVPN Kill Switch 配置教程, LetsVPN 断网保护验证步骤, 如何开启 Kill Switch, VPN 掉线自动断网, Kill Switch 不起作用解决办法, LetsVPN 安全设置, 防止 IP 泄露方法, VPN 意外断开保护措施

功能定位:Kill Switch 解决什么问题

Kill Switch(断网保护)是 VPN 的「最后保险丝」。当 LetS-Relay 协议握手超时、节点被主动探测重置或本地网络闪断时,系统默认会回退到本地网关,此时真实 IP 瞬间暴露。Kill Switch 通过在内核层插入一条「黑洞路由」或调用系统防火墙,强制丢弃所有非 VPN 接口的流量,直到隧道重新建立。

在 2025-11 发布的 LetsVPN 10.12 版中,该功能覆盖 Windows 10 22H2+、macOS 13+、Android 10+、iOS 15+;Linux 仍需要手动导入 WireGuard conf 并用 wg-quickPreUp/PostDown 脚本实现,官方尚未提供 GUI 开关。

变更脉络:从「全局硬断」到「分级节流」

3 年前 LetsVPN 仅提供「全局硬断」模式,隧道掉线即整机上不了网,导致 Zoom 会议直接掉线。10.10 版引入「细粒度放行名单」,允许用户把打印机、NAS 等内网地址排除在黑洞之外;10.12 版又新增「自适应阈值」——当 AI-QoE 引擎检测到连续 3 次 200 ms 内重连失败才触发断网,减少 30% 的误杀。

最短可达路径:分平台图文速览

Windows 10/11

  1. 主界面右上角「⚙️ 设置」→「安全」→「Kill Switch」。
  2. 打开「启用 Kill Switch」总开关;此时下方出现「例外清单」按钮。
  3. 若需让局域网打印机 192.168.1.0/24 继续通信,点「例外清单」→「添加网段」→输入地址与掩码 24→保存。
  4. 「触发阈值」默认 3 次/200 ms,如无特殊需求保持默认即可。
  5. 点击「应用」后立即生效,无需重启。

回退:关闭总开关或把阈值滑到最左「0 次」即失效;若因配置错误导致整机断网,可长按客户端标题栏「修复网络」一键清空黑洞路由。

macOS 13+

  1. 顶部菜单栏 LetsVPN 图标→「Preferences…」→「Security」。
  2. 勾选「Kill Switch」;系统会弹框要求输入管理员密码以安装 System Extension,该扩展负责 packet filter。
  3. 若公司内网有 10.0.0.0/8 需放行,点「Allowed Networks」→「+」→输入 10.0.0.0/8。
  4. macOS 版暂不支持自定义阈值,固定为 2 次/300 ms。

回退:取消勾选后立即卸载扩展,若扩展残留导致无法联网,可在终端执行 sudo pfctl -d 临时关闭 packet filter。

Android 10-14

  1. 右下「我的」→「安全中心」→「Kill Switch」。
  2. 开启「系统级 Kill Switch」,此时 Android 会弹出 VPN 权限确认框(因 LetsVPN 采用 VpnService API 实现黑洞)。
  3. 如需对 Work Profile 里的企业微信放行,进入「分应用代理」→「国内应用」→勾选企业微信→保存。
  4. Android 版额外提供「蜂窝网络单独触发」选项,默认关闭;若你常在地铁里信号跳变,可打开以减少掉线误判。

回退:关闭开关即恢复;若出现「无法连接 VPN 服务器又无法上网」的死锁,长按应用图标→「应用信息」→「存储」→「清除缓存」即可重置路由。

iOS 15-17

  1. 首页「Settings」→「Kill Switch」;iOS 实现依赖 NEOnDemandRule,必须同时开启「按需连接」。
  2. 系统会提示「安装 VPN 配置描述文件」,确认后自动跳转「设置」→「已下载描述文件」→「安装」。
  3. iOS 版不支持自定义例外网段,只能全断;若需家庭 NAS,经验性观察:可把 NAS 域名加入「Split DNS」→「直连域名」列表,隧道掉线时 DNS 仍解析到内网地址。

回退:删除描述文件即可;若安装后无法上网,可在「设置」→「通用」→「VPN 与设备管理」→「VPN」→关闭「按需连接」临时恢复。

阈值与性能:如何量化「更严」还是「更松」

LetsVPN 允许用户自定义「连续握手失败次数」与「检测窗口」。经验性结论:在 100 Mbps 家宽、Ping 基线 8 ms 的场景下,把次数从 3 次降到 1 次,可将 IP 暴露窗口从 600 ms 缩短到 200 ms,但误杀率(正常网页忽然打不开)由 0.4% 升到 2.1%。测量方法:用 curl -w "%{time_total}\n" 每 2 秒请求一次 cloudflare.com,持续 1 小时,统计出现「Timeout」的比例。

例外与副作用:哪些程序不该被黑洞

警告

把网银 U 盾驱动、公司 VPN 或 MDM 管理流量也一并阻断,可能导致无法远程修复机器,请提前把对应网段或进程加入例外。

典型场景:部分公司用 Zscaler 做 Zero-Trust,若 LetsVPN Kill Switch 把 80/443 以外端口全部丢弃,Zscaler 的 DTLS 保活包会被拦截,结果公司内网也掉线。解决:在「例外清单」里加入 *.zscaler.net 或 100.64.0.0/10 网段。

验证与观测:4 步确认是否生效

  1. 连接任意香港节点,浏览器访问 https://ip.skk.moe 记录出口 IP。
  2. 手动断开 LetsVPN(Windows 可在「网络适配器」里禁用 TUN;Android 可强杀后台),立即刷新 IP 检测页。
  3. 若 Kill Switch 生效,页面应显示「无法连接网络」或「Timeout」;如仍出现新 IP,说明配置未生效。
  4. 恢复 VPN,观察 IP 检测页是否自动刷新回香港节点,确认隧道自愈。

可复现指标:连续测试 10 次,IP 暴露次数 = 0 视为通过。

故障排查:掉线后仍能用网的 3 种可能

  • 安装了其他 VPN 客户端:如 Clash for Windows 的 TUN 模式优先级更高,系统把流量导入 Clash,LetsVPN 的黑洞路由失效。处置:关闭 Clash TUN 或调高 LetsVPN 路由度量。
  • IPv6 泄漏:Kill Switch 默认只下发 IPv4 黑洞,若运营商给原生 IPv6 且目标站点支持 IPv6,会走 v6 绕过。处置:在「高级」里勾选「同时阻断 IPv6」。
  • 代理插件绕过:浏览器装了 SwitchyOmega 并设置直连规则。处置:测试时用无痕窗口或 curl --proxy "" 排除插件干扰。

适用/不适用场景清单

场景 建议 理由
公共 Wi-Fi 下登录海外交易所 开启 IP 暴露可能导致账号风控冻结
家里 4K Apple TV 看 Netflix 关闭 隧道闪断会让全家断网,体验差;可在路由器级做分流
公司 Zero-Trust 远程办公 例外公司网段 避免 Kill Switch 把公司 VPN 也拉黑,导致无法远程修复
Web3 节点静态 IP 需求 开启 + 5 跳级联 防止链上行为被关联到家庭 IP

最佳实践 6 条速查表

  1. 先在公司或家里低风险网络完成验证,再带到机场、酒店使用。
  2. 阈值保持「3 次/200 ms」默认,除非你用 5G 移动网络且常进出电梯。
  3. 每次更新客户端后复查例外清单,防止版本升级被清空。
  4. 对路由器固件用户:LetS-Relay 插件已集成 Kill Switch,优先在路由器端开启,可覆盖全屋终端。
  5. 若需同时运行公司 VPN,用「分应用代理」把公司 VPN 客户端设为「直连」,避免双重隧道冲突。
  6. 每月手动模拟掉线一次,确保功能仍生效,而非「UI 显示开启实际失效」。

版本差异与迁移建议

10.11 及更早版本使用 WFP(Windows Filtering Platform)实现,存在休眠唤醒后规则失效的 Bug;10.12 改用 NDIS 6.8 过滤器驱动,休眠恢复后 2 秒内自动重载。经验性观察:老用户升级后若发现网速下降 5%,可在「高级」→「驱动模式」切回 WFP 临时解决,但需接受休眠失效风险。

macOS 用户注意:10.12 仅支持 Apple 芯片原生运行,Intel 机型最高只能装 10.11,Kill Switch 功能停留在 2 跳级联、无阈值可调阶段。若你用的是 2019 款 MacBook Pro,建议留在 10.11 并手动用 pfctl 脚本补齐黑洞,避免强升后无法启动。

未来趋势:30 ms 以内「无感」能否再缩短

LetsVPN 官方路线图提到 2026 Q1 将把 AI-QoE 引擎的节点漂移收敛时间从 30 ms 降到 15 ms,Kill Switch 的检测窗口同步缩短到 100 ms。这意味着阈值可降到 1 次而误杀率不变,届时「零泄漏」与「零卡顿」有望同时实现。但经验性观察:家用路由器 CPU 性能可能成为新瓶颈,建议关注后续固件是否支持硬件 offloading。

案例研究:从 5 人工作室到 500 人企业

场景 A:5 人 Web3 初创,全员远程

需求:链上交互必须隐藏家庭 IP,且不能因隧道闪断导致交易中断。
做法:全员 MacBook Apple 芯片,统一推送 10.12 客户端,Kill Switch 阈值 1 次/200 ms;路由器刷 OpenWrt 装 LetS-Relay 插件,全屋默认黑洞,NAS 与打印机走 192.168.50.0/24 例外。
结果:连续 3 个月零 IP 泄漏记录,误杀率 1.8%,团队接受度良好。
复盘:阈值 1 次在地铁、电梯场景下会掉线,后期把移动办公同事阈值调回 3 次,误杀率降至 0.9%。

场景 B:500 人游戏公司,办公室 + 零信任

需求:美术组需访问日韩原画站点,但公司已有 Zscaler 零信任。
做法:仅给美术 VLAN 推送 LetsVPN,Kill Switch 例外 100.64.0.0/10(Zscaler)与 10.0.0.0/8(域控);其他部门不装客户端。
结果:出口 IP 切换无感知,Zscaler 保活零丢包;审计部通过 Splunk 看到零信任日志无异常。
复盘:初期忘记放行 WSUS 补丁服务器,导致 30 台机器打不上补丁;补加 172.16.0.0/12 后恢复。

监控与回滚:Runbook 速查

异常信号

1. 内网打印机突然全体脱机;2. WSUS/Intune 报告客户端 24 小时未上线;3. Zoom 会议大面积掉线且无法重连。

定位步骤

  1. 客户端标题栏→「诊断」→「导出日志」,查看是否有「blackhole route added」后紧跟「TUN down」。
  2. Windows 执行 route print,若 0.0.0.0 网关指向 192.0.2.1(黑洞 dummy IP)且 VPN 未连接,即确认规则残留。
  3. Android 抓 logcat 关键字「VpnService: Established by com.letsvpn」,若看到「allowBypass=true」说明被系统级代理绕过。

回退指令/路径

  • Windows:长按客户端「修复网络」或管理员 PowerShell 执行 route delete 0.0.0.0 192.0.2.1
  • macOS:sudo pfctl -d && sudo rm /etc/pf.letsvpn.conf
  • 路由器 OpenWrt:uci delete letsvpn.kill_switch && uci commit && /etc/init.d/letsvpn restart

演练清单

每月低峰期执行:1. 手动禁用 TUN 接口;2. 观察 5 分钟内 DNS、ICMP、HTTPS 是否 100% 超时;3. 恢复 VPN,确认业务自动复活;4. 将结果登记到 Confluence 页面,误杀率>2% 即调松阈值。

FAQ:高频疑问 10 连

  1. Q:iOS 例外清单灰色无法点击?
    结论:系统限制,全断是 NEOnDemandRule 的唯一模式。
    背景:Apple 未向第三方 VPN 开放按需规则例外 API。

  2. Q:休眠唤醒后为何还能上网?
    结论:10.11 及更早版本 WFP 规则未重载。
    证据:日志出现「WFP callout ID not found」。

  3. Q:阈值设为 0 次代表立即断?
    结论:是,但误杀率可达 8% 以上。
    经验:仅建议高频交易脚本临时使用。

  4. Q:Android 企业微信消息延迟?
    结论:Work Profile 与主 Profile 路由隔离,需把企业微信同时加入「分应用代理」国内列表。
    验证:adb shell iptables -L -t mangle | grep uid。

  5. Q:Linux 官方何时出 GUI?
    结论:路线图未承诺日期;目前仍推荐 wg-quick + PreUp = ip rule add blackhole

  6. Q:能只阻断 UDP 保留 TCP?
    结论:不支持,黑洞为全协议。
    替代:用自建 WireGuard + iptables 细化。

  7. Q:为何打印机能 ping 通却无法发现?
    结论:mDNS 广播 224.0.0.251 也被丢弃。
    解决:在例外清单额外加入 224.0.0.0/24。

  8. Q:公司强制 PAC 文件会冲突?
    结论:PAC 只在应用层,Kill Switch 在内核层,优先级更高,无冲突。

  9. Q:机场 Wi-Fi 强制 Portal 认证怎么办?
    结论:临时关闭 Kill Switch,完成 Portal 后再开启。
    技巧:部分 Portal 使用 192.168.100.0/24,可提前加入例外。

  10. Q:如何批量给 500 台机器推配置?
    结论:Windows 可用 Intune 推送注册表 HKLM\SOFTWARE\LetsVPN\KillSwitch\ExcludeNetworks;macOS 用 JAMF Pro 上传 plist 模板。

术语表

黑洞路由(blackhole route)内核层丢弃匹配条目的流量;首次出现:功能定位段落。 LetS-RelayLetsVPN 自研传输协议;首次出现:功能定位段落。 AI-QoE客户端内置的链路质量评分引擎;首次出现:变更脉络段落。 WFPWindows Filtering Platform;首次出现:版本差异段落。 NDISWindows Network Driver Interface Specification;首次出现:版本差异段落。 pfctlmacOS 的 packet filter 控制工具;首次出现:macOS 回退段落。 VpnService APIAndroid 官方 VPN 编程接口;首次出现:Android 段落。 NEOnDemandRuleiOS NetworkExtension 的按需连接规则;首次出现:iOS 段落。 Split DNS隧道内外使用不同 DNS 解析策略;首次出现:iOS 段落。 TUN 模式虚拟网卡层代理;首次出现:故障排查段落。 IPv6 泄漏流量通过 IPv6 绕过 VPN;首次出现:故障排查段落。 WSUSWindows Server Update Services;首次出现:FAQ 段落。 Zscaler云零信任访问平台;首次出现:例外与副作用段落。 DTLSUDP 上的 TLS,用于实时保活;首次出现:例外与副作用段落。 mDNS组播 DNS,用于局域网设备发现;首次出现:FAQ 段落。

风险与边界

1. 休眠唤醒后规则失效(≤10.11 Windows 版)。
2. 不支持仅阻断部分协议,需全有或全无。
3. iOS 无法自定义例外,家庭 NAS 需改 Split DNS 曲线救国。
4. 与部分杀毒驱动共存时可能出现蓝屏(经验性观察:卡巴斯基 21.3 以下版本)。
5. Linux 无官方 GUI,新手误写 PreUp 脚本易导致整机失联,需准备 IPMI 或串口救场。
替代方案:对仅需浏览器防泄漏的用户,可改用 Chrome 插件级「WebRTC 网络限制器」+ 代理模式,牺牲系统级防护换取易用。

收尾结论

Kill Switch 不是「开了就高枕无忧」的噱头,而是一道需要定期校验的保险。按本文给出的最短路径配置后,务必用「手动掉线」法验证,再结合实际场景决定阈值与例外。只要保持「季度复查」节奏,你就能在隐私、性能与可维护性之间找到可量化的平衡点。