指南
如何设置分流
如何将部分应用或地址发送到隧道之外,同时让其他所有流量留在隧道内;每项例外会带来什么代价;以及证明分流符合你要求的检查方法。内容针对 2026 年末的客户端和 Android 17 编写。
本文确定的内容
分流会将选定的一组应用或地址发送到隧道之外,并让其他所有流量留在隧道内。列表中的每一项,都是 VPN 不再处理的流量;这些流量会完整地通过普通网络传输。设置得当,它可以让打印机和银行应用正常工作,同时不影响其他内容;设置得过于宽松,则会变成由你亲自配置的泄漏。以下步骤采用的是严格版本。
两种规则
按应用
规则指定一个程序,该程序的连接会绕过隧道。Windows、macOS 和 Android 客户端都提供此功能;从 Android 17 开始,客户端可以将列表交给系统管理的界面,因此例外由操作系统而不是客户端强制执行 — 如果客户端从自身设置中打开该界面,它使用的就是这一功能。iOS 不向普通客户端提供按应用分流;最接近的功能是下面的本地网络开关。
按地址或子网
规则指定一个目的地,任何程序发往该目的地的流量都会绕过隧道。这种方式更粗略,也更难回溯,因为地址规则涵盖的是明天在该地址响应的任何内容。对于你自己网络上的设备,这是合适的工具;对于互联网上的服务,则不合适。
哪些内容会被发送到隧道之外
- 你自己网络上的设备 — 打印机、NAS、媒体服务器等;隧道路由会让你无法访问这些设备。先尝试本地网络开关;它的设置范围更小,而且无需添加规则就能覆盖其中大多数设备。
- 拒绝来自出口地址的连接的应用,通常是银行应用。该规则只让这个应用看到你的真实地址,其他应用不会看到。银行随后会知道你在哪里,这就是需要付出的代价。
- 默认情况下没有其他内容。列表中的每一项,都是其流量会被你所在网络读取的应用。列表过长,意味着 VPN 只保护浏览器,几乎不再保护其他内容。
例外适用于无法通过隧道工作的应用。它不是用来访问已经决定不向出口所在国家提供服务的服务;那是服务自身的决定,绕过该决定不在本文讨论范围内。
设置规则
- 打开客户端的分流部分,通常位于连接设置或高级设置中。在 Android 17 及更高版本中,客户端可能会为同一列表打开由系统管理的界面;无论哪种情况,都只有一个列表,而引导你进入该列表的是客户端自身的分流部分。
- 添加任何内容前先检查模式。大多数客户端提供两种模式:列出的应用绕过隧道,或只有列出的应用使用隧道。第二种是反向分流;列表为空时,意味着没有任何流量经过隧道。确认当前模式符合你的意图。
- 添加应用,而不是添加其文件夹,并添加实际建立连接的那个可执行文件。包含多个进程的软件套件可能需要分别添加每个进程;添加安装程序文件夹也会把其更新程序一并加入。
- 完全退出应用,然后重新连接客户端。规则只适用于新连接。保持打开状态的应用会继续使用旧路径,并在检查时给出错误结果。
反向模式
在反向模式下,只有列出的应用使用隧道,其他所有流量都会绕过隧道。当某个应用需要使用隧道,而设备的其余部分应表现得像没有安装客户端时,这种模式很合适;除此之外都不适合,因为你忘记列出的每个应用都会处于开放网络中。如果使用该模式,大多数客户端的终止开关只覆盖列出的应用;其他应用从一开始就不在隧道内。
本地网络访问
大多数客户端都有一个开关,可以让你自己网络中的地址通过,同时让其他所有流量留在隧道内。这是按子网进行的分流,只是由客户端替你选择,因此无需规则就能覆盖打印机和 NAS。在你自己管理的网络上,它带来的代价很小;在公共网络上,它会让该网络中的每台设备都能访问你的设备,这正是它默认关闭、并且值得在离开前再次关闭的原因。
确认分流符合你的要求
- 在设置了例外的应用中,找到它自己的地址检查功能 — 例如银行应用的会话详情、种子客户端的地址面板,或在设置了例外的浏览器中打开的任何页面 — 并确认显示的是你自己的地址和国家/地区。
- 在任何未设置例外的应用中运行地址检查,并确认显示的是出口地址。在未添加到列表的浏览器中进行检查;如果还有其他能显示地址的应用,也在其中一个应用中进行检查。
- 运行一次完整检查:在规则生效的情况下,按照如何检查 VPN 是否正常工作中的方法进行。覆盖范围超过预期的规则,会在该检查中表现为原本应留在隧道内的内容发生泄漏。
这些检查能证明什么
+你列出的应用,且只有这些应用,正在使用普通网络
+其他所有流量仍通过出口传输,包括查询流量
+当前模式符合你的意图,而不是反向模式
这些检查不能证明什么
−它们无法说明服务商会留存隧道内流量的哪些内容 — 这由留存页面回答
−泄漏测试无法识别有意设置的例外;设置了例外的应用只能从自身内部检查,否则就无法检查
−今天设置的规则会随着应用更新继续跟随该应用,而更新后的应用可能从你未列出的进程建立连接
分流未按预期生效时
设置了例外的应用仍显示出口地址
规则没有生效,最常见的原因是应用在设置规则前就已经运行。分流只适用于规则设置后建立的连接;完全退出应用,重新连接客户端,然后再次打开应用。在 Android 上,检查规则是在客户端中还是在系统设置中,因为在其中一个位置设置了例外而另一个位置没有设置时,应用会遵循操作系统实际执行的那套规则。
浏览器是最棘手的情况:它的后台进程会在窗口关闭后继续保持连接,因此需要从浏览器自己的菜单中退出,而不是只关闭窗口。
未设置例外的应用显示了我的真实地址
当前生效的设置比按应用规则更宽泛。恰好覆盖该目的地的按地址或子网规则、误设为只让列出的应用通过隧道的反向模式,或在分配公共地址的网络上启用本地网络开关,都可能导致这种情况。逐一查看所有规则,而不只是应用列表;关闭整个功能以确认地址恢复为出口地址,然后逐项重新添加规则。
仍然无法访问打印机或 NAS
本地网络访问的设置范围比分流更小,有时也是独立的设置:它允许你自己网络中的地址通过,同时路由其他所有流量。如果客户端提供该功能,先将其打开,再手动添加子网规则。如果设备是通过名称而不是地址访问的,该名称可能会通过隧道的 DNS 解析,而隧道的 DNS 看不到你的网络;请改用地址。
泄漏测试通过了,但我给某个应用设置了例外
测试是在浏览器中运行的,而浏览器位于隧道内。按照设计,泄漏测试无法看到有意设置的例外:设置了例外的应用的全部流量都在普通网络上传输,你在其他位置打开的任何页面都不会报告这一点。检查例外的方法是查看设置了例外的应用自身的地址,正如上一节所述,而不是查看测试页面显示的地址。
同样的步骤,不同的设备
其余平台
每个平台都有自己独立的指南,而不是同一页面下的一个标签。步骤从安装程序打开的那一刻起就开始分岔,一篇试图同时回答三个平台的文章,哪一个都答不好。