VPN 与代理模式
在 VPN 模式和仅代理模式之间做出选择,指定哪些应用使用 Throne,与其他设备共享代理,并调整 TUN 和入站设置。
选择运行模式
在 设置(Settings)→ 通用(General)→ 运行模式(Service mode)中设置模式。更改模式会停止正在运行的连接;再次点按连接按钮即可重新启动。
| 模式 | 作用 | 适用场景 |
|---|---|---|
VPN(默认) |
Android 通过虚拟网络接口(TUN)把所有应用的流量,或仅把你所选应用的流量,发送给 Throne。 | 你希望所有应用都使用 Throne。这是通常的选择。 |
仅代理(Proxy only) |
Throne 只在 127.0.0.1 上开启一个本地 SOCKS5 和 HTTP 代理,默认端口为 2080。不会创建 VPN。 |
另一个 VPN 应用必须保持连接;你只需要在带有代理设置的应用中使用 Throne;或者你的设备无法授予 VPN 权限。 |
如果在 Throne 已连接时更改本页上的设置,请在 Throne 显示“重载代理服务以应用修改”时点按 应用(Apply),或者重新连接。
VPN 模式
在 VPN 模式下,Throne 按照路由配置的规定,将应用的每个连接经由代理发送、直接发送或阻止。
- Android 同一时间只运行一个 VPN。Throne 连接后,其他任何应用的 VPN 都会断开。
- 连接到手机热点的设备不会使用该 VPN。要让它们使用代理,请使用局域网共享。
- 要让某些应用不走 VPN,或只让某些应用走 VPN,请使用分应用代理。
- 如果 Throne 被设为始终开启的 VPN,Android 会以 VPN 模式启动它。参见始终开启的 VPN。
VPN 的 HTTP 代理
在 Android 10 及更高版本上,设置(Settings)→ 入站(Inbound)→ 为 VPN 附加 HTTP 代理(Append HTTP proxy to VPN)(默认关闭)还会将 Throne 的本地代理设为 VPN 网络的 HTTP 代理。遵循系统代理设置的应用(例如大多数浏览器)随后会将其网页流量发送到该代理,而不是经由 VPN 接口。这部分流量仍然遵循你的路由配置。
开启 启用授权(Enable authorization)时,该设置不可用,因为 Android 无法把用户名和密码传给应用。HTTP 代理绕过列表(HTTP proxy bypass list)中的域名(每行一个,例如 *example.com)不经过该代理连接。
绕过 VPN 的应用
设置(Settings)→ 通用(General)→ 允许应用绕过 VPN(Allow apps to bypass VPN)(默认关闭)允许请求绕过的应用不经过 VPN 连接,例如 Google 推送通知(FCM)。这些连接会直接发出,不遵循你的路由配置。当始终开启的 VPN 屏蔽未使用 VPN 的连接时,Android 会忽略该设置。
仅代理模式
在 仅代理(Proxy only)模式下,Throne 只运行一个本地代理,不做其他事情。Android 不会请求 VPN 权限,只有你设置为使用该代理的应用才会使用 Throne。TUN 设置和分应用代理不起作用。
- 将
设置(Settings)→通用(General)→运行模式(Service mode)设为仅代理,然后连接。 - 在需要使用 Throne 的应用中设置 SOCKS5 或 HTTP 代理,服务器为
127.0.0.1,端口为2080(或你设置的代理端口(Proxy port))。如果开启了启用授权(Enable authorization),还需要输入用户名和密码。
在此模式下,Throne 自己的请求(例如订阅更新)在有配置运行时经由本地代理发送,没有配置运行时直接连接,除非开启了 设置 → 订阅(Subscriptions)→ 使用代理(Use proxy)。
分应用代理
分应用代理决定哪些应用使用 VPN。它只在 VPN 模式下有效。
- 开启
设置(Settings)→TUN / VPN→分应用代理(Apps VPN mode),应用列表随即打开。 - 在列表顶部选择模式:
代理(Proxy)只让所选应用走 VPN,绕过(Bypass)让所选应用不走 VPN。 - 点按应用以选中它们。
搜索…(Search…)可按名称或包名查找应用。共享同一用户 ID 的应用会被一起选中。
如果没有选择任何应用,所有应用都会使用 VPN。在 代理 模式下,如果所选应用都未安装,则没有任何应用使用 VPN。要关闭分应用代理,请关闭 分应用代理 开关,或在列表中选择 关闭(Off);Throne 会保留你的选择,供下次使用。如果列表一直为空,请参见已安装应用。
自动选择需要代理的应用(Auto select proxy apps)会从一个包含约 390 个常需要代理的应用(例如 Google 应用、YouTube、Instagram 和 Netflix)的内置列表中选择应用,使这些应用使用 VPN,其他应用则不使用。它会替换你对已安装应用的选择。
添加包名…(Add package name…)可添加列表无法显示的应用。导出到剪切板(Export to clipboard)和 从剪切板导入(Import from clipboard)以纯文本形式复制模式和选择:第一行为 true 表示 绕过,为 false 表示 代理,之后每行一个包名。
false
com.google.android.youtube
org.telegram.messenger
如果没有 true 或 false 这一行,导入时会保留当前模式,只替换所选应用。只要有一行不是包名,Throne 就会拒绝整个列表。
要把某个应用发送到特定出站,请改用带有 应用(Apps)条件的路由规则。参见 Android 上的路由。这样的规则只能看到使用 VPN 的应用:如果分应用代理让某个应用不走 VPN,它的规则就永远不会匹配。在路由规则的应用列表中,⋮ → 复制到分应用代理(Copy to Apps VPN mode)会把这些应用添加到分应用代理,并在更改任何内容之前先说明各个选项。
局域网共享
局域网共享可以让你网络中或你手机热点上的其他设备把手机上的 Throne 用作代理。它在两种运行模式下都有效。
- 打开
设置(Settings)→入站(Inbound),开启允许来自局域网的连接(Allow connections from the LAN)。 - 开启
启用授权(Enable authorization),并设置用户名(Username)和密码(Password)。 - 记下
代理端口(Proxy port),默认是2080。 - 在 Android Wi-Fi 设置中所连接网络的详细信息里找到手机的 IP 地址。连接到你热点的设备使用它们在连接信息中显示的路由器(网关)地址。
- 在另一台设备上设置 SOCKS5 或 HTTP 代理,填写该地址、端口、用户名和密码。
TUN / VPN 设置
这些设置位于 设置(Settings)→ TUN / VPN,只在 VPN 模式下生效。
| 设置 | 默认值 | 作用 |
|---|---|---|
MTU |
9000 |
VPN 接口的最大数据包大小。如果某些应用或网站无法访问而其他的正常,请设为 1500 并重新连接。长按该设置项可以输入 1000 到 10000 之间的任意值。 |
Tun IPv6 |
关闭 | 通过 VPN 接口路由 IPv6。关闭时,IPv6 连接会立即失败,因此应用会使用 IPv4。仅当你的服务器支持 IPv6 时才开启。 |
Tun 路由(Tun routing) |
关闭 | 将路由配置发往 direct 的 IP 范围排除在 VPN 接口之外。 |
绕过私有网段(Bypass private ranges) |
开启 | 将 私有网段(Private ranges),即本地网络,排除在 VPN 接口之外,以便直接访问本地网络中的设备。 |
IPv4 CIDR、IPv6 CIDR |
172.19.0.1/24、fdfe:dcba:9876::1/96 |
VPN 接口的地址。 |
如果某条路由规则将私有网段中的地址发往 direct 以外的出站,或拒绝这些地址,Throne 会把该网段保留在 VPN 接口之内,以便该规则生效。严格路由(strict route)始终开启。
恢复桌面版备份中的设置时,桌面版的 MTU 也会随之恢复;除非你更改过,否则该值为 1500。
入站设置
设置(Settings)→ 入站(Inbound)控制 Throne 的本地代理,即混合入站(mixed inbound),它在一个端口上同时接受 SOCKS5 和 HTTP。
| 设置 | 默认值 | 作用 |
|---|---|---|
禁用混合入站(Disable mixed inbound) |
关闭 | 在 VPN 模式下,Throne 不开启本地代理。这也会移除 VPN 的 HTTP 代理和局域网共享。在 仅代理 模式下不起作用。 |
代理端口(Proxy port) |
2080 |
本地代理的端口。在工作资料或其他 Android 用户中,默认值为 2080 加上该用户的编号。 |
启用授权(Enable authorization) |
关闭 | 每个客户端都必须提供 用户名(Username)和 密码(Password)。 |
DNS 服务器端口(DNS server port) |
5533 |
Throne 本地 DNS 服务器在 127.0.0.1 上使用的端口。如果另一个应用或另一个 Android 用户已经在使用该端口,请选择其他端口。参见 Android 上的 DNS。 |
自定义入站(Custom inbound) |
{"inbounds": []} |
以 JSON 形式提供的额外 sing-box 入站,会原样添加到配置中。 |