Skip to content

TUN 接管与网络切换

TUN 用于接管不遵循系统代理设置的流量。先完成第一次连接,再配置 TUN;创建虚拟网卡和修改路由需要操作系统授权。

确认参数来源

打开“设置 → TUN”查看来源:

当前配置使用的参数设置页保存的效果
没有 runtime.tun客户端缺省值TUN 正运行时可“保存并应用”
显式包含 runtime.tun当前配置拥有 TUN 设置“保存缺省值”供其他配置使用,不覆盖当前配置
显式写了 runtime.tun: null仍视为配置明确管理不以客户端缺省值擅自启动 TUN

配置并开启

  1. 确认“设置 → 内核”已选择兼容内核,并处理权限或 Wintun 错误。
  2. 在 TUN 设置中填写主地址 CIDR、网卡名称、入站 tag 和 MTU。MTU 范围为 576–65535,没有特别需要时沿用现有值。
  3. 需要 IPv4/IPv6 接管时启用“双栈接管”;第二地址留空自动选择,也可填写另一地址族的 CIDR。
  4. “TUN 接管网段”留空表示全部目标;填写后只接管这些网段。排除目标在“设置 → 网络 → 绕过规则”维护,每行一个 IP/CIDR;TUN 页通过“管理绕过规则”进入,目标保留系统原路由。
  5. 需要 DNS 劫持时先完成 DNS 设置,再开启劫持。
  6. 保存并开启 TUN,等待运行状态确认。

双栈接管不代表物理网络自动获得 IPv6 出口。没有 IPv6 出口时,内核只能在具有可信域名信息的适用路径上重新选择地址;裸 IPv6、NAT64 和所有 UDP 的自动跨族转换不在保证范围内。

运行中修改参数

客户端管理的 TUN 运行时可以修改设置,点击“保存并应用”后等待完成。当前内核通过停止并重建 TUN 应用网卡、地址及捕获网段参数,客户端和内核进程保持运行,但已有 TUN 连接可能中断。

应用成功后才保存新参数;失败且能确认当前运行状态时,客户端会尝试恢复旧 TUN 和设置。若出现超时、外部状态变化或无法核实结果,会提示未确认状态,避免并发重启和相互覆盖。此时先刷新状态、查看错误,不要连续点击保存。

旧内核缺少接管/排除 CIDR 状态字段时,无法核实在线修改结果;升级内核,或采用“关闭 TUN → 保存 → 再开启”的流程。TUN 或内核原本关闭时,保存缺省值不会主动启动它们。

看懂开关与状态

显示情况如何处理
已运行确认当前来源和参数,再访问目标应用
已保存开启,但未运行检查启动或恢复错误,修正后再开启
未知 / 无法获取状态通信失败不等于已关闭;刷新状态并查看日志
内核启动成功,但 TUN 恢复失败内核和 TUN 分开排查,按提示处理权限、参数或出口问题

关闭客户端管理的 TUN 会先保存“关闭”的意图,再请求内核停止;只有查询确认停止,才算关闭成功。若停止结果未确认,应继续检查实际网卡和状态。保存的关闭意图可防止后续内核重启重新恢复旧的开启状态。

Wi-Fi、网线或 VPN 切换

网络切换后,先查看 TUN 的 IPv4/IPv6 出口诊断和降级原因,再分别验证域名解析及实际 TCP/UDP 流量。最新内核包含 Windows strict routing 下的 DHCP 客户端流量放行修复,仍需在自己的网络环境确认地址续租和连接恢复。

如果内网 VPN 不通,检查排除 CIDR 是否为实际目标网段、系统原路由是否存在。系统代理和 TUN 可以同时启用。客户端统一绕过策略会协调系统代理、TUN 排除与内核路由;仅手工修改代理配置的 runtime.tun.exclude_cidrs 不会同步应用自身的 HTTP/SOCKS5 代理设置。

停止接管时分别关闭系统代理和 TUN。完全退出客户端会尝试停止其管理的 TUN 与内核;出现恢复错误时,保留日志并检查系统代理和路由状态。

ZeroDeNet