TUN 接管与网络切换
TUN 用于接管不遵循系统代理设置的流量。先完成第一次连接,再配置 TUN;创建虚拟网卡和修改路由需要操作系统授权。
确认参数来源
打开“设置 → TUN”查看来源:
| 当前配置 | 使用的参数 | 设置页保存的效果 |
|---|---|---|
没有 runtime.tun | 客户端缺省值 | TUN 正运行时可“保存并应用” |
显式包含 runtime.tun | 当前配置拥有 TUN 设置 | “保存缺省值”供其他配置使用,不覆盖当前配置 |
显式写了 runtime.tun: null | 仍视为配置明确管理 | 不以客户端缺省值擅自启动 TUN |
配置并开启
- 确认“设置 → 内核”已选择兼容内核,并处理权限或 Wintun 错误。
- 在 TUN 设置中填写主地址 CIDR、网卡名称、入站 tag 和 MTU。MTU 范围为
576–65535,没有特别需要时沿用现有值。 - 需要 IPv4/IPv6 接管时启用“双栈接管”;第二地址留空自动选择,也可填写另一地址族的 CIDR。
- “TUN 接管网段”留空表示全部目标;填写后只接管这些网段。排除目标在“设置 → 网络 → 绕过规则”维护,每行一个 IP/CIDR;TUN 页通过“管理绕过规则”进入,目标保留系统原路由。
- 需要 DNS 劫持时先完成 DNS 设置,再开启劫持。
- 保存并开启 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 与内核;出现恢复错误时,保留日志并检查系统代理和路由状态。

