访问验证

Clash Verge 设置绕过不生效?先判断系统代理、TUN 还是 DIRECT

更新于 2026-10-23 · liuheng2024.store

简答:绕过不生效,通常是改错了控制层:系统代理改“代理绕过设置”,TUN 改排除网段,规则分流用 DIRECT。先切回规则模式,再按日志确认请求是否命中直连。

定义:Clash Verge 的“设置绕过”是让指定域名、IP、局域网网段或应用流量避开当前代理路径,实际配置位置取决于系统代理、PAC、TUN 或规则模式。

先试这一步:10 秒判断该改哪一层

本文基于 Clash Verge Rev 编写,与 Clash Verge Rev 项目及开发者无隶属关系;原版 Clash Verge 的界面字段可能不同。Clash Verge Rev 官方文档把绕过分为系统代理绕过、TUN 流量排除和自定义路由规则三类,可先查看Clash Verge Rev Bypass 文档确认当前模式。

Clash Verge 设置绕过速查
当前状态优先改哪里适用范围正常判定
只开启系统代理默认模式设置→系统代理→代理绕过设置遵循系统代理的应用目标应用重新连接后,目标请求不再经过代理
开启 PAC 模式编辑 PAC 脚本由 PAC 按主机决定直连或代理PAC 返回 DIRECT,其他请求返回本地代理端口
开启 TUN设置→TUN→排除自定义网段被虚拟网卡接管的流量排除的局域网地址恢复直连,其他流量仍按原配置处理
使用规则模式编辑规则中的前置规则或扩展脚本mihomo 内核收到的请求日志显示命中 DIRECT,而不是代理策略组
使用全局模式先切换到规则模式全局策略不会按普通规则分流切换后规则列表才参与匹配

最快的单变量测试是:先关闭 TUN,只开启系统代理测试一次;再关闭系统代理、单独开启 TUN 测试一次。每次只改变一个开关,才能判断到底是哪一层没有生效。

系统代理绕过:先改 Clash Verge Rev 的输入框

系统代理默认模式下,Clash Verge Rev 的“代理绕过设置”用于决定哪些请求不使用系统代理;官方示例使用类似 10.1.2.* 的地址模式。不要把系统设置菜单当成唯一入口,优先修改客户端自己的绕过字段,再用系统设置核对结果。

  1. 打开 Clash Verge Rev,进入“设置”。
  2. 找到“系统代理”,确认系统代理已经开启。
  3. 进入“代理绕过设置”,输入目标主机、域名、通配符或系统支持的地址格式。
  4. 如果界面有“验证代理绕过格式”,先保持开启;保存后完全退出并重新打开目标应用。
  5. 先只添加一个目标,观察请求日志和访问结果,再逐步扩大范围。

常见示例包括 localhost、127.0.0.1、*.example.internal(替换为你的内网域名)。示例域名必须替换为真实目标,不要把 example.internal 原样保存。

不同系统的系统代理核对路径
系统Clash Verge Rev 操作系统设置核对格式提醒
Windows设置→系统代理→代理绕过设置Internet 选项→连接→局域网设置,或检查使用系统代理的应用常见写法是 localhost;*.example.com;192.168.*;<local>;Windows 代理例外列表不要优先套用 CIDR
macOS设置→系统代理→代理绕过设置系统设置→网络→当前网络服务→详细信息→代理Apple 的代理例外字段支持主机和域名,多个项目用逗号分隔;具体是否接受 CIDR 以当前客户端字段校验为准
Linux客户端同样先改“代理绕过设置”GNOME:设置→网络→网络代理;KDE:系统设置→网络→代理桌面代理只影响读取桌面代理的应用;终端还要检查 http_proxy、https_proxy、no_proxy

Windows 例外列表的主机名、IP、分号分隔、<local> 和通配符示例,可参考Microsoft ProxyOverride 文档。macOS 的系统路径和“绕过这些主机与域名”字段,可参考Apple Mac 代理设置说明。这两类系统设置仅用于核对,不代表所有应用都会读取系统代理。

PAC 模式:用兼容写法返回 DIRECT

如果系统代理使用的是 PAC 模式,普通绕过列表不是主要控制点,需要在客户端的 PAC 编辑入口中按 FindProxyForURL 返回结果。Clash Verge Rev 官方示例说明,PAC 可以让指定域名或 IP 返回 DIRECT,其余请求交给本地混合端口;下面改用更保守的 var、dnsDomainIs 和 isInNet 写法。

示例目标必须替换为你的真实域名或网段;%mixed-port% 保留为客户端支持的占位符,不要自行猜测端口。

  • nas.example.internal:替换为 NAS 的真实域名。
  • dev.example.internal:替换为本地开发服务域名。
  • 192.168.1.0 与掩码:替换为实际局域网网段。

function FindProxyForURL(url, host) { var directHost = "nas.example.internal"; if (host == directHost || dnsDomainIs(host, ".example.internal") || isInNet(host, "192.168.1.0", "255.255.255.0")) { return "DIRECT"; } return "PROXY 127.0.0.1:%mixed-port%; SOCKS5 127.0.0.1:%mixed-port%; DIRECT;"; }

保存后重新加载系统代理,再访问目标地址。正常判定是目标请求能够访问,并且客户端日志不显示它经代理策略组转发。若脚本没有效果,先确认系统代理确实处于 PAC 模式,再检查 PAC 是否保存、目标软件是否读取系统 PAC,以及脚本中的域名和网段是否填写正确。官方 PAC 入口和示例见Clash Verge Rev Bypass 文档。

TUN 模式:局域网地址改排除网段

TUN 模式会把更广泛的系统流量导入虚拟网卡,因此系统代理绕过列表可能不再是主要控制点。Clash Verge Rev 官方文档将 TUN 绕过指向 TUN 流量排除;mihomo 的对应配置字段是 route-exclude-address,用于在自动路由时排除自定义子网,字段位置和当前配置格式可核对mihomo TUN 配置文档。

  1. 进入“设置→TUN”或“虚拟网卡模式”。
  2. 确认 TUN 已启用,并找到“排除自定义网段”。
  3. 按实际网络填写 IPv4 或 IPv6 CIDR,例如 192.168.0.0/16、10.0.0.0/8 或 fc00::/7。
  4. 应用设置后重新连接 NAS、打印机、路由器或本地服务。
  5. 如果 IP 能访问但域名不能访问,重点检查 DNS;如果 IP 也不能访问,重点检查路由、TUN 排除和其他 VPN。

不要把单个域名填进只接受 CIDR 的 TUN 排除字段。按域名控制时使用规则中的 DOMAIN 或 DOMAIN-SUFFIX;按地址范围控制时使用 route-exclude-address 或规则中的 IP-CIDR。

手动配置时,概念上的对应关系是:客户端的“排除自定义网段”最终对应 mihomo TUN 配置中的 route-exclude-address。字段是否能直接写入扩展配置,取决于当前 Clash Verge Rev 界面和配置合并方式,保存后必须检查最终配置是否成功加载。

DIRECT 规则:使用前置规则,不要在前置内容里写 MATCH

规则模式下,需要让指定域名、IP 或进程直连,应使用 DIRECT 规则。mihomo 官方说明规则按从上到下匹配,顶部优先级更高;MATCH 匹配所有未被前面规则命中的请求,通常应作为规则链末尾的兜底。规则类型和优先级可查看mihomo 路由规则文档。

最稳妥的操作是:右键订阅配置文件,选择“编辑规则”,把以下内容放进“前置规则”。这不是完整配置文件,只放新增例外项:

- DOMAIN,nas.example.internal,DIRECT - DOMAIN-SUFFIX,example.internal,DIRECT - IP-CIDR,192.168.1.0/24,DIRECT,no-resolve - PROCESS-NAME,example.exe,DIRECT - PROCESS-PATH,C:\Program Files\Example\example.exe,DIRECT

示例中的域名、网段、进程名和路径都要替换为真实目标。PROCESS-NAME 只填实际进程名;PROCESS-PATH 需要完整路径,Windows 反斜杠按当前界面要求填写。若内核没有启用进程识别,进程规则可能无法命中,判定应以日志为准。

前置规则里不要添加 MATCH。不要把 - MATCH,你的原代理策略组 放在自定义前置规则末尾,因为它会提前匹配所有剩余请求,使订阅后面的分流规则失效。Clash Verge Rev 的规则编辑文档明确建议把自定义规则放在前置位置,并将 MATCH 作为规则链末尾的兜底。

如果使用扩展配置,不要直接写一个新的 rules: 列表覆盖订阅原规则。Clash Verge Rev 文档说明,前置和后置规则已移动到订阅右键菜单的可视化“编辑规则”中;扩展配置主要用于配置项覆写或合并,详见Clash Verge Rev 扩展配置与脚本。如果使用扩展脚本,应把新增规则与原数组合并:

const prependRule = [ "DOMAIN,nas.example.internal,DIRECT", "IP-CIDR,192.168.1.0/24,DIRECT,no-resolve" ]; function main(config) { const oldrules = config["rules"] || []; config["rules"] = prependRule.concat(oldrules); return config; }

脚本入口、config.rules 数组和前置合并方式可核对Clash Verge Rev 自定义脚本文档。保存后检查最终规则列表:新增 DIRECT 应出现在订阅原规则之前,原有 MATCH 仍在规则链最后。

某个软件不走绕过:按软件自身代理、规则和 TUN 逐层排查

“某个软件仍走代理”不一定是绕过格式错误。先打开软件自身的网络或代理设置,确认它没有单独指定 HTTP、SOCKS 或 PAC;再检查系统环境变量,最后才用进程规则。部分软件不读取系统代理,或使用独立代理、QUIC、其他 VPN 和虚拟网卡,单条绕过规则可能无法覆盖全部连接。

软件绕过的排查顺序
顺序检查项操作判定标准
1软件自身代理查看软件网络设置,临时关闭独立代理或改为跟随系统重新启动软件后请求路径改变
2系统环境变量检查 http_proxy、https_proxy、no_proxy目标主机出现在 no_proxy 后,重启软件再测试
3进程规则使用 PROCESS-NAME 或 PROCESS-PATH 配置 DIRECT日志显示该进程请求命中 DIRECT
4TUN 接管临时关闭 TUN,再测试同一软件关闭 TUN 后恢复,说明应检查 TUN 排除或路由

进程规则示例:- PROCESS-NAME,example.exe,DIRECT,或 - PROCESS-PATH,C:\Program Files\Example\example.exe,DIRECT。如果软件同时使用子进程、服务进程或独立网络层,需要分别确认实际发起连接的进程;未观察到命中日志前,不要断定规则已经生效。

验证绕过是否生效:看日志,不只看网页能否打开

  1. 看代理模式:规则测试必须处于规则模式;全局模式下不要用 DIRECT 规则判断结果。
  2. 看请求日志:访问目标地址时,检查命中的规则类型和出站名称,目标应显示 DIRECT 或对应排除路径。
  3. 测 IP 与域名:先访问真实 IP,再访问域名。IP 通、域名不通通常优先查 DNS;两者都不通则查路由、TUN 或防火墙。
  4. 重启目标软件:部分应用只在启动时读取系统代理和环境变量。
  5. 反向测试:临时删除绕过项,确认目标请求会回到原代理路径,再恢复配置。

如果订阅更新后绕过规则消失,通常是自定义内容放在了会被重新生成的订阅文件中。优先使用“编辑规则”的前置规则,或使用扩展脚本;完成更新后检查最终规则顺序。出现端口占用、TUN 无法启动或系统代理无法保存时,先关闭其他代理软件和 VPN,再查看 Clash Verge Rev 日志,未核实的版本差异不要套用。

常见场景的最小配置可以这样选:NAS、路由器和打印机优先使用 TUN 排除或局域网 IP-CIDR;公司内网域名使用 DOMAIN-SUFFIX,DIRECT 并同时检查内网 DNS;本地开发服务先用 localhost 和回环地址;某个桌面软件先查自身代理,再测试进程规则。每次只新增一个域名、IP、网段或进程,确认日志和访问结果一致后再扩大范围。

常见问题

Clash Verge 设置了绕过,为什么仍然走代理?

先确认当前是否开启 TUN 或处于全局模式。系统代理绕过只影响遵循系统代理的应用;TUN 应检查排除自定义网段;规则分流则要切换到规则模式,并确认 DIRECT 位于原有 MATCH 之前。

Windows 的代理绕过可以填写 192.168.0.0/16 吗?

Windows 系统代理例外列表常见的是主机名、IP、通配符、分号分隔和 <local>,例如 192.168.*;不要直接把 CIDR 当作 Windows 例外格式。需要按 CIDR 排除时,优先检查 Clash Verge Rev 的 TUN 排除字段或使用 IP-CIDR 规则。

macOS 的绕过列表在哪里设置?

优先在 Clash Verge Rev 的“设置→系统代理→代理绕过设置”中修改。系统层可进入系统设置→网络→当前网络服务→详细信息→代理,核对“绕过这些主机与域名”字段;多个项目通常用逗号分隔。

为什么全局模式下 DIRECT 规则不生效?

全局模式不会按普通规则列表进行分流,所以 DIRECT 规则不会按预期命中。切换到规则模式后,再查看日志中的命中规则和出站类型。

用 rules 写进扩展配置后,为什么订阅分流消失了?

扩展配置中的 rules 列表可能覆盖原有规则,导致订阅规则和末尾 MATCH 丢失。优先使用订阅右键菜单的“编辑规则→前置规则”,或用脚本把新增规则 concat 到原 config.rules 前面。

如何让某个软件绕过 Clash Verge?

先查软件自身代理和环境变量,再测试 PROCESS-NAME 或 PROCESS-PATH 规则。进程名、完整路径必须替换为真实值;软件使用独立代理、子进程或其他网络层时,单条规则可能无法覆盖全部连接。

TUN 模式下局域网 NAS 仍然打不开怎么办?

先用真实 IP 测试,再把实际局域网 CIDR 加入 TUN 的排除自定义网段。IP 能通但域名不通时查 DNS;IP 也不通时检查路由、其他 VPN、防火墙和 TUN 日志。

相关阅读

参考资料

  1. Clash Verge Rev Docs:Bypass(clashverge.dev)
  2. Clash Verge Rev:自定义规则配置(clashverge.dev)
  3. Clash Verge Rev:扩展配置与脚本(clashverge.dev)
  4. Clash Verge Rev:自定义脚本(clashverge.dev)
  5. mihomo:Route Rules
  6. mihomo:Tun 配置
  7. Microsoft Learn:HKLMProxyOverride
  8. Apple Support:Change proxy settings on Mac
  9. GNOME Help:Define proxy settings(help.gnome.org)
  10. KDE Documentation:Proxy(docs.kde.org)