全隧道(TUN)模式¶
TUN 模式创建一个虚拟网络接口,并将您机器上的**所有 IP 流量**通过 VPN 路由——不仅仅是支持 SOCKS5 的应用。这等同于传统 VPN。
**注意:**TUN 模式需要 root 或管理员权限来创建网络接口。
启用 TUN 模式¶
TUN 模式通过 client.toml 中的 [tun] 部分启用,而不是通过命令行标志:
使用您平常的命令连接(无需 --tun 标志):
IP 地址和网关分配¶
您的客户端 IP 地址和网关 IP 由服务器通过 VirtualIp 消息动态分配。您无需在配置中指定它们。服务器还会提供隧道流量使用的 DNS 服务器。
配置¶
client.toml 中的 [tun] 部分支持以下字段:
| 字段 | 默认值 | 描述 |
|---|---|---|
enabled |
false |
设置为 true 以启用 TUN 模式。 |
interface_name |
(自动) | TUN 接口名称。在 macOS 上操作系统分配类似 utunN 的名称。在 Linux 上默认为 rvpn0。可选——省略则使用操作系统分配的名称。 |
mtu |
1420 |
TUN 接口的 MTU。较低的值可减少高延迟链路上的分片。 |
routes |
["0.0.0.0/0"] |
通过隧道发送的路由。默认路由所有流量。指定单个 CIDR 以进行分流路由。 |
仅路由特定流量¶
除了路由所有内容,您可以仅路由某些子网:
[tun]
enabled = true
routes = [
"91.108.0.0/16", # Telegram
"149.154.0.0/16", # Telegram
"172.217.0.0/16", # Google
]
TUN 模式中的分流隧道¶
分流隧道的运作方式与 SOCKS5 模式相同。使用 builtin_bypass_countries = ["CN"],中国 IP 会自动从隧道路由中排除:
这意味着中国国内流量继续使用您的正常连接,而其他所有内容通过 VPN。
Linux:所需权限¶
在 Linux 上,rvpn 二进制文件需要创建 TUN 接口和修改路由表。以 root 身份运行:
或授予二进制文件所需的能力:
macOS:系统扩展¶
在 macOS 上,创建 TUN 接口需要提升权限。使用 sudo 运行或配置 LaunchDaemon:
验证隧道¶
检查您的出口 IP:
返回的 IP 应该是您的 VPN 服务器的 IP 地址。
检查接口是否启用(具体名称因系统而异):