全隧道(TUN)模式
TUN 模式创建虚拟网络接口,将机器上所有 IP 流量都通过 VPN 路由——而不仅是支持 SOCKS5 的应用。这等同于传统 VPN。
注意: TUN 模式需要 root 或管理员权限才能创建网络接口。
启用 TUN 模式
Section titled “启用 TUN 模式”TUN 模式通过 client.toml 中的 [tun] 段启用,而不是命令行参数:
[tun]enabled = true使用你惯常的命令连接(无需 --tun 参数):
sudo rvpn -c ~/.config/rvpn/client.tomlIP 地址与网关分配
Section titled “IP 地址与网关分配”你的客户端 IP 地址和网关 IP 由服务器通过 VirtualIp 消息动态分配。无需在配置中指定它们。服务器同时提供隧道流量使用的 DNS 服务器。
client.toml 中的 [tun] 段支持以下字段:
| 字段 | 默认值 | 描述 |
|---|---|---|
enabled | false | 设为 true 以启用 TUN 模式。 |
interface_name | (自动) | TUN 接口名。留空则由操作系统分配——通常在 macOS 上为 utun0,在 Linux/FreeBSD 上为 tun0。若为防火墙规则需要指定名称,请设为具体值。 |
mtu | 1420 | TUN 接口的 MTU。较低值可减少高延迟链路上的分片。 |
routes | ["0.0.0.0/0"] | 通过隧道发送的路由。默认路由所有流量。若要分流路由,请指定具体 CIDR。 |
[tun]enabled = true# interface_name = "vpn0" # optional, OS-assigned by defaultmtu = 1420routes = ["0.0.0.0/0"]仅路由特定流量
Section titled “仅路由特定流量”除了路由一切外,你也可以只路由特定子网:
[tun]enabled = trueroutes = [ "91.108.0.0/16", # Telegram "149.154.0.0/16", # Telegram "172.217.0.0/16", # Google]TUN 模式中的分流
Section titled “TUN 模式中的分流”分流在 TUN 模式下的工作方式与 SOCKS5 模式相同。启用 builtin_bypass_countries = ["CN"] 后,中国 IP 会自动从隧道路由中排除:
[split_tunnel]enabled = truebuiltin_bypass_countries = ["CN"]这意味着国内的中国流量继续走你的正常连接,其他一切通过 VPN。
Linux:所需权限
Section titled “Linux:所需权限”在 Linux 上,rvpn 二进制需要创建 TUN 接口并修改路由表。可以以 root 身份运行:
sudo rvpn -c /etc/rvpn/client.toml或授予二进制所需能力:
sudo setcap cap_net_admin+ep /usr/local/bin/rvpnrvpn -c ~/.config/rvpn/client.tomlmacOS:系统扩展
Section titled “macOS:系统扩展”在 macOS 上,创建 TUN 接口需要提升的权限。请使用 sudo 运行或配置 LaunchDaemon:
sudo rvpn -c ~/.config/rvpn/client.toml检查你的出口 IP:
curl https://api.ipify.org返回的 IP 应为你的 VPN 服务器 IP。
检查接口已启用(具体名称各异):
# macOSifconfig utun0
# Linux / FreeBSDip -brief addr show # Linuxifconfig tun0 # FreeBSDip route show