跳转至

全隧道(TUN)模式

TUN 模式创建一个虚拟网络接口,并将您机器上的**所有 IP 流量**通过 VPN 路由——不仅仅是支持 SOCKS5 的应用。这等同于传统 VPN。

**注意:**TUN 模式需要 root 或管理员权限来创建网络接口。


启用 TUN 模式

TUN 模式通过 client.toml 中的 [tun] 部分启用,而不是通过命令行标志:

[tun]
enabled = true

使用您平常的命令连接(无需 --tun 标志):

sudo rvpn -c ~/.config/rvpn/client.toml

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
# interface_name = "rvpn0"  # 可选,默认为操作系统分配的名称
mtu     = 1420
routes  = ["0.0.0.0/0"]

仅路由特定流量

除了路由所有内容,您可以仅路由某些子网:

[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 会自动从隧道路由中排除:

[split_tunnel]
enabled = true
builtin_bypass_countries = ["CN"]

这意味着中国国内流量继续使用您的正常连接,而其他所有内容通过 VPN。


Linux:所需权限

在 Linux 上,rvpn 二进制文件需要创建 TUN 接口和修改路由表。以 root 身份运行:

sudo rvpn -c /etc/rvpn/client.toml

或授予二进制文件所需的能力:

sudo setcap cap_net_admin+ep /usr/local/bin/rvpn
rvpn -c ~/.config/rvpn/client.toml

macOS:系统扩展

在 macOS 上,创建 TUN 接口需要提升权限。使用 sudo 运行或配置 LaunchDaemon:

sudo rvpn -c ~/.config/rvpn/client.toml

验证隧道

检查您的出口 IP:

curl https://api.ipify.org

返回的 IP 应该是您的 VPN 服务器的 IP 地址。

检查接口是否启用(具体名称因系统而异):

# macOS
ifconfig utun

# Linux
ip addr show rvpn0
ip route show