← sumi

Clash Verge 设置页每个开关的原理

基于 Clash Verge Rev + mihomo 内核 · 对照官方文档与源码整理,部分 Linux / 安卓实测 · 2026-10-19

Clash Verge 建议:开虚拟网卡时,保持 IPv6 开启

否则电脑原有的 IPv6 流量可能绕过 Clash 直连。

会不会漏,取决于程序读不读系统代理。

  • 读系统代理的(Chrome 等浏览器):不受 Clash IPv6 开关影响,IPv6 也交给节点,不会显示本地。
  • 不读系统代理的(curl、很多命令行工具、Node.js 程序)走虚拟网卡:
    • Clash IPv6 开 → 节点
    • Clash IPv6 关 + 严格路由开 → N/A(被拦)
    • Clash IPv6 关 + 严格路由关 → 本地,漏出

上网分两步

  1. 查地址:向 DNS 问出 google.com 的 IP。
  2. 连过去:用这个 IP 建立连接。

1系统设置

Clash Verge 设置页
设置页全貌

系统代理

只对遵守系统代理的程序有效(浏览器、多数常用软件);命令行、游戏等常会绕过。

虚拟网卡模式(TUN)

给电脑装一块「假网卡」,再改路由表,让所有流量都从它这里过。

可同时开:守规矩的走端口,其余走虚拟网卡,殊途同归。

2虚拟网卡模式的细项

虚拟网卡模式设置
点「虚拟网卡模式」旁边的齿轮打开

TUN 模式堆栈

虚拟网卡收到的是零散数据包,需拼回「连接」才能分流。堆栈即拼装方式:

选项 原理
System 系统原生处理,占用低;防火墙需放行 Clash。
gVisor 程序内处理,隔离好,兼容稳。
Mixed TCP 用 System,UDP 用 gVisor
Mips mihomo 自研(2026.9),纯 Go;当前默认。

四种都能用,选默认即可。

虚拟网卡名称

只是个名字。macOS 上必须以 utun 开头。

自动设置全局路由

将所有流量路由至虚拟网卡。必须开。

自动重定向(仅 Linux)

利用 Linux 自带的防火墙(nftables),让系统直接把 TCP 连接交给 Clash,省掉上面「拼包」那一步:

只影响 TCP,UDP 照旧走虚拟网卡。sing-box 官方说明:性能更好,还能避免和 Docker 冲突,Linux 上「始终推荐」打开。Windows / macOS 上无效。

严格路由

更强硬地防止流量绕过虚拟网卡。不同系统效果不同:

副作用:VirtualBox 这类程序可能出问题。

自动选择流量出口接口

自动识别真实出口网卡。必须开,否则可能回环断网。多网络时官方建议手动指定。

DNS 劫持

any:53:所有程序发出的 DNS 查询(53 端口)都被截下来交给 Clash 回答,「查地址」这一步也在 Clash 手里。局限:Windows / macOS 上,发给局域网地址(比如路由器)的 DNS 查询劫持不了。

最大传输单元(MTU)

单包最大尺寸,默认即可。

排除自定义网段

填进去的地址不进虚拟网卡,直接走真实网卡。例如 192.168.0.0/16:访问家里的 NAS、打印机时不经过 Clash。

3Clash 设置

局域网连接(allow-lan)

允许其他设备(手机、平板)把这台电脑当代理服务器用:它们在网络设置里填「电脑的局域网 IP:7897」,就能通过这台电脑翻墙。只自己用的话保持关闭,免得同网络的其他人也能连上。

开着时的风险
  • 门是敞开的:不要密码,谁都能进(mihomo 文档:lan-allowed-ips 默认 0.0.0.0/0 和 ::/0)。
  • 别人翻墙,扣的是你的流量,留的是你账号的记录。
  • 公共 Wi-Fi 上最危险:有人扫一下端口,你的电脑就成了大家的代理。
  • 局域网外的人也可能进来:电脑有公网 IPv6、路由器又没拦,就不止局域网了。
注意事项
  • 自己用:关着。
  • 出门连公共 Wi-Fi 前,看一眼它关了没。
  • 真要给别的设备用:加个密码(authentication,用户名:密码),或者用 lan-allowed-ips 只放行自家网段,用完记得关。

DNS 覆写

见 第 4 节。

IPv6

对应配置顶层的 ipv6,官方说明:「是否允许内核接受 IPv6 流量」。关掉后,内核会:

即使开启,若启动时本机无全局 IPv6 地址(不含 fe80::),虚拟网卡仍不配 IPv6。仅在启动或重载时检测。

(本地网络没有 IPv6,Clash 虚拟网卡的 IPv6 也会是 N/A)

建议:开虚拟网卡时,保持 IPv6 开启否则电脑原有的 IPv6 流量可能绕过 Clash 直连。

详情

实测(只在 Linux 电脑上测过 · 系统代理 + 虚拟网卡同时开):

会不会漏,取决于程序读不读系统代理。

IPv6 开 IPv6 关 + 严格路由开 IPv6 关 + 严格路由关
读系统代理(Chrome 等) 节点 节点 节点
不读系统代理(curl、命令行、Node.js 程序) 节点 N/A 本地

节点没有 IPv6 时,「节点」都变成 N/A。

Windows 上严格路由只防 DNS 绕过(见第 2 节),拦不住这类 IPv6 流量,未实测。

端口设置

7897:混合代理端口(HTTP / SOCKS5),系统代理与局域网设备均连此端口。被占用时再改。

4DNS 覆写

DNS 覆写设置
点「DNS 覆写」旁边的齿轮打开

总开关是干什么的

订阅本身带有一套 DNS 设置。

下面这些项只在覆写打开时生效。

DNS 监听地址

:53 是 Clash 内置 DNS 对外开的一扇门,给手动把 DNS 指过来的设备用:本机填 127.0.0.1,局域网其他设备填电脑的 IP。DNS 劫持走的是内部通道,不经过这扇门,这里空着也照样劫持。

增强模式:fake-ip

收到查询后不真查,立即从 198.18.0.0/16 分配假地址并记录映射;连接时还原域名交给节点。

redir-host 则真实解析,返回真 IP。

Fake IP 范围 / Fake IP 范围(IPv6)

假地址池,默认 198.18.0.1/16(属测试保留段 198.18.0.0/15,不与真实地址冲突)。IPv6 版仅在 IPv6 开启时使用。

Fake IP 过滤模式

IPv6(启用 IPv6 DNS 解析)

对应 dns.ipv6。关掉时,有人查 IPv6 地址,就回一个空结果,程序自然只用 IPv4。它和 第 3 节的 IPv6 开关是「与」的关系:两个都开,DNS 才会回 IPv6 地址。

5IPv6 专题:电脑和手机为什么不一样

同样是关掉 IPv6

电脑(Verge 虚拟网卡) 安卓(Clash Meta / FlClash)
结果 不读系统代理的程序,IPv6 流量照原路由直接出去,绕过 Clash(Linux 已实测,见第 3 节 IPv6) IPv6 流量被系统拦截,App 自动退回 IPv4(已实测,见下文)
原因 虚拟网卡只是多出的一块网卡,系统只按路由表走;没有 IPv6 路由,IPv6 就继续走真实网卡 安卓的 VPN 统一由系统接口 VpnService 管理。按谷歌的规定,VPN 没接管的地址类型,系统一律拦截

安卓手机上,没接管的就拦(谷歌自己定的规矩); 电脑上,没接管的就放。 Linux 电脑开了严格路由,就变得跟安卓手机一样会拦(实测过,显示 N/A)。 iPhone 没有测试。

安卓上的 IPv6 开关

Clash Meta for Android 网络设置
Clash Meta for Android · 网络设置
位置 管什么
网络 → Allow Ipv6 手机的 IPv6 流量能不能进入 Clash(VPN 那一层)
覆写 → IPv6 内核是否处理 IPv6(同电脑)
覆写 → DNS → IPv6 DNS 是否返回 IPv6 地址(同电脑上的 DNS 覆写 → IPv6)

「不修改」= 用订阅值;订阅未写则用内核默认(顶层 IPv6 默认开)。

手机比电脑多出「Allow Ipv6」:手机上 VPN 是 App 向安卓系统申请的,申请时要单独说明接不接管 IPv6;电脑上虚拟网卡由内核自己建,设置页一个 IPv6 开关就够了。

手机:只关「Allow Ipv6」即可,IPv6 由系统拦截,无泄漏(已实测);全开亦可,不影响代理流量。

全开会怎样

实测:Allow Ipv6 开 / 关

条件:Clash Meta for Android · 全局模式 · 覆写里的 IPv6 保持「不修改」。

节点:Cox(美国,有 IPv6)、So-net(日本,没有 IPv6)。

方法:浏览器打开 browserleaks.com/ip;再直接连 Telegram 的两个 IPv6 地址各数次,同时看日志。

Allow Ipv6 节点 browserleaks IPv6 直接连 IPv6 地址
开 Cox(有) Cox 节点的 IPv6 通(偶有超时)
开 So-net(无) n/a 失败,节点回 error code 3
关 Cox(有) n/a 被系统拦下,日志里没有记录
关 So-net(无) n/a 被系统拦下,日志里没有记录

四项都没有出现本地地址。

# 开 + Cox:用 IPv6 进门,直接连 IPv6 地址,连上
[TCP] [fdfe:dcba:9876::1]:45176 --> [2001:b28:f23d:f001::a]:443 using GLOBAL

# 开 + So-net:节点立刻回复「网络不可达」
[TCP] dial GLOBAL [fdfe:dcba:9876::1]:45490 --> [2001:b28:f23d:f001::a]:443 error: ... server returned socks5 error code 3

# 开 + Cox,偶发:节点没回话
[TCP] dial GLOBAL [fdfe:dcba:9876::1]:45192 --> [2001:b28:f23d:f001::a]:443 error: ... TIMEOUT

怎么看日志

结论

6推荐设置一览

选项 建议
虚拟网卡模式 需要接管所有程序时开
系统代理 开
局域网连接 关(不给其他设备共享时)
DNS 覆写 关
IPv6 开(开着虚拟网卡时尤其要开,见第 3 节)
统一延迟 开
日志等级 info,排查问题时改 debug
TUN 堆栈 默认
自动设置全局路由 / 自动选择出口接口 开
自动重定向 Linux 可以开;其他系统无效
严格路由 关(Linux 上如果关了 IPv6,建议打开)
DNS 劫持 / MTU / 排除网段 默认

后记:这一页是怎么测出来的

第 3、5 节里的实测,起因是网页版 Claude 的一连串追问。

较真的 Claude
较真的 Claude
最初的结论与追问
追问与回答

最初的结论 ①②③,和 Claude 的追问

节点对照
节点对照

节点对照:So-net、AT&T 没有 IPv6,Cox 有

你自己去测试吧
「你自己去测试吧」
其他的随便玩都可以
「其他的随便玩都可以」——测试交给了 Claude Code

测出来的结果:① 只在「不读系统代理 + 严格路由关」时成立,读系统代理的浏览器从不显示本地。详见第 3 节 IPv6。