应用场景
macOS 网络锁:防止 App 绕过代理直连
Antify 的网络锁(Kill Switch)在代理未运行,或连不上代理服务器时,禁止选定的 App 联网。本文说明如何开启,以及它的作用范围和限制。
网络锁是规则上的一个开关:Antify 代理没在运行,或连不上代理服务器时,这个 App 的新连接会被直接拒绝,而不是悄悄改走直连。
什么时候需要它
给 App 建了「代理」规则之后,只有 Antify 代理在运行时,它的流量才经过代理;代理没在运行的那段时间,这个 App 照常直接联网。常见的有三种情形:重启 Mac 后还没打开 Antify;你停了代理,忘了重新启动;系统扩展崩溃,或被系统关掉。
网络锁就是为这几段时间准备的:开了网络锁的 App 在这些时候联不了网,不会直接连出去。
- 「代理」和「阻止」规则可以开启网络锁。「直连」规则没有可拦的流量,开关不可用,在规则列表里显示为短横线。
- 规则本身被停用时,网络锁同样不起作用。
- 网络锁只让 App 联不了网,不会关闭 App,也不会阻止它启动。

开启网络锁
- 1
打开开关
在「规则」页面,每条规则那一行的「网络锁」列有一个开关;也可以在编辑规则的窗口里打开「网络锁」。
- 2
第一次开启时安装内容过滤器
网络锁由系统的内容过滤器执行,所以第一次打开开关时会弹出「安装内容过滤器」窗口,点「安装」。如果网络扩展还没有启用,会先要求启用网络扩展,步骤见《安装 Antify 与系统扩展》。
- 3
如果 macOS 询问
macOS 可能弹出系统提示,询问是否允许 Antify 过滤网络内容,选择允许。如果选了不允许,安装窗口会提示「macOS 未允许启用内容过滤器」,可以再点一次「安装」。

它拦什么,不拦什么
网络锁只在 Antify 代理没有运行的时候起作用。代理在运行时它不干预,流量照规则走。
- 代理没有运行时(没启动、被停止、扩展崩溃之后),这个 App 的新连接会被拒绝。
- 连不上代理服务器时,这个 App 也不会改走直连,不论该代理的「代理失败时直连」怎么设置。
- 退出 Antify、重启 Mac 之后仍然生效,不需要先打开 Antify。
- 按整个 App 拦截。规则里设了「目标主机」或「目标端口」时,网络锁也不看它们:代理没运行时,整个 App 都联不了网。

确认它在起作用
停止代理,然后让开了网络锁的 App 新建一个连接,比如在浏览器里打开一个新网页,应该打不开。
代理未运行时,仪表盘顶部的卡片显示「Antify 代理未运行 · 内容过滤器已启用」,说明内容过滤器正在拦住开了网络锁的 App。菜单栏里「启动代理」下面会有一行「网络锁已生效」。
已允许通知的话,被拦的 App 启动时,Antify 还会发一条「Antify 代理未运行」的通知,正文是「网络锁已禁止 Chrome 联网。」,带「启动代理」按钮。
启动代理之后,网络锁不再拦这个 App,新连接重新按规则走代理;浏览器里重新加载页面即可。如果代理服务器本身连不上,连接仍会失败。

边界
- 被拦 App 的域名解析仍会发出,DNS 服务器能看到它在查哪些域名;这个 App 自己的连接依然被拦。
- 扩展崩溃后,系统会自己重新启动内容过滤器,其间约半秒内,新连接可以直接通过。
- 想去掉内容过滤器:「设置」→「权限」→「内容过滤器」→「移除」。移除后,开了网络锁的 App 在代理未运行时又可以联网,规则里的设置保留。
