先分清 TUN 模式与系统代理
Clash Verge Rev 中的 TUN 模式,作用不是把“系统代理”开关换一个位置,而是通过虚拟网卡接管系统网络流量,再交给 mihomo 内核按照配置文件中的规则进行转发。浏览器、办公软件等主动读取 HTTP 或 SOCKS 代理的软件,通常只需要系统代理就能工作;游戏、部分命令行工具、虚拟机、开发工具和不遵循系统代理设置的应用,则可能必须依靠 TUN 才能进入 Clash 的规则链路。
两种模式可以这样理解:系统代理主要修改 Windows 的代理设置,让应用主动连接 127.0.0.1:7890 之类的本地代理端口;TUN 则在网络接口层接收流量,不要求每个应用单独支持代理。TUN 并不会自动让所有连接都走代理,最终是否代理仍由当前配置的 mode、rules、DNS 设置和策略组共同决定。
| 项目 | 系统代理 | TUN 模式 |
|---|---|---|
| 接管位置 | Windows 代理设置 | 虚拟网络接口与路由 |
| 是否需要应用支持 | 应用需要读取系统代理 | 通常不要求应用支持代理 |
| 权限要求 | 一般较低 | 通常需要管理员权限或服务权限 |
| 适合场景 | 浏览器、聊天软件、普通桌面应用 | 游戏、终端、开发工具和不读代理的程序 |
| 排障难度 | 端口和系统代理较容易检查 | 还要检查网卡、路由、DNS 与权限 |
开启前完成 Windows 权限与环境准备
不同版本的 Clash Verge Rev 界面文字可能略有差异,但 TUN 的基本前提相同:mihomo 内核能够正常运行,配置文件可以成功加载,客户端拥有创建虚拟网卡或修改路由的权限。若只看到 TUN 开关却无法打开,通常不是订阅节点的问题,而是权限、驱动或旧网络组件发生冲突。
关闭可能冲突的网络程序
先退出 Clash for Windows、Clash Verge、Netch、某些 VPN 客户端以及其他带有“增强模式”“透明代理”或“虚拟网卡”功能的软件。退出时不仅要关闭窗口,还要检查 Windows 右下角的系统托盘,确认程序进程已经结束。旧程序如果仍然占用代理端口、安装的虚拟网卡或路由规则,新客户端即使启动成功,也可能无法接管流量。
如果之前使用过旧客户端,建议先记录当前 Windows 代理状态。打开「设置」→「网络和 Internet」→「代理」,记下“使用代理服务器”是否开启以及地址和端口。测试 Clash Verge Rev 时,系统代理应由当前正在运行的客户端统一管理,不要手动保留一个指向旧端口的地址。
确认客户端和 mihomo 内核正常
- 启动 Clash Verge Rev,并在配置页面导入本地 YAML 或订阅配置。
- 选择一份能够正常解析的配置,确认节点、代理组和规则已经显示。
- 启动 mihomo 内核,查看日志中是否出现监听端口和配置加载成功的信息。
- 先临时开启系统代理,用浏览器访问普通网站,确认基础代理链路可用。
- 关闭系统代理后,再开始配置 TUN,避免同时改变多个变量。
常见配置会使用 mixed-port: 7890 作为 HTTP 与 SOCKS 混合端口,控制接口则可能是 127.0.0.1:9090。这些端口只是示例,实际值以当前配置和 Clash Verge Rev 的内核设置为准。不要把控制端口填写到浏览器代理设置中,也不要因为端口不是 7890 就认定 TUN 失败。
准备管理员权限与网卡组件
Windows 的 TUN 通常需要创建或使用虚拟网络适配器,并设置路由或 DNS 行为。首次启用时,系统可能弹出 UAC 管理员确认窗口。如果使用的是标准用户账户,应准备好管理员账户凭据;如果电脑由组织或学校统一管理,组策略也可能禁止普通程序安装驱动或修改路由。
打开「设置」→「网络和 Internet」→「高级网络设置」→「更多网络适配器选项」,可以观察是否出现名称类似 mihomo、Wintun 或其他 TUN 的虚拟适配器。适配器名称会因客户端版本和安装方式不同而变化,不建议仅凭名称判断组件是否正确。若设备管理器中出现黄色感叹号,应先处理驱动或权限问题,再继续调配置。
Clash Verge Rev 开启 TUN 的具体步骤
完成准备后,可以按照“选择配置—启动内核—授权 TUN—确认路由”的顺序操作。不同构建版本可能把开关放在「设置」「系统代理」或「代理」页面,但通常都能在客户端的设置区域找到 TUN、服务模式、自动路由等相关选项。
- 打开设置页面:启动 Clash Verge Rev,在左侧或顶部进入「设置」页面,找到网络、代理或 TUN 相关区域。
- 确认内核类型:选择 mihomo 内核或确认当前配置由 mihomo 运行。若客户端没有可用内核,先完成核心下载或安装,不要直接反复点击 TUN。
- 选择运行配置:返回配置列表,选中实际要使用的配置,并等待节点和规则加载完成。TUN 接管的是当前运行内核,不是配置列表中所有未启用的订阅。
- 开启服务模式:如果界面提供「服务模式」「Service Mode」或类似选项,先按提示安装服务并通过管理员授权。服务模式有助于在需要提升权限时运行 TUN 组件。
- 打开 TUN 开关:在 TUN 区域启用 TUN。首次开启时允许客户端创建虚拟网卡、设置路由或修改 DNS。
- 按需启用自动路由:一般情况下可开启自动路由,让内核根据系统网络状态设置必要路由。若同时使用企业 VPN、虚拟机或复杂局域网,自动路由可能需要进一步调整。
- 保存并重启内核:若客户端提示需要重启 mihomo、服务或应用,按提示执行。只关闭设置窗口通常不会让新的 TUN 参数立即生效。
启用后,可以先保持「系统代理」关闭,单独测试 TUN 是否工作。这样更容易判断流量究竟来自系统代理端口还是虚拟网卡。若同时打开系统代理和 TUN,浏览器可能看起来可以访问,但实际测试无法区分两个路径,也可能产生重复转发。
理解常见 TUN 参数
有些版本允许在客户端界面或配置覆写中调整 TUN 字段。下面是一组用于说明结构的示例,不建议直接覆盖现有订阅配置。配置修改前应备份原文件,并注意 YAML 只能使用空格缩进:
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
enable:是否启用 TUN。客户端开关通常会自动管理这个值。stack:网络栈实现,常见有system、gvisor或mixed。不同系统和应用的兼容表现可能不同。auto-route:是否自动写入必要路由。关闭后,部分流量可能不会进入 TUN。auto-detect-interface:自动识别当前实际联网的物理接口,适合 Wi-Fi 与有线网络切换的电脑。dns-hijack:把符合条件的 DNS 请求导入 mihomo。DNS 劫持配置不正确时,可能出现域名解析失败或规则判断异常。
strict-route、IPv6、绕过局域网和 DNS 劫持属于更进阶的选项,不应在遇到问题时全部打开或关闭。尤其是 IPv6:如果本地网络有可用 IPv6,而配置只处理 IPv4,某些应用可能通过 IPv6 直连,表现为浏览器正常但特定域名仍无法代理。调整前应先查看日志和连接记录,确认是哪一种地址族没有进入规则链。
检查 TUN 是否真正接管流量
界面上显示“已开启”只能说明开关状态发生变化,不能完全证明所有流量已经通过 mihomo。建议从客户端状态、Windows 网卡、连接日志和实际应用四个角度交叉验证。
查看客户端状态与日志
回到 Clash Verge Rev 的代理或日志页面,确认 mihomo 内核仍处于运行状态,没有持续出现 tun start failed、permission denied、route add failed、address already in use 或 DNS 超时。打开一个网站或启动测试应用时,日志中应出现新的连接记录,并能看到目标域名、匹配规则和使用的策略组。
如果只有浏览器产生连接,而游戏或终端启动后完全没有记录,可能是应用使用了独立网络驱动、IPv6 直连、UDP 流量未按预期处理,或者 TUN 实际没有接管默认路由。此时不要只更换节点,应先验证虚拟网卡和路由状态。
检查 Windows 网络接口
在 PowerShell 中执行以下命令,可以查看网络适配器和路由表。命令只读取本机状态,不会修改网络:
Get-NetAdapter
Get-NetIPConfiguration
route print
输出中应能看到正在使用的物理网卡以及 TUN 相关适配器。路由表的具体内容会随客户端版本、网络环境和自动路由策略变化,不建议把某一条固定网关或固定接口编号当成标准答案。重点是启用 TUN 前后路由表确实发生了与虚拟接口相关的变化,并且默认联网状态没有完全丢失。
使用分层测试方法
- 测试普通网页:确认基础 TCP、DNS 和策略组可用。
- 测试命令行:在 PowerShell 执行
curl.exe -I https://example.com,观察是否能够返回 HTTP 响应。 - 测试不读取系统代理的应用:关闭系统代理后启动目标应用,看客户端连接记录是否出现。
- 测试 UDP 场景:如果问题出现在游戏、语音或实时应用中,需要确认节点、规则和本地网络是否允许稳定 UDP。
- 测试直连规则:检查目标域名是否被
DIRECT、局域网规则或自定义绕过列表明确排除。
TUN 打不开、断网或不代理时怎么处理
提示权限不足或服务无法启动
先完全退出 Clash Verge Rev,再使用右键菜单选择「以管理员身份运行」进行一次测试。如果管理员运行后可以开启,说明问题集中在 UAC、服务安装或当前账户权限。随后检查客户端是否提供服务模式安装入口,并确认 Windows 安全中心或企业策略没有阻止相关组件。
若曾安装过多个版本,旧服务可能仍然存在。不要直接删除未知服务或注册表项目;应先使用旧客户端自身的卸载功能,重启 Windows 后再安装当前版本。服务名称和组件路径会因构建版本不同而变化,盲目删除可能影响其他网络软件。
开启后立即断网或所有网站超时
- 先关闭 TUN,确认系统网络本身能够正常联网。
- 暂时关闭 DNS 劫持、严格路由或自定义 IPv6 设置,一次只修改一项。
- 检查当前配置中的 DNS 服务器是否可达,避免把不可用的内网 DNS 写入全局配置。
- 确认默认策略组不是空组,也不是全部节点都处于故障状态。
- 检查 Windows 防火墙是否阻止 mihomo、TUN 服务或虚拟网卡通信。
- 重新连接 Wi-Fi 或网线,让系统刷新默认路由,再重启 mihomo。
如果关闭 TUN 后系统代理正常,说明节点和基础配置大概率没有问题,重点应转向虚拟网卡、路由和 DNS。反过来,如果系统代理与 TUN 都无法访问,则先排查订阅、节点、规则模式和内核日志,不要继续调整 TUN 参数。
游戏或终端仍然没有经过代理
首先确认连接记录中是否出现目标进程产生的域名或 IP。部分游戏使用 UDP、反作弊驱动或自定义网络协议,可能需要节点支持 UDP,且规则不能把目标地址分到 DIRECT。对于终端工具,还要留意它连接的是 IPv6 地址、固定 IP,还是通过自己的代理环境变量运行。
如果只有某个程序不通,可以先用一个普通的、明确不读取系统代理的测试程序验证 TUN,而不是立即修改全局规则。确认 TUN 能接管后,再针对该应用检查 Windows 防火墙、管理员级进程、IPv6 和 UDP。为了降低影响范围,不建议一开始就使用全局模式或删除所有局域网绕过规则。
安全关闭 TUN 并恢复网络
需要停用时,先在 Clash Verge Rev 中关闭 TUN,等待状态变为关闭,再停止 mihomo 内核,最后检查系统代理是否恢复到原来的状态。若关闭后仍然无法联网,可以在「设置」→「网络和 Internet」→「代理」中确认手动代理已经关闭,并在管理员 PowerShell 中查看路由表是否仍残留异常项。重启 Windows 通常可以清理临时网络状态,但不能替代对旧 VPN、代理服务和虚拟网卡的卸载。
一套适合日常使用的稳定配置顺序
对于大多数 Windows 用户,可以先采用最小改动方案:使用 mihomo 内核,保持规则模式,开启自动路由和自动识别物理网卡,确认 TUN 单独工作后,再根据实际需求处理 DNS、IPv6 和局域网访问。日常浏览器和办公软件如果已经能通过系统代理正常访问,也不必为了“功能完整”强行启用所有高级选项。
- 第一阶段:确认订阅可用、内核正常、节点能够连接。
- 第二阶段:关闭系统代理,仅开启 TUN,测试网页与命令行。
- 第三阶段:测试目标游戏或不读系统代理的应用,查看连接记录和匹配规则。
- 第四阶段:根据日志调整 DNS、IPv6、UDP 或局域网绕过,不要一次修改整份配置。
- 第五阶段:记录最终生效的开关、端口、策略组和自定义覆写,方便更新客户端后复核。
配置稳定后,仍要留意 Windows 大版本更新、客户端升级和 mihomo 内核变更。升级前导出当前配置,并记录 TUN、系统代理和 DNS 的状态;升级后先用一份基础配置测试,再恢复复杂的规则集与覆写文件。这样即使 TUN 再次失效,也能迅速判断是权限、内核、配置还是系统网络环境发生了变化。