@ladderkitlab/hub-kb 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSE-CONTENT +12 -0
- package/README.md +38 -0
- package/dist/main.js +1683 -0
- package/package.json +7 -0
- package/snapshot/index.json +1 -0
- package/snapshot/projection.json +1 -0
- package/snapshot/release-manifest.json +22 -0
- package/snapshot/t2s-min.json +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"schema_version":1,"content_version":"4c23094cec7c9548","entries":{"all-nodes-timeout":{"id":"all-nodes-timeout","type":"troubleshoot","title":"所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方","aliases":["所有节点 Timeout","所有节点 Error","所有节点都超时","节点全部超时","节点全红","测速全红","延迟全红","机场节点全部超时","机场节点突然全部不能用","Clash Verge 只剩一两个节点能用","v2rayN 测速全是 -1","v2rayN Tcping 正常 真连接 -1","v2rayNG 测试配置真连接 -1","真连接全部 -1","测试真连接 运行 Core 失败","运行 Core 失败,请查看提示信息","手机能用电脑全部超时","换了宽带节点全红","VMess 系统时间不对连不上","invalid timestamp perhaps unsynchronized time","bad timestamp","The feature \"allowInsecure\" has been removed","allowInsecure 跳过证书验证失效"],"primary_topic":"troubleshooting","topics":["troubleshooting","nodes-latency","clash-verge-rev","v2rayn","v2rayng"],"intents":[],"applicability":{"client":["clash-verge-rev","v2rayn","v2rayng"],"os":["windows","macos","linux","android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方\n\n主题:`排错`\n适用:clash-verge-rev/v2rayn/v2rayng / windows/macos/linux/android / any\n最后验证:2026-09-27\n\n原本能用的订阅,某天打开所有节点都显示 `Timeout` 或 `Error`(Clash Verge Rev),或者全是 -1(v2rayN、v2rayNG 的真连接测试),先别急着认定节点全挂了、或者机场出了问题。**测速全红不等于不能用**:测速只是经节点去访问一个测速地址,那个地址不回应时,能用的节点也显示失败。反过来,v2rayN 的 Tcping 有数也不说明节点能用,它只测到服务器端口。安卓上本条只覆盖 v2rayNG。\n\n**只是部分节点红**:先换一个测出毫秒数的节点用(作者建议);全部红再往下查。\n\n**Clash Verge Rev 刚点过测速、没弹测速地址格式的英文提示,仍然全是 `Error`**:先看首页「系统信息」卡片的「运行模式」(「内核未运行」这个状态 2.5.5 起才有)。显示「内核未运行」的,是内核停了,网页这时也打不开,但不是节点或服务方的问题,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 处理(2.5.6 在 Linux 上实测:内核停着时点测速全是 `Error`)。用服务模式的,服务被停掉时这一行仍显示「服务模式」:先完全退出再打开,重开时弹「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 处理(Windows 上实测)。2.5.4 及更早的版本内核停了也照样显示「用户模式」或「服务模式」,看不出来,先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 确认内核在跑。\n\n按下面四步依次排查,每一步都是你自己能做的对照:\n\n1. 选中一个失败的节点,网页到底能不能打开?能打开,问题只在测速(v2rayN 另查有没有「运行 Core 失败」)。\n2. 这台设备的系统时间对不对?VMess 这类靠时间认证的协议,时间错了就连不上。\n3. 失败的是不是都开了「跳过证书验证」(allowInsecure)、而且看得到对应的内核报错?Xray 内核过了某个日期就不再接受这种节点。用 v2rayN 的,这一步按 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) 查。\n4. 换一台设备、这台设备换一个网络,能不能用?两种都试一下。\n\n前三步只看你这台设备;最后一步拿别处对照:别处能用,差别在这台设备或这个网络;试过的设备和网络都不行,带着这些对照结果去找服务方。\n\n- **some-nodes-fail**(只有一部分节点失败):还有节点测得出毫秒数,说明你的设备、网络和客户端大体是通的,换一个有数字的节点用就行(作者建议)。\n- **test-url-not-answering**(测速地址不回应):测速失败,网页却能打开。三个客户端各有默认测速地址,这个地址在你的网络里经节点打不开、太慢,或者回了客户端不接受的状态码,测速就失败。实测把测速地址换成一个不回应的地址,Clash Verge Rev 里所有节点全部 `Timeout`、v2rayNG 里全部 -1(服务端日志显示测速请求确实经过了节点);在 Clash Verge Rev 里把其中一个节点设为当前节点,经它访问测试页照样成功。**这对你意味着**:节点能用;换个测速地址后能测出毫秒数,就不用找服务方。换了地址仍然全部失败,测速失败的原因还没找到,按最后一步记下客户端、测速地址和结果继续求助。\n- **speedtest-core-failed**(v2rayN 测速用的临时内核没起来):v2rayN 测速时另起临时内核(和正在用的连接不是同一个进程),占用另一个本地端口。「内核」就是客户端里真正负责连节点的那个程序。按源码,它起不来时列表里该节点的**速度那一列**会显示「运行 Core 失败,请查看提示信息」;只测一个节点时连这句都不写,延迟列一直停在「测试中...」。官方 FAQ 的说法是「信息框中显示运行 core 失败」,多半是配置错误、当前内核已经不支持这份配置,或者本地监听端口被其他程序(比如虚拟机)占用([v2rayN 官方 FAQ](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe),链接指向这一页最近一次改动 e66de50 那一版)。这时正在用的连接可能完全正常。以上按源码和 FAQ,没有运行 v2rayN。\n- **device-clock-off**(设备时间不对):Xray 官方文档写明 VMess 依赖系统时间、**与时区无关**;VLESS 不依赖系统时间。Shadowsocks 2022 也校验时间(按 sing-shadowsocks 源码,没有实测)。实测把手机时钟拨快 10 分钟,VMess 节点立刻 -1,服务端日志记 `bad timestamp`;同一时刻经典 Shadowsocks(aes-128-gcm)节点照常,另一台时间正确的电脑连同一个 VMess 节点也照常。服务端是 Xray 时,同样的情况返回的错误是 `invalid timestamp, perhaps unsynchronized time`。**怎么看节点是什么协议**:Clash Verge Rev 的代理页上,节点卡片默认就显示类型(比如 `Vmess`),看不到的点一下组标题栏上提示「展示节点细节」的眼睛按钮(Linux 上实测);v2rayN 列表有「类型」列;v2rayNG 列表里每个节点有一行类型(比如 `VMESS`)。Shadowsocks 2022 的类型也写作 Shadowsocks,要看加密方式是不是以 `2022-blake3-` 开头。**这对你意味着**:这两行日志在服务端,你看不到;你这边的表现是 VMess(以及可能的 Shadowsocks 2022)节点全失败,而实测经典 Shadowsocks 节点不受影响,其它协议没有逐个测过。\n- **insecure-removed-after-date**(跳过证书验证的节点到期失效):官方 Xray(按 v26.3.27 的源码)在 2026-06-01(UTC)之后,遇到开了 allowInsecure 的节点直接报 `The feature \"allowInsecure\" has been removed…` 并拒绝加载配置;在那之前只打一条警告,警告里写着请联系服务提供方。v2rayNG 2.2.6 自带的是一个改过的 Xray,把日期推到 2026-08-01;它连接这种节点时还会弹出「将在 2026.8.1 移除跳过证书验证」的警告(按源码)。**判断用的是运行内核那台设备自己的日期**:实测在 v2rayNG 2.2.6 上,这类节点按当前日期测是 -1,把设备时钟拨回 2026-07-31 就能测通。**这句报错在哪能看到**:v2rayNG 测速时它只出现在系统日志里,普通界面看不到(实测);点启动连接时内核起不来,v2rayNG 会把错误信息弹成一条提示,里面可能就是这句(按源码,没有实测);v2rayN 上这句只出在 7.24.4 及以前、或用「添加自定义配置」导入的配置里,按官方 FAQ 的说法,内核的日志显示在界面上(没有实测)。**光凭失败的节点都开了这一项,不能断定就是它**:看不到这句报错的,排查会接着往下对照别的设备和网络。**这对你意味着**:「某天突然全红」可能就是这个日子到了,节点本身没变;证书本身过不了校验的,要服务方改节点,v2rayNG 里没有开关能救回来。用 v2rayN 的,报错、提示和改法都不一样,见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)。\n- **this-side-differs**(这台设备或这个网络有差别):同一份订阅在别的设备或别的网络上能用,这台不行——差别在这台设备(客户端、版本、设置)或这个网络上。只换了网络就能用的,这个网络上还能查什么、什么时候交给服务方,见 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)。\n- **fails-everywhere**(多处都无法使用):试过的设备和网络都不行,时间也对。这几次对照用的是同一份订阅,所以问题出在节点本身、还是订阅里大家共用的配置,仍然分不清。**这不等于能判定服务方出了故障**,只是你这边能排除的都排除了,该把对照结果交给服务方。\n\n## 三个客户端怎么判「失败」\n\nmihomo 策略组的自动检查不写 `timeout` 时是 5 秒,但你手动点测速时,各家的测速地址、时限、判失败的方式都不一样,同一个节点在不同客户端里结果可能不同。\n\n| 客户端 | 默认测速地址 | 时限 | 什么算失败 |\n|---|---|---|---|\n| Clash Verge Rev 2.5.2、2.5.6 | 组标题栏手填的地址 → 订阅里组的 `url` → 「默认测试链接」(先后顺序按源码);都没有时 `cp.cloudflare.com/generate_204`(http) | 「测试超时时间」,默认 10000 毫秒 | 手动测速失败一般显示 `Timeout`。2.5.2 里订阅用 proxy-providers 引入的节点显示 `Error`;2.5.5 起这类节点手动测失败也显示 `Timeout`,看到 `Error` 多半是这次还没有手动结果、显示的是内核记下的上一次失败(按源码,见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning));2.5.5 起,点了测速仍全是 `Error` 的,先确认点组标题栏测速按钮时没弹出以 `Test URL must start with` 开头的英文提示:弹了说明手填的测速地址格式不对、这次没测,显示的可能还是旧结果(按源码,地址怎么改见上面 test-url-not-answering);确实测了仍全是 `Error`,可能是这次调用本身出错,例如内核停了(见上文开头) |\n| v2rayN 7.24.9、7.25.4「测试真连接延迟」 | 「真连接测试地址」,默认 `www.google.com/generate_204`(https) | 7.24.9 总共 9 秒,其中建连 3 秒;7.25.4 总共 5 秒,建连也是 5 秒(按源码) | 出任何错记 -1,不看状态码;临时内核起不来时不记 -1(见上面 speedtest-core-failed) |\n| v2rayN 7.24.9、7.25.4「测试延迟 Tcping」 | 不访问网址,只连服务器端口 | 5 秒 | 5 秒内没连上记 -1;连接被拒时 7.24.9 不写结果、7.25.4 也记 -1;域名解析失败时两版都不写结果,停在「测试中...」(按源码) |\n| v2rayNG 2.2.6「测试配置真连接」 | 「真连接延迟测试网址」,默认 `www.gstatic.com/generate_204`(https) | 普通节点先做 1 秒 TCP 预检;每次请求 12 秒、最多 2 次 | 预检不通、或回应不是 200/204,记 -1(状态码实测只试过 403) |\n\n表里的出处:Clash Verge Rev 见,v2rayN 见,v2rayNG 见。\n\n**Clash Verge Rev 的 `Timeout` 不一定是超时。** 它用的 mihomo 内核其实分得清两种失败:等满时限的回 504 `Timeout`,更早出错的(比如端口拒绝连接)回 503 `An error occurred in the delay test`;在 Clash Verge Rev 2.5.2 内置的内核上直接调接口,实测也是这两种结果。但 Clash Verge Rev 2.5.2 与 2.5.6 收到任何非成功回应都记成 0,界面把 0 显示成 `Timeout`。实测:端口没人监听的节点很快(不到一秒)就显示 `Timeout`,不可达的节点约 10 秒才显示 `Timeout`,全程没有出现 `Error`。**这对你意味着**:一点就出来的 `Timeout`,多半是连接被拒绝或服务端当场拒绝了认证(这次实测的服务端是 sing-box,用户 ID 不对时命令行 mihomo 的接口也是立刻返回失败,Clash Verge Rev 界面上没有测这一种);等满时限的,可能是真没回应,也可能是服务端在认证失败后故意拖着不回——Xray 的 VMess 就会先把连接上的数据读一阵再断开(按源码,没有实测)。光看快慢分不出来,把快慢如实告诉服务方就行。`Error` 什么时候出现、和 `Timeout` 的区别见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)。\n\n**Clash Verge Rev 里没法拿 `DIRECT` 做对照**:2.5.2 与 2.5.6 对 `DIRECT`、`REJECT` 不显示延迟,实测组测速时 `DIRECT` 也不显示数值。\n\n**v2rayN 的 Tcping 通了,不说明节点能用。** 它只测到服务器端口的 TCP 连接,不走代理协议,口令、协议参数、证书设置错了照样出数字。要判断节点能不能用,看真连接。\n\n## 这些结论是怎么核对的\n\n实机跑过 macOS 上的 Clash Verge Rev 2.5.2 和安卓模拟器里的 v2rayNG 2.2.6,另用命令行 mihomo v1.19.31 复核;Clash Verge Rev 2.5.6 只在 Linux 上看过内核停了时测速全是 `Error`,其余按源码核对(与测速有关的部分和 2.5.5 相同);v2rayN 按 7.24.9 的源码与官方 wiki 核对,表里真连接的时限与 Tcping 的失败记法另按 7.25.4 的源码核对。\n\n- 没有运行 v2rayN;Clash Verge Rev 2.5.6 除上面那一种、以及 Windows 上服务被停掉后的界面与重开对话框外,没有实际操作过,2.5.2 的 Windows、Linux 也没有。\n- 测试节点的服务端只用了 sing-box,你连的服务端可能表现不同。\n- 全部实验在本机回环上做,没有真实网络里的丢包、封锁或服务方故障。\n\n## 取证\n- **all-nodes-failing**:测速之后,是**所有**节点都失败吗?(Clash Verge Rev 显示 `Timeout` 或 `Error`,v2rayN、v2rayNG 显示 -1。还有节点测出了毫秒数的,选「失败」。**Clash Verge Rev 刚点过测速仍然全是 `Error` 的,先别答**:点组表头测速时弹出以 `Test URL must start with` 开头的英文提示的,是手填的测速地址格式不对、这次没测,先在代理页该组表头的「延迟测试链接」里把地址改成以 http:// 或 https:// 开头(或清空)再测,再回来答;没弹的,看首页「系统信息」卡片的「运行模式」(「内核未运行」这个状态 2.5.5 起才有),显示「内核未运行」的是内核停了,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 处理,不用往下查节点;用服务模式的,服务被停掉时这一行仍显示「服务模式」,先完全退出再打开(「退出」关不掉的,到任务管理器结束「Clash Verge」),重开时弹「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)「对话框『需要更新系统服务』」一节里「右边是『修复服务』」那一条处理,不用往下查节点(Windows 上实测);没弹这个对话框、2.5.5 起、「运行模式」正常的,照常回答这一问;2.5.4 及更早的版本内核停了也照样显示「用户模式」或「服务模式」,先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 确认内核在跑)\n pass → failed-node-still-browses;fail → some-nodes-fail;unknown → failed-node-still-browses\n- **failed-node-still-browses**:选一个测速失败的节点,照常把它设为当前节点、打开代理,平时要经代理才能打开的网页能打开吗?(怎么操作:Clash Verge Rev 在「代理」页点这个节点,再到「设置」页打开「系统代理」,见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup);v2rayN 单击选中节点按回车或右键「设为活动」,再把底部状态栏的系统代理下拉框改成「自动配置系统代理」,见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run);v2rayNG 点这个节点选中,再点右下角的启动按钮,见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)。**测速红不等于不能用**:实测测速地址不回应时,所有节点都显示失败,同一个节点照样能转发。网页打不开、又拿不准开关和模式设没设对的:Clash Verge Rev 先按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 排除一遍;v2rayNG 回 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run) 核对选节点和启动那两步(测速有毫秒数、网页却打不开的是另一种情况,见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet));v2rayN 本站还没有对应的排查条目(开了 TUN 的见 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet);从那一条转过来、关掉 TUN 用系统代理也打不开的,接着往下答),先回上手条目核对选节点和打开代理那两步)\n pass → speedtest-core-starts;fail → device-clock-right;unknown → device-clock-right\n- **speedtest-core-starts**:用 v2rayN 做「测试真连接延迟」之后,列表的速度那一列和下方信息栏里**都没有**出现「运行 Core 失败,请查看提示信息」,延迟那一列也没有一直停在「测试中...」不动吗?(都没有,选「通过」;出现过其中一种,选「失败」。用 Clash Verge Rev、v2rayNG 的直接选「通过」)\n pass → test-url-not-answering;fail → speedtest-core-failed;unknown → escalate\n- **device-clock-right**:这台设备的**实际时间**对吗?(系统设置里开着「自动设置日期和时间」(各系统叫法不同)的,选「通过」。没开的,拿一台自动对时的手机比:两边时区相同、钟面显示的时间也一致,选「通过」;时区相同、钟面却对不上,或者你手动拨过时间(比如时区设错之后为了让钟面「显示对」而拨过),选「失败」;两边时区不同、没法直接比钟面的,选「无法判断」。VMess 节点看的是实际时间,时区设成哪里本身没有影响)\n pass → nodes-not-all-insecure;fail → device-clock-off;unknown → nodes-not-all-insecure\n- **nodes-not-all-insecure**:失败的节点里,也有**没开**「跳过证书验证」的吗?(**用 v2rayN 的,先按 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) 查完再回来**:7.24.5 起的 v2rayN 证书过不了校验时不报下一问那句,要看的是 `x509:`,见那一条;那里查过、没看到 `x509:` 的,这一问选「无法判断」。v2rayN、v2rayNG 的节点设置里叫「跳过证书验证 (allowInsecure)」;v2rayNG 列表里开了它的节点,类型那一行带 `insecure`,比如 `TROJAN / tls insecure`。用 Clash Verge Rev 的选「无法判断」:下面说的日期限制查到的是 Xray 内核,Clash Verge Rev 用的 mihomo 内核没有核对)\n pass → works-elsewhere;fail → insecure-error-not-shown;unknown → works-elsewhere\n- **insecure-error-not-shown**:失败的节点都开了「跳过证书验证」,本身还不能说明失败就是它造成的,要看到内核的这句报错才算:你**没有**看到 `The feature \"allowInsecure\" has been removed` 吗?(v2rayNG 测速时这句只进系统日志,普通界面上看不到(实测);可以到侧边栏的「Logcat」页下拉刷新后搜 `allowInsecure`,那一页读的是系统日志里内核等几个标签,见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs),这句会不会出现在那一页本条没有实测。点启动连接时内核起不来,v2rayNG 会把错误信息弹成一条提示,里面可能就是这句(按源码,没有实测)。v2rayN 上这句只出在 7.24.4 及以前、或用「添加自定义配置」导入的配置里(见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed));按官方 FAQ 的说法,内核的日志显示在界面上(没有实测)。看到了这句选「失败」;确认没有选「通过」;找不到日志或拿不准,选「无法判断」)\n pass → works-elsewhere;fail → insecure-removed-after-date;unknown → works-elsewhere\n- **works-elsewhere**:同一份订阅,换一台设备(比如手机),或者这台设备换一个网络(比如改连手机热点),能用吗?(有一种能用,选「通过」;两种都试过、都不能用,才选「失败」;只试了一种、不能用的,先补试另一种,补不了选「无法判断」)\n pass → this-side-differs;fail → fails-everywhere;unknown → escalate\n\n## 原因\n- **some-nodes-fail**(可能性 high)→ 修复 use-a-working-node\n- **test-url-not-answering**(可能性 high)→ 修复 change-test-url\n- **speedtest-core-failed**(可能性 medium)→ 修复 read-speedtest-core-error\n- **device-clock-off**(可能性 medium)→ 修复 sync-device-clock\n- **insecure-removed-after-date**(可能性 medium)→ 修复 replace-insecure-nodes\n- **this-side-differs**(可能性 medium)→ 修复 compare-with-working-side\n- **fails-everywhere**(可能性 medium)→ 修复 report-with-comparisons\n\n## 修复\n### use-a-working-node\n1. 先换一个测出了毫秒数的节点用(作者建议):只是一部分节点红,说明你这台设备、这个网络和客户端大体是通的,不用往下查时钟、证书那一套。那几个失败的节点如果一直是这样,把节点名告诉服务方就行(**不要附上订阅链接、节点地址或口令**)。\n验证:browse-with-working-node\n\n### change-test-url\n1. 换一个测速地址再测。**Clash Verge Rev**:测速地址按这个先后取——代理页这个组标题栏上「延迟测试链接」按钮点开的输入框里手填的地址 → 订阅里这个组自己写的测速地址(`url`)→「设置」→「杂项设置」→「默认测试链接」→ 都没有时用 Cloudflare 的 `cp.cloudflare.com/generate_204`(走 http)。所以**先点开那个按钮看一眼输入框**:填过地址的,直接改那里或清空(它会一直存在这台电脑上);手填的地址要以 `http` 或 `https` 加 `://` 开头:2.5.6 里不这样写的话,点组标题栏上的测速按钮只弹一条英文提示(大意是测速地址必须以 http 或 https 开头)、不会测;单个节点上点测速不做这项检查,会直接拿这个地址去测(都按源码,2.5.2 没有这项检查);订阅里的组自带测速地址时,改「默认测试链接」对这个组不起作用,也要在这个输入框里填。这个先后顺序按源码,实测只验证了组里没写 `url` 时「默认测试链接」生效。「默认测试链接」旁边的「测试超时时间」默认 10000 毫秒。**v2rayN**:设置里的「真连接测试地址」,默认 `www.google.com/generate_204`(https),下拉里还有几个预置地址。**v2rayNG**:「设置」→「真连接延迟测试网址」,默认 `www.gstatic.com/generate_204`(https)。换成哪个地址是作者建议:挑一个你的网络经节点能打开的 `generate_204` 地址。**自己填地址要注意**:v2rayNG 只认 200 或 204 这两种回应,别的状态码(实测 403)同样记 -1;v2rayN 的真连接和 Clash Verge Rev 的手动测速不看状态码。**换了地址仍然全红的**,记下换过哪些地址后,把改过的测速地址改回原来的值(Clash Verge Rev 那个输入框原来是空的,就把手填的清空)。\n验证:retest-shows-numbers\n\n### read-speedtest-core-error\n1. 按 v2rayN 官方 FAQ 的做法,把设置里的「日志等级」改成 Debug(改之前记下原来的等级),再测一次,看运行 Core 失败时界面上显示的日志(FAQ:https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe ,「在测试真连接时会显示运行 core 失败」一节)。看完把「日志等级」改回原来的等级。\n2. FAQ 说这类提示大多是两种:配置有错,或者当前内核已经不支持这份配置;或者本地监听端口被别的程序占用了,FAQ 举的例子是虚拟机。**测速另起一个临时内核**,从「本地混合监听端口」(默认 10808)加 21 起找一个当前没人用的端口给它(按源码),所以测速起不来时,正在用的连接可能照常。提示指向端口:先关掉占用它的程序再测。提示指向配置或内核不支持:把提示原文(去掉订阅链接和节点地址)交给服务方。\n验证:retest-core-starts\n\n### sync-device-clock\n1. 在系统设置里打开「自动设置日期和时间」(各系统叫法不同),时区设成你所在的地方,然后重新测速。**只改时区不会让 VMess 连不上**,影响它的是实际时间:实测把设备时钟拨快 10 分钟,VMess 节点立刻测不通,服务端记下 `bad timestamp`,同一时刻经典 Shadowsocks(aes-128-gcm)节点照常;把时间改回就恢复;只改时区、实际时间不变时 VMess 正常。时间差多大会被拒绝由服务端决定,本条不给数字。\n验证:browse-after-fix\n\n### replace-insecure-nodes\n1. 证书本身过不了校验的节点,在 v2rayNG 里没有开关能救回来(v2rayN 的情况和改法不同,见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed))。Xray 在日期之前打的警告里写着请联系服务提供方;过了日期的报错只说这项已经移除,要改用证书指纹一类的写法(官方 Xray 的报错只提 `pinnedPeerCertSha256`,v2rayNG 自带的分叉另提 `verifyPeerCertByName`)。向服务方要不需要「跳过证书验证」的节点,再更新订阅。服务方给了证书指纹(SHA-256)的话,也可以填进 v2rayNG 节点设置里的「证书指纹 (SHA-256)」:填了以后 v2rayNG 生成的配置里不再带 allowInsecure(按源码,没有实测)。\n2. **别用把设备日期调回过去的办法绕过**:实测把设备时钟拨回 2026-07-31,这类节点确实能测通,但 VMess 节点马上因为时间对不上而测不通。\n验证:browse-after-fix\n\n### compare-with-working-side\n1. 把能用的那台和这台对比:是不是同一个客户端、版本是否一样、这台最近有没有升级过客户端或内核。升级之后才全红的,把失败时的提示原文交给服务方(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址)——v2rayN 官方 FAQ 提到过「你的配置 Core 已经不支持了」这种情况(https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe )。\n2. 换个网络就能用,差别在这个网络到节点这一段。连接发出去没有回应时,测速要等满时限才判失败(实测不可达的节点在 Clash Verge Rev 里约 10 秒后显示 `Timeout`)。Clash Verge Rev 的开关、模式、出口先按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 排除;排除后仍然只有这个网络不行,按 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network) 查这个网络要不要先登录、是不是只有一部分节点不通,再带着「哪个网络不行、哪个可以」找服务方(作者建议)。\n验证:after-aligning-with-working-side\n\n### report-with-comparisons\n1. 带着对照结果去联系服务方:试过哪些设备、哪些网络;设备时间是对的;网页也打不开;失败是一点就出来,还是等满时限才出来。Clash Verge Rev 里这两种都显示 `Timeout`,只能看出现得快慢,把你看到的如实告诉服务方就行,**不用自己下结论**:本条实测的服务端是 sing-box,Clash Verge Rev 界面上端口被拒的节点不到一秒就显示 `Timeout`;用户 ID 不对只在不经图形界面的命令行 mihomo 接口上测过,也是不到一秒就返回失败,界面上多久显示没有实测;而有的服务端(例如 Xray 的 VMess)认证失败后会故意拖着不马上断开(按源码,没有实测),这时也可能等满时限。**不要附上订阅链接、节点地址或口令。**\n验证:provider-confirmed\n\n## 验证\n- **browse-with-working-node**(人):把一个测出毫秒数的节点设为当前节点,打开平时要经代理才能打开的网页。\n 预期:网页能打开。打不开的话,先查开关、模式和出口:Clash Verge Rev 按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 查,v2rayN、v2rayNG 回上手条目核对选节点和打开代理那两步。这些都对了仍然打不开,不能凭测速出了毫秒数就排除节点或目标网页那一侧:测速只访问一个测速地址,数字好看只说明那个地址能访问。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **retest-shows-numbers**(人):对同一组节点重新测速。\n 预期:原来失败的节点出现毫秒数。换了地址仍然全部失败的:网页能打开、节点可以照常用,但测速失败的原因还没有找到,这个问题不算解决;记下用的客户端、换过的测速地址和每次的测速结果,带着这些继续求助。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **retest-core-starts**(人):按提示处理后,用 v2rayN 再做一次「测试真连接延迟」。\n 预期:这次出现毫秒数,速度列和信息栏里不再出现「运行 Core 失败,请查看提示信息」。仍然出现,把提示原文(去掉订阅链接和节点地址)交给服务方。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **browse-after-fix**(人):改完后重新测速,再选一个节点、打开平时要经代理才能打开的网页。\n 预期:测速出现毫秒数,网页能打开。仍然不行的,先核对刚才的改动真的生效了:改的是时间的,「自动设置日期和时间」开着,钟面和一台时区相同、自动对时的手机一致;换节点或填指纹的,失败的那些节点已经不再开着「跳过证书验证」,或者已经填上了证书指纹。没生效、自己又改不了的(比如服务方还没给新节点),不用从头重走,带着试过的做法直接求助;确实生效了还是不行,再从第一问重走一遍,找下一个还没排除的原因。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → all-nodes-failing;无法判断 → escalate\n- **after-aligning-with-working-side**(人):按对比结果处理后(例如把客户端换成和能用那台一样的版本),再测速,并打开平时要经代理才能打开的网页。\n 预期:测速出现毫秒数,网页能打开。仍然不行,或者差别出在这个网络、只能等服务方处理的,带着对照结果找服务方,等他们处理后再测。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **provider-confirmed**(人):服务方回复后,按他们的说明操作(例如更新订阅。用 v2rayN 的,更新订阅会把你在订阅节点上手改过的设置恢复成订阅里的值,见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed),改过的先记下来),再测速,并打开平时要经代理才能打开的网页。\n 预期:测速出现毫秒数,网页能打开。仍然不行,把这次的结果再告诉服务方。只有从 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 转过来的(开 TUN 没网、关掉 TUN 用系统代理也打不开)还要多验一步:这里通过只说明关着 TUN 时好了,再打开「启用 Tun」、把状态栏的系统代理改成「清除系统代理」,打开一个平时要经代理才能打开的网页,「启用 Tun」保持开着、网页能打开才算解决(试完把系统代理改回你在那一条「关掉 TUN、改用系统代理」那一问之前记下的那一项);打不开的,回那一条从第一问重走。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n- `订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机`(见 when-to-update-subscription)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/adapter.go L166-L276(URLTest:经节点建连后对测速地址发 HEAD,客户端超时 30 秒、不跟随跳转,未给 expected 时任何状态码都算成功);hub/route/proxies.go L106-L148(延迟接口:到调用方给的 timeout 回 504 Timeout,更早出错或延迟为 0 回 503 An error occurred in the delay test);hub/route/errors.go L8;constant/adapters.go L65(默认测速地址);adapter/provider/healthcheck.go L200-L201(策略组自动检查没写 timeout 时 5000 毫秒)。Clash Verge Rev 2.5.2 内置的内核报告 v1.19.29:git diff v1.19.29(e26714a)..ab405ba 在 adapter/adapter.go、hub/route/proxies.go、hub/route/errors.go 三个文件上为空;503/504 的区分另在 Clash Verge Rev 内置内核的接口上实测过(exp-all-nodes-timeout-gui-2026-09-23))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/components/proxy/proxy-head.tsx L67-L74(测速地址:headState.testUrl,即组标题栏里手动输入的测速地址 → url,即配置里组的 testUrl → 设置里的默认测试链接 → cp.cloudflare.com/generate_204)、L123-L136 与 L188-L199(「延迟测试链接」按钮与输入框,onHeadState({ testUrl }));src/components/proxy/proxy-render.tsx L228(url={group.testUrl});src/components/proxy/use-head-state.ts L21、L84-L92(组标题栏状态存进 localStorage);src/services/delay.ts L116、L188-L203(getDelayFix:来自 proxy-provider 的节点只取内核历史的最后一条,0 以 error 显示)、L225-L250(checkDelay 先置为测试中,至少等 500 毫秒才写结果;界面计时器到点记 0)、L258-L265(调用异常记 1e6)、L338-L344(formatDelay:0 显示 Timeout,大于 1e5 显示 Error);src/hooks/use-proxy-delay-state.ts L7-L31(DIRECT、REJECT 不显示延迟);src/components/proxy/proxy-groups.tsx L84(默认超时 10000);src/locales/zh/proxies.json L36(延迟测试链接);src/locales/zh/settings.json L394、L406-L407(杂项设置、默认测试链接、测试超时时间);Cargo.lock L7308-L7310(tauri-plugin-mihomo 钉在 cf97ff9))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/components/proxy/proxy-head.tsx L69-L76(测速地址先后:组标题栏手填 → 组的 url → 默认测试链接 → cp.cloudflare.com/generate_204,走 http)、L134 与 L196-L200(「延迟测试链接」按钮与输入框);src/components/proxy/use-head-state.ts L84-L92(组标题栏状态存进 localStorage);src/services/delay.ts L170(getUrl 兜底地址)、L248-L261(getDelayFix:有这次的手动结果就用它,没有才取内核历史的最后一条,0 改记 1e6,不区分节点来源)、L265-L270(代理集合的节点改走代理集合的健康检查接口);src/utils/delay.ts L3、L7、L23-L24(默认超时 10000;0 或到时限为 timeout,大于 1e5 为 error);src/services/delay.ts L328-L335(测速调用抛错时记 1e6,即显示 Error);src/components/proxy/proxy-head.tsx L100-L103 与 src/utils/network.ts L14-L21(手填测速地址不以 http 或 https 加 :// 开头时只弹 proxies.feedback.warnings.invalidTestUrl、不测;v2.5.2 的 proxy-head.tsx 没有这项检查);src/locales/zh/proxies.json L93(提示在中文界面也是英文原文,以 Test URL must start with 开头);src/hooks/use-proxy-delay-state.ts L12-L18(DIRECT、REJECT、REJECT-DROP 等预设出口不显示延迟);src/components/proxy/proxy-groups.tsx L104(默认超时 10000);src/components/proxy/proxy-item.tsx L115(展示节点细节时显示类型);src/components/proxy/use-head-state.ts L22-L24(组标题栏状态默认 showType: true,即默认显示节点细节);src/locales/zh/proxies.json L37、L39(延迟测试链接、展示节点细节);src/locales/zh/settings.json L405、L417-L418(杂项设置、默认测试链接、测试超时时间);Cargo.lock L7376-L7378(tauri-plugin-mihomo 钉在 ba8434c)。引用到的这几处与 v2.5.5(22e3f1a)相同(settings.json 只在 L655 之后新增文案;Cargo.lock 的 tauri-plugin-mihomo 从 17c7757 换成了 ba8434c,delay_proxy_by_name 没变))\n- exp-works-on-another-network-gui-linux-2026-09-29:验证记录(内部存档,未公开)\n- tauri-plugin-mihomo-cf97ff9:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/cf97ff99e390a9b437d5cf94c6f454f024fc8f69(src/mihomo.rs L758-L783 delay_proxy_by_name(请求只带 timeout 与 url 两个参数,L764;内核回任何非成功状态都 mark it timeout,记 delay 0))\n- tauri-plugin-mihomo-ba8434c:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/ba8434c08c869916b8041d707ad66599bb5230b2(Clash Verge Rev v2.5.6 钉的版本。src/mihomo.rs L945-L970 delay_proxy_by_name(请求只带 timeout 与 url;内核回非成功状态时 mark it timeout,记 delay 0,与 cf97ff9 相同);L836-L866(代理集合节点的健康检查,非成功状态同样记 delay 0);连不上内核时 send 直接返回错误,不记 0)\n- metacubex-wiki-proxy-groups:https://wiki.metacubex.one/config/proxy-groups/(通用字段 url(健康检查测试地址)、timeout(健康检查超时时间,单位为毫秒)、expected-status(默认为 *,对响应状态不做要求))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Services/SpeedtestService.cs L105-L128(测试开始先把延迟列写成测试中...)、L150-L172 与 L479-L507(Tcping:只做 TCP 建连,只接住 5 秒超时记 -1;连接被拒、域名解析失败抛异常,不写结果)、L187-L227(真连接分批,一批节点共用一个临时内核;失败批次转入逐个重测)、L229-L237(RunRealPingAsync 起不来临时内核时直接返回 false,不写运行 Core 失败)、L356-L380(RunMixedTestAsync 每个节点起一个内核,起不来时把运行 Core 失败写进速度列)、L420-L441;ServiceLib/ViewModels/ProfilesViewModel.cs L278-L300(结果按延迟列、速度列分别写入);ServiceLib/Handler/ConnectionHandler.cs L69-L98(GET 两次取小,总 9 秒、建连 3 秒,异常记 -1,不看状态码);ServiceLib/Global.cs L164-L172 与 Handler/ConfigHandler.cs L135-L137(默认真连接测试地址);ServiceLib/Enums/EInboundProtocol.cs L12 与 Manager/AppManager.cs L165-L169(测速端口 = 混合端口 + 21,默认 10808);Handler/CoreConfigHandler.cs L131-L132(从该端口起取空闲端口);ServiceLib/Resx/ResUI.zh-Hans.resx L391、L580、L712、L730、L889、L1096(测试中...、跳过证书验证 (allowInsecure)、日志等级、本地混合监听端口、运行 Core 失败,请查看提示信息、真连接测试地址))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Handler/ConnectionHandler.cs L69-L105(GetRealPingTime:GET 两次取较小,总时限与建连时限都是 Global.LocalFetch,任何异常为 -1);ServiceLib/Global.cs L100(LocalFetch 5 秒);ServiceLib/Services/SpeedtestService.cs L550-L584(GetTcpingTime:域名解析在 try 之外;连接时接住所有异常,记 -1)、L201-L235(RunTcpingAsync:GetTcpingTime 抛出的异常只写日志,不写结果))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/service/RealPingWorkerService.kt L82-L104(先做 1000 毫秒 TCP 预检,不通记 -1);AppConfig.kt L129-L130(默认测速网址);core/CoreServiceManager.kt L165-L168(连接开了跳过证书验证的节点时弹出移除警告)、L226-L233 与 viewmodel/MainViewModel.kt L438-L445(启动内核失败时把错误信息弹成提示);core/CoreOutboundBuilder.kt L551(填了证书指纹就不写 allowInsecure);ui/MainRecyclerAdapter.kt L160-L166(列表显示 tls insecure);res/values-zh-rCN/strings.xml L73、L121、L124、L216、L317(跳过证书验证 (allowInsecure)、证书指纹 (SHA-256)、将在 2026.8.1 移除的警告、真连接延迟测试网址、测试配置真连接))\n- libxraylite-3b5a9c8:https://github.com/2dust/AndroidLibXrayLite/tree/3b5a9c858c4dc98b7079cefb1380537b6b5c155c(v2rayNG 2.2.6 的子模块指针指向这个提交;libv2ray_main.go L286-L370 measureInstDelay(GET 测速地址,12 秒、最多 2 次,只认 200 或 204);go.mod L7、L60(xray-core 被 replace 到 autorepobot/xray-core 50c4528))\n- autorepobot-xray-core-50c4528:https://github.com/autorepobot/xray-core/tree/50c452881eb946e23c4098f9c288447e9d36345c(非官方账号下的 Xray 分叉,不是 Xray 或 v2rayNG 的官方仓库;它是 v2rayNG 2.2.6 实际编进去的内核源码,由 2dust/AndroidLibXrayLite(提交 3b5a9c8)的 go.mod replace 指定。infra/conf/transport_internet.go L733-L739(allowInsecure:设备时间过了 2026-08-01 UTC 就报 The feature \"allowInsecure\" has been removed and migrated to \"pinnedPeerCertSha256\"(pcs) and \"verifyPeerCertByName\"(vcn) 并拒绝加载,之前只打警告))\n- xray-core-src-26-3-27:https://github.com/XTLS/Xray-core/tree/d2758a023cd7f4174a5a5fa4ff66e487d4342ba0(infra/conf/transport_internet.go L709-L716(allowInsecure:time.Now() 过了 2026-06-01 UTC 就报移除错误、拒绝加载,只提 pinnedPeerCertSha256;之前的警告提 pcs 与 vcn,并写 PLEASE CONTACT YOUR SERVICE PROVIDER);common/errors/feature_errors.go L25-L31(报错原文:has been removed and migrated to …, Please update your config(s) according to release note and documentation.);proxy/vmess/aead/authid.go L22、L110-L111(VMess 时间差超出范围报 invalid timestamp, perhaps unsynchronized time);proxy/vmess/encoding/server.go L127-L176(用户 ID 不对、时间戳无效等认证失败时走 drainConnection:先按种子算出的长度读完数据再断开);proxy/vmess/inbound/inbound.go L233-L240(TCP 连接上启用这种读完再断);common/drain/drainer.go L14-L41)\n- xray-docs-next-5ee0811:https://github.com/XTLS/Xray-docs-next/tree/5ee08112dd7935dd3f97d9de3b9e2751d5f54c2c(docs/config/outbounds/vmess.md L6(VMess 依赖于系统时间,时区无关);docs/config/outbounds/vless.md L5(VLESS 不依赖于系统时间))\n- sing-vmess-v0-2-8:https://github.com/SagerNet/sing-vmess/tree/31ec11e8790c48a4bf11711806a61e929ee6b89d(service.go L39、L208-L210(时间差超出范围返回 bad timestamp))\n- sing-shadowsocks-v0-2-8:https://github.com/SagerNet/sing-shadowsocks/tree/e0612494bafdd1429e9632bc52fd278585d28690(shadowaead_2022/service.go L84-L96(加密方式名都以 2022-blake3- 开头)、L196-L197、L467-L468(Shadowsocks 2022 的 TCP 与 UDP 入站都校验时间戳,差得太多返回 ErrBadTimestamp))\n- exp-all-nodes-timeout-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-all-nodes-timeout-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:dc501fa 2026-10-02\n"},"android-vpn-connected-no-internet":{"id":"android-vpn-connected-no-internet","type":"troubleshoot","title":"安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式","aliases":["安卓 VPN 钥匙图标 上不了网","安卓 手机 VPN 钥匙图标亮着 打不开网页","钥匙图标带感叹号","v2rayNG 测速成功 但是上不了网","v2rayNG 测试成功 打不开网页","v2rayNG 有延迟 打不开网页","v2rayNG 没网","FlClash 没网","FlClash 仪表盘显示 IP 却打不开网页","FlClash 延迟正常 打不开网页","开了私人 DNS 代理就上不了网","专用 DNS 代理上不了网","无法访问私人 DNS 服务器","无法访问专用 DNS 服务器","专用 DNS 提供商主机名","Private DNS server cannot be accessed","Private DNS Couldn't connect","v2rayNG 分应用 浏览器不走代理","v2rayNG 绕行模式","v2rayNG 常规模式 勾选","v2rayNG 仅代理 没有钥匙图标","FlClash 访问控制 白名单 黑名单","FlClash 访问控制 不生效","FlClash VPN 开关","FlClash v2rayNG 两个 VPN 另一个断了"],"primary_topic":"android-issues","topics":["android-issues","troubleshooting","flclash","v2rayng"],"intents":[],"applicability":{"client":["flclash","v2rayng"],"os":["android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# 安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式\n\n主题:`排错` › `安卓端问题`\n适用:flclash/v2rayng / android / any\n最后验证:2026-09-24\n\n安卓手机上 FlClash 或 v2rayNG 显示已连接,状态栏的钥匙(VPN)图标亮着,测速有毫秒数、v2rayNG 显示「连接成功:延时 xx 毫秒」,浏览器和 App 却上不了网——**先别急着怀疑节点**。测速是客户端自己经节点发出去的,实测它既不受分应用设置影响,也不受手机 DNS 影响(节点写成 IP 地址时),所以测速通过证明不了浏览器也能上网。能造成这种现象、而且在手机上就能查的原因有下面几条,按检查的省事程度排(不是按出现频率):\n\n1. **私人 DNS**(系统设置 →「网络和互联网」→「专用 DNS」,英文 Private DNS)填了一个连不上的主机名:通知栏出现「无法访问私人 DNS 服务器」,钥匙图标带感叹号,手机用系统的方式查不出任何网址(实测,用一个不存在的主机名模拟;这一条只用命令行试过),当时关掉客户端也一样。先记下原来的主机名,再改成「关闭」(实测恢复)或「自动」。\n2. **分应用 / 访问控制**把浏览器排除在 VPN 外:被排除的应用不是断网,而是不走代理、直接连(实测),所以通常表现为不用代理也能开的网站能开、要代理的打不开(作者判断)。\n3. **没建 VPN**:v2rayNG 选了「仅代理」模式(实测),或者 FlClash 的「VPN」开关被关了(按源码)——状态栏没有钥匙图标,别的应用都不走代理。\n4. 另一个 VPN 应用(加速器、广告拦截、另一个代理客户端)后启动,把 VPN 抢走了,原来的客户端自己停掉(实测两个代理客户端互相接管时,被接管的一方界面显示已停止)。\n\n**状态栏根本没有钥匙图标的,直接看第 3 条**(FlClash 还要看 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run) 里允许 VPN 那一步)。同一个订阅电脑能用、手机不行的,也可以先按这几条查(作者建议)。测速本身就没有毫秒数的,用 v2rayNG 看 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout),用 FlClash 回 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run) 的选节点那一步。\n\n## 测速通过为什么不算数\n\n测速和网络检测都是客户端自己发出去的,跟手机上别的应用走的不是同一条路:FlClash 的延迟测试由内核自己经节点测,仪表盘「网络检测」卡片的请求在启动后交给 FlClash 本机的端口;v2rayNG 的「测试连接」由它的内核自己拨号。实测把私人 DNS 弄坏、手机已经查不出任何网址的地址时,FlClash 延迟测试照样出数字、网络检测卡片照样显示 IP,v2rayNG 照样显示「连接成功:延时 7 毫秒」;浏览器被排除在 VPN 外时也一样。**判断浏览器能不能上网,只能用浏览器打开网页试。**\n\n## 私人 DNS:实测看到了什么\n\n原生 Android 16 上,这个设置在「网络和互联网」里叫**「专用 DNS」**,三个选项是「关闭」「自动」「专用 DNS 提供商主机名」,默认「自动」;出问题时通知里叫**「私人 DNS」**。两个客户端下实测的结果一样(实测的订阅只有一条「全部走代理」的规则,节点写的是 IP 地址):\n\n| 设置 | 结果 |\n|---|---|\n| 自动(默认) | 正常上网 |\n| 关闭 | 正常上网 |\n| 主机名,而且这个主机连得上(实测 dns.google) | 正常上网。VPN 开着时,手机连这个主机也是经节点出去的,能不能连上取决于节点和客户端的分流;关掉 VPN 时取决于你所在的网络。这时 FlClash 只看得到 IP、看不到网址,按网址写的分流规则可能对不上(推断,未测) |\n| 主机名,但这个主机连不上 | 用系统的方式查不出任何网址的地址;用不存在的主机名模拟时关掉客户端也一样(只能经节点连通的主机名没有测);客户端测速照常(实测节点为 IP 地址) |\n\n主机名连不上时,「专用 DNS」下面显示「无法连接」,「互联网」页写着「无法访问专用 DNS 服务器」,通知标题是「<Wi-Fi 名> 无法访问互联网」或「此移动网络无法访问互联网」、正文「无法访问私人 DNS 服务器」。**这些提示都来自系统,不是代理客户端发的。**\n\n## 分应用和访问控制:两种模式正好相反\n\n| 客户端 | 在哪 | 模式 | 意思 |\n|---|---|---|---|\n| FlClash | 工具 → 访问控制(只有安卓版有) | 黑名单模式(默认) | 勾选的应用被排除在 VPN 外 |\n| FlClash | 同上 | 白名单模式 | 只有勾选的应用进 VPN |\n| v2rayNG | 侧边菜单 → 分应用设置 | 常规 | 至少勾了一个时,只有勾选的应用走代理;一个都没勾等于没开 |\n| v2rayNG | 同上 | 绕行模式 | 勾选的应用直连 |\n\n两者默认都是关着的,关着时所有应用都进 VPN(v2rayNG 只把它自己排除在外)。实测被排除的 Chrome 不是断网,而是直连打开网页,客户端的测速全部照常。\n\n## 这些结论是怎么核对的\n\n在 Android 16 模拟器上实际跑过 FlClash 0.8.98 和 v2rayNG 2.2.6,另按两者的源码核对。\n\n- 只测了原生 Android 模拟器,小米、华为、OPPO 等系统里这个设置的位置、叫法和表现可能不同,也没有在真机上测。\n- 私人 DNS 坏掉时只用系统的查询方式(命令行)看过,没有用浏览器或别的 App 打开网页试;「连不上的主机名」只用一个不存在的主机名模拟。\n- 节点在本机、写的是 IP 地址,没有真实网络里的封锁和丢包;节点写成域名时测速会不会也受私人 DNS 影响,没有测。\n\n## 取证\n- **private-dns-auto-or-off**:打开系统设置 →「网络和互联网」→「专用 DNS」(通知里叫「私人 DNS」,英文界面叫 Private DNS),当前是「自动」或「关闭」吗?(选的是「专用 DNS 提供商主机名」、下面填了一个主机名的,选「否」。小米、华为、OPPO 等系统的入口和叫法可能不同;找不到这一项时,看通知栏有没有「无法访问私人 DNS 服务器」,或者状态栏的钥匙和 Wi-Fi 图标上有没有感叹号——有就选「否」,都没有再选「无法判断」)\n pass → app-not-excluded;fail → private-dns-hostname-set;unknown → app-not-excluded\n- **app-not-excluded**:打不开的那个应用(比如浏览器)进了 VPN 吗?**FlClash** 看「工具 → 访问控制」:开关关着,选「是」。开着时,黑名单模式(默认)下它没被勾选、白名单模式下它被勾选了,选「是」;反过来选「否」。列表默认不显示系统应用:白名单模式下,手机自带的浏览器你没有专门放开「系统应用」去勾选过,它就不在 VPN 里,选「否」;黑名单模式下找不到它,先在「更多 → 设置」的「来源」里勾上「系统应用」,再看它勾没勾。**v2rayNG** 看侧边菜单「分应用设置」:「启用分应用」关着,或者开着但一个应用都没勾(这时等于没开),选「是」。开着而且勾了应用时,常规模式下它被勾选了、「绕行模式」下它没被勾选,选「是」;反过来选「否」\n pass → client-built-vpn;fail → app-excluded-from-vpn;unknown → client-built-vpn\n- **client-built-vpn**:客户端显示在运行时,状态栏有钥匙(VPN)图标吗?(没有的话:v2rayNG 看设置里的「模式」是不是「仅代理」——选了它,底部照样显示「已连接,点击测试连接」、测试连接也成功,但不建 VPN。FlClash 看「工具 → 进阶配置 → 网络」最上面的「VPN」开关是不是被关了(默认开);开着的,可能是 VPN 连接请求被点了取消,按 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run) 里允许 VPN 那一步重来)\n pass → client-still-running;fail → vpn-not-established;unknown → client-still-running\n- **client-still-running**:回到客户端看一眼,它仍然显示在运行吗?(FlClash 仪表盘的按钮在计时;v2rayNG 底部显示「已连接,点击测试连接」。钥匙图标亮着、客户端却已经停了的——FlClash 按钮的计时回到全零,v2rayNG 显示「未连接」——选「否」)\n pass → speed-test-has-ms;fail → another-vpn-took-over;unknown → speed-test-has-ms\n- **speed-test-has-ms**:你当前选中的那个节点,测速有毫秒数吗?(FlClash:代理页右下角的「延迟测试」会给整组每个节点各出一个结果,只看你选中、卡片变亮的那个,不看别的节点有没有数字;v2rayNG:点底部「已连接,点击测试连接」,出现「连接成功:延时 xx 毫秒」算有。**测速有数字只说明客户端自己能经节点出去**。前面几问都排除了还打不开,原因已经不在这条排查的范围里:把你走过的这几问和答案、客户端名称和版本、测速结果交给服务方,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址(实测 v2rayNG「连接成功」下面那行带着出口 IP,也一起遮掉)。用 v2rayNG 的可以顺便问一句节点支不支持 UDP——实测 v2rayNG 默认设置下,手机的域名查询有时是以 UDP 经节点发出去的,而测试连接不靠 UDP;节点不转发 UDP 时会不会因此打不开网页,本站没有测)\n pass → escalate;fail → speed-test-also-fails;unknown → escalate\n\n## 原因\n- **private-dns-hostname-set**(可能性 medium)→ 修复 set-private-dns-automatic\n- **app-excluded-from-vpn**(可能性 medium)→ 修复 put-app-back-into-vpn\n- **vpn-not-established**(可能性 medium)→ 修复 turn-vpn-back-on\n- **another-vpn-took-over**(可能性 low)→ 修复 close-the-other-vpn-app\n- **speed-test-also-fails**(可能性 medium)→ 修复 check-nodes-instead\n\n## 修复\n### set-private-dns-automatic\n1. 打开系统设置 →「网络和互联网」→「专用 DNS」,**先记下原来填的主机名**(改完没用时要改回去),再在弹出的「选择专用 DNS 模式」里选「关闭」或「自动」(系统默认值),点「保存」。找不到这一项的,作者建议在设置顶部的搜索框里搜「DNS」(各品牌系统本站没有测)。**这对你意味着什么**:填的主机名连不上时,手机用系统的方式查网址,一个都查不出来(实测),靠系统查网址的 App 因此都打不开;实测用一个不存在的主机名模拟时,**关掉客户端也一样**(主机名只能经节点连通、而节点不转发它的情况本站没有测);而钥匙图标还亮着,FlClash 的延迟测试、v2rayNG 的「连接成功:延时 x 毫秒」照样出数字。同时能看到这些提示:状态栏的钥匙图标和 Wi-Fi 图标各带一个感叹号,「专用 DNS」下面显示「无法连接」,通知栏出现「无法访问互联网」、正文「无法访问私人 DNS 服务器」(英文是 Private DNS server cannot be accessed)。实测改成「关闭」、再启动客户端后恢复;一直是「自动」时,两个客户端下都正常。从坏掉的主机名直接改回「自动」能不能恢复,本站没有单独测。\n2. **故障可能晚几分钟才出现**:手机会记住最近查过的网址,改了设置之后,查过的网址还能打开一阵,没查过的先打不开(实测一轮约 4 分钟后才全部失效)。所以「前几分钟还好好的、突然都打不开了」也可能是它。想继续用某个私人 DNS 服务的,作者建议先改成「关闭」把网用起来;之后想换回来,改完在平时用的几个应用里打开最近没开过的网页(用 FlClash 的别只用浏览器试,见下一段),能开再保留,打不开就改回「关闭」。\n3. **用 FlClash 时,也可能是浏览器能开、别的 App 打不开**:按源码,FlClash 默认还给 VPN 挂了一个 HTTP 代理(Android 10 起,指向手机上的 FlClash 本机端口),认这个代理的浏览器会把网址交给 FlClash 去查,可能不受私人 DNS 影响。这种组合本站没有实测;私人 DNS 这一问照样适用。\n验证:page-opens-after-private-dns\n\n### put-app-back-into-vpn\n1. **改之前先记下原来的开关、模式和勾了哪些应用。** **两个客户端的两种模式意思正好相反,最容易看反**:FlClash 的「黑名单模式」(默认)是勾选的应用被排除在 VPN 外,「白名单模式」是**只有**勾选的应用进 VPN;v2rayNG 的「常规」是**只有**勾选的应用走代理、没勾的直连(一个都没勾时等于没开),「绕行模式」是勾选的直连。用不着分应用的,直接把开关关掉——关着时所有应用都进 VPN(v2rayNG 只把它自己排除在外,实测)。要保留的,按上面的意思把打不开的那个应用勾上或取消。**注意 v2rayNG 常规模式**:原来一个都没勾、你只勾上浏览器,就变成只有浏览器走代理,别的应用反而改为直连(实测,勾的是 YouTube)。FlClash 默认不列出系统应用,要在访问控制页「更多 → 设置」的「来源」里勾上「系统应用」才看得到手机自带的浏览器。\n2. **FlClash 改完要在仪表盘上停止、再启动**:点「保存」后页面顶部会提示「检测到VPN相关配置改动」,旁边有个「重启」。按源码它做的也是先停再启,但本站实测点了两次(两轮各一次),新设置都没有生效,原因没有查;在仪表盘上停止再启动之后才生效。v2rayNG 离开分应用设置页时会自动重建 VPN(实测),不用手动重启。\n验证:page-opens-in-that-app\n\n### turn-vpn-back-on\n1. **v2rayNG**:在设置里把「模式」改回「VPN」(默认值),停止服务再启动;系统弹出 VPN 连接请求时允许。**「仅代理」不建 VPN**:它只在手机上开一个本机代理端口(默认 10808),别的应用不会自动用它,所以浏览器照常直连,而测试连接是 v2rayNG 自己经节点测的、照样成功(实测)。给应用手动设置这个代理的用法本站没有测。\n2. **FlClash**:打开「工具 → 进阶配置 → 网络」最上面的「VPN」开关(说明是「通过VpnService自动路由系统所有流量」),回仪表盘停止再启动,系统弹出 VPN 连接请求时允许。按源码,这个开关关着时 FlClash 照常运行,只是不建 VPN;这条本站没有实测。开关本来就开着的,按 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run) 里允许 VPN 那一步重来。\n验证:page-opens-with-key-icon\n\n### close-the-other-vpn-app\n1. 实测两个客户端先后启动、而且事先都授权过时,后启动的一方直接接管 VPN,先启动的客户端自己停掉——FlClash 仪表盘按钮的计时回到全零,v2rayNG 显示「未连接」——被接管的一方没有任何提示;这时钥匙图标属于别的应用。第一次用的应用去接管时会不会弹系统的连接请求,本站没有测。把另一个会建 VPN 的应用(加速器、广告拦截、另一个代理客户端)关掉,再回这个客户端重新启动。本站没法告诉你是哪个应用;作者建议下拉通知栏看看还有哪个应用挂着常驻通知,或者把最近装的这类应用逐个停掉再试。\n验证:page-opens-with-key-icon\n\n### check-nodes-instead\n1. 测速也失败,说明连客户端自己都没能经节点出去,要查的是节点能不能用。先确认第一问的「专用 DNS」没问题:实测节点写成 IP 地址时,专用 DNS 坏了测速照常;节点写成域名时会不会连测速一起失败,本站没有测。然后按客户端分开查:**v2rayNG** 按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 排查,那一条覆盖 v2rayNG,手机时间、「跳过证书验证」这类原因在那里。**FlClash** 目前没有被 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 覆盖,那一条里的原因不一定适用;回 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run),看「选节点」那一步最后「整组都显示『超时』时」那段,再核对导入和选节点。\n验证:speed-test-then-page-opens\n\n## 验证\n- **page-opens-after-private-dns**(人):改完等十几秒,在客户端里停止、再启动一次,然后回到原来打不开的那个应用(是浏览器就用浏览器),重新打开刚才打不开的网页。\n 预期:网页能打开。要在原来那个应用里能打开才算;用 FlClash、原来是别的 App 打不开的,只在浏览器里试不算数(按源码,FlClash 下的浏览器可能本来就不受私人 DNS 影响,见上面「用 FlClash 时,也可能是浏览器能开」那段)。仍然打不开,说明原因不在这里:先把「专用 DNS」改回你记下的原设置(原来那个主机名下面显示过「无法连接」的,别改回去),再接着查分应用设置。\n 通过 → resolved;失败 → app-not-excluded;无法判断 → escalate\n- **page-opens-in-that-app**(人):按上面改好并重新连上之后,在原来那个应用里重新打开刚才打不开的那个网页(要经代理才能打开的那种,不要换一个不经代理也能开的网站来试)。\n 预期:刚才打不开的网页能打开。仍然打不开,先对照修复里两种模式的意思再核一遍你改的方向(改反了反而会把它排除在外):改反了就按记下的改回来重做;方向没错就保留,接着查客户端有没有建 VPN。\n 通过 → resolved;失败 → client-built-vpn;无法判断 → escalate\n- **page-opens-with-key-icon**(人):看状态栏,再回到原来打不开的那个应用(是浏览器就用浏览器),重新打开刚才打不开的网页。\n 预期:状态栏有钥匙图标,客户端显示在运行,原来那个应用里网页能打开。仍然打不开,接着看测速。\n 通过 → resolved;失败 → speed-test-has-ms;无法判断 → escalate\n- **speed-test-then-page-opens**(人):按那边处理后,重新测速,再回到原来打不开的那个应用打开刚才打不开的网页。\n 预期:测速出现毫秒数,网页能打开。仍然不行,把试过的步骤和提示原文交给服务方,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n\n## 来源\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(android/service/src/main/java/com/follow/clash/service/VpnService.kt L114-L117(onRevoke:VPN 被收回时停止)、L133-L142(Android 10 起 systemProxy 为真时给 VPN 设置指向本机端口的 HTTP 代理)、L216-L248(addDnsServers;configureAccessControl:白名单只放行选中的应用并加入自身、黑名单把选中的应用排除在外);android/app/src/main/kotlin/com/follow/clash/ServiceController.kt L66-L72(「VPN」开关关着时启动 ProxyService、不建 VPN);lib/models/config.dart L110-L119(访问控制默认关、默认黑名单模式、默认过滤系统应用)、L159-L160(VPN 开关与 VPN 的系统代理默认都开);lib/providers/state/system.dart L202-L216(VpnOptions 的 systemProxy 取自 VPN 设置,未启用认证时生效);lib/views/tools.dart L75(访问控制只在安卓显示)、L77 与 L240-L250(进阶配置入口);lib/views/config/advanced.dart L22-L30(网络);lib/views/config/network.dart L62-L73(「VPN」开关)、L331;lib/manager/vpn_manager.dart L37-L46(提示条的「重启」先 setRunning(false) 再 setRunning(true));core/method.go L207-L210(asyncTestDelayMethod)与 core/hub.go L262-L300(handleTestDelay:延迟测试由内核调用节点的 URLTest);lib/common/request.dart L102-L146(checkIp:网络检测卡片的 IP 查询);lib/common/http.dart L19-L36(应用自己的请求在启动后走 localhost 混合端口);arb/intl_zh_CN.arb L56-L57、L92-L98、L217、L433-L434)\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/service/CoreVpnService.kt L84-L87(onRevoke → stopAllService)、L298-L331(configurePerAppProxy:没开或一个都没勾时只排除自己,L301-L312;常规只放行勾选的应用、绕行把勾选的应用排除在外);core/CoreServiceManager.kt L363-L400(measureV2rayDelay:「测试连接」调用内核的 measureDelay);handler/SettingsManager.kt L485-L488(isVpnMode)、L524(默认模式 VPN)、L527(本地代理端口默认值);AppConfig.kt L152(PORT_SOCKS 10808);res/values-zh-rCN/strings.xml L146、L151-L152、L160、L364、L368、L431-L434)\n- libxraylite-3b5a9c8:https://github.com/2dust/AndroidLibXrayLite/tree/3b5a9c858c4dc98b7079cefb1380537b6b5c155c(v2rayNG 2.2.6 的子模块指针指向这个提交;libv2ray_main.go L286-L301 measureInstDelay(测试连接由内核实例自己拨号 core.Dial))\n- exp-android-vpn-connected-no-internet-gui-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:c3a0ca6 2026-10-02\n"},"broken-after-client-update":{"id":"broken-after-client-update","type":"troubleshoot","title":"Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关","aliases":["Clash Verge 更新后用不了","Clash Verge 升级后用不了","Clash Verge 点了更新 重启后还是旧版","Clash Verge 升级后订阅没了","Clash Verge 升级后节点没了","Clash Verge 升级后代理组全没了","Clash Verge 更新后配置丢失","Clash Verge 升级后配置恢复","Clash Verge 升级后 需要更新系统服务","Clash Verge 系统服务 与当前应用要求不符","Clash Verge 继续使用 Sidecar","Clash Verge 升级后 服务模式装不上","Clash Verge 升级后 虚拟网卡模式自动关了","Clash Verge 配置目录 位置","Clash Verge 应用数据目录","Clash Verge 升级前 备份配置","Clash Verge 导出备份 导入备份 恢复","Clash Verge 升级 先卸载旧版","Clash Verge 删除应用程序数据","Clash Verge 升级 删除应用数据","Clash Verge 退回旧版","Clash Verge 降级 旧版安装包","Clash Verge Rev 从 2.5.2 升级到 2.5.6","Clash Verge 2.5.2 升级 2.5.5 2.5.6 以后出问题","Clash Verge 便携版 升级后配置不见了","Clash Party 升级后配置没了","Clash Party 便携版 升级后配置没了","Clash Party 更新后用不了","Clash Party 应用目录 mihomo-party"],"primary_topic":"updates","topics":["updates","troubleshooting","clash-verge-rev","clash-party"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关\n\n主题:`客户端` › `版本与更新`\n适用:clash-verge-rev/clash-party / windows/macos/linux / any\n最后验证:2026-09-27\n\n**Clash Verge Rev、Clash Party 升级(更新)完了不能用了,先别删配置目录、别急着退回旧版(作者建议)。** 升级本身一般不删订阅,可能是下面四种之一,各有各的办法(四种按 Clash Verge Rev 写,用 Clash Party 的看列表下面那段):\n\n- **一打开就弹「需要更新系统服务」**(关不掉),或 Windows 应用内更新后提示「已降级为 Sidecar 模式运行」:系统服务还是旧版,要重装一次服务(有对话框的点右边那个按钮,Windows 用安装包选「请勿卸载」覆盖的就是这样;只有提示的从「虚拟网卡模式」开关重装)。\n- **版本号没变**(点了更新、重启后还是旧版本):在「新版本」窗口点了「更新」的,会当场下载、安装并自动重启,重启后还是旧版就是没装上,看 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed);没点过、只开着「自动检查更新」的,新版在后台下载并通过签名校验后,下次启动弹「新版本 (v…) 已下载完成,是否立即安装?」时点「立即安装」;Linux ARM 更新到 2.5.6 时签名校验不过、等不到这个弹窗,直接去发布页手动装。\n- **订阅、代理组、节点全没了**:配置目录不在原位置了(可能是卸载时勾了「删除应用程序数据」、照教程删了配置目录、以前用便携方式)。有导出的备份就能恢复。\n- **TUN(虚拟网卡模式)自己关了**:系统服务被卸掉了。Linux 用 deb、rpm 升级,Windows 手动运行新版安装器(默认「安装前卸载」)都会这样,重新装一次服务再开。\n\n四种都不是、Clash Verge Rev 连不上的,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)。**用 Clash Party 的**:上面四种,以及下面「先分清是哪一种」到「实在不行才退回上一版」这几节,只讲 Clash Verge Rev。版本号没变的,去它的 GitHub 发布页下载新版手动装(按源码它的应用内更新只支持 Windows 和 Mac;作者建议);订阅没了的,导出过备份就在设置页「备份与恢复」里点「导入备份」(按源码),没有就在「订阅管理」页重新导入;软件起不来的,见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)。看版本号:Clash Verge Rev 在「设置 → Verge 高级设置 → Verge 版本」,Clash Party 在设置页最下方「应用版本」。\n\n## 先分清是哪一种\n\n- **要求重装服务**:已装的系统服务报告的版本必须和新版软件内置的服务版本完全相同,否则判为不符、要求重新安装。这段时间每一版带的服务版本都不同:2.5.2 是 2.3.3,2.5.4-rc 是 2.7.1,2.5.4-rc.2 是 2.7.2,2.5.5 是 2.7.3,2.5.6 是 2.7.4。**这对你意味着**:装过服务的人,在这几版之间升级,几乎每次都要重装一次服务;官方 2.5.5 的更新日志写的就是「升级后服务版本或协议不兼容时,提示重新安装」。这个对话框没有关闭入口,处理它之前点不了别处(按源码;Linux、Windows 实测时启动后都一直停在这个对话框上),所以先处理它。右边的按钮按服务状态不同,可能叫「重新安装服务」「修复服务」或「安装服务」;「修复服务」那一种的正文是「所需的 Clash Verge 系统服务当前不可用。你可以安装或修复服务,或仅在本次会话继续使用 Sidecar。」。\n - **Sidecar 是什么**:不经过系统服务、由软件自己运行,首页「运行模式」显示「用户模式」,系统代理能用、TUN 用不了。\n - 2.5.4-rc 起装的服务放在软件以外的系统目录里,只换软件不会连带换掉它;2.5.2 及更早装的服务在 Windows、Linux 上就是软件目录里的程序,在应用里从 2.5.2 更新上来时 Windows 上具体会弹什么没有核对。\n- **版本没变**:Clash Verge Rev 的应用内更新有两种走法。\n - 在「新版本 v…」窗口里点「更新」:当场下载、安装、自动重启,不等下次启动;失败时右上角弹红色提示,版本不变。Linux arm64 上实测过这条路失败的样子:将近 10 分钟后弹红色提示 `Invalid encoding in minisign data`,版本没变。\n - 开着「自动检查更新」、没点过:启动约 10 秒后在后台查新版,查到就下载,通过签名校验后才存进配置目录里的 `update_cache`,不马上装;下次启动发现有这份缓存、版本又比正在用的新,才弹「新版本 (v…) 已下载完成,是否立即安装?」。点「稍后」或者安装出错,都照常打开旧版,下次启动再问;超过 30 秒没装完也先打开旧版,日志写 `will retry next launch`。\n - **这对你意味着**:点过「更新」、自动重启后仍是旧版的,是更新没装上,按 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed) 处理;没点过的,如果新版是后台自动下载的,可能是还没重启、或者点了「稍后」。配置目录里没有 `update_cache` 的,是后台还没下载成(还在下、关着自动检查,或者下载失败),这时重启也不会问(按源码);Linux ARM 更新到 2.5.6 时就是下载失败:发布页上这几个安装包没有签名文件,后台下载完校验就失败(arm64 实测,armhf 按同样缺签名文件推断),直接去发布页手动装。\n- **订阅没了**:界面上是「订阅」页只剩「全局扩展覆写配置」「全局扩展脚本」两张卡片,「代理」页提示「尚未导入订阅」,「备份设置 → 查看记录」里是「暂无备份记录」(实测)。**这对你意味着**:旧的配置目录没被新版读到,不是订阅失效,不用先去刷新订阅。\n- **TUN 被关**:服务被卸掉了,有两种情况。\n - Linux:deb、rpm 安装包在卸载前会无条件运行服务卸载程序;用 deb 升级时,安装程序会先运行旧版包里的这一步(实测),rpm 按文档也会运行,没有实测;Linux 上的应用内更新装的也是这两种安装包。\n - Windows:手动运行新版安装器时,欢迎页之后的「已安装」页(「选择你想要安装 Clash Verge 的方式」)默认选「安装前卸载」,它会运行旧版的卸载程序;卸载程序不管是不是升级,都会停掉并删除系统服务,2.5.2、2.5.5、2.5.6 的都一样,新版安装器装完也不会把服务装回来(Windows 实测)。选「请勿卸载」的(Windows 实测),以及应用内更新(按源码,Windows 上没有实测),都不卸载,服务留着但还是旧版,落到上面「要求重装服务」那一种。\n - 服务没了而 TUN 开着时,以普通方式运行的,第一次打开新版会把 TUN 关掉并写进配置,不弹对话框或通知(按源码,这一步只写配置、不发提示,Windows 上实测也没有对话框和提示;以管理员身份运行时不关,Linux 上以 root、Windows 上以管理员身份运行实测都是弹「需要更新系统服务」,右边按钮为「安装服务」);设置页「虚拟网卡模式」开关旁出现橙色三角,首页「运行模式」是「用户模式」。Linux 上从 2.5.5 升到 2.5.6 实测:日志写 `Service is not installed; turning TUN mode off`,订阅、代理组、选中的节点都在。\n\n## 配置目录在哪、升级会不会删它\n\n**升级要不要先卸载旧版、要不要删应用数据:都不用(作者建议)。** Windows 手动安装时安装器默认会替你先卸载旧版,卸载页里的「删除应用程序数据」别勾;Mac 先退出旧版再拖进去替换;Linux 直接装新包。装过服务的,装完都要重装一次服务(见上)。依据见下面各平台。\n\nClash Verge Rev 的订阅、代理组选择和设置都在配置目录里(`profiles.yaml`、`profiles` 文件夹、`verge.yaml`)。「设置 → Verge 高级设置 → 配置目录」可以直接打开它。位置:\n\n- Windows:`%APPDATA%\\io.github.clash-verge-rev.clash-verge-rev`\n- Mac:`~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev`\n- Linux:`~/.local/share/io.github.clash-verge-rev.clash-verge-rev`(实测,官方卸载页「配置(软件工作)目录」一行也是这里)。同一张表把 `verge.yaml` 和窗口状态文件写在 `~/.config/…` 下,按 2.5.6 源码 `verge.yaml` 在上面这个目录里。\n\n升级会不会动它:\n\n- **Linux deb 覆盖升级不动**:2.5.5 升 2.5.6 前后,这些文件的内容完全没变(实测)。\n- **Windows**:应用内更新让安装器跳过卸载这一步;手动运行新版安装器时,「已安装」页默认选「安装前卸载」,接着运行旧版的卸载程序,里面的「删除应用程序数据」默认不勾,不勾就保留,勾了才删 `%APPDATA%` 和 `%LOCALAPPDATA%` 下的同名目录。**这对你意味着**:看到这个复选框别勾;卸载同时会删掉系统服务(见上)。手动运行安装器这部分 Windows 上用 2.5.5、2.5.6 实测过;应用内更新跳过卸载按源码;2.5.2 及更早的卸载页没有核对。\n- **Mac**:配置目录不在应用程序包里,替换「应用程序」里的 Clash Verge 不会碰它(按源码)。\n- **便携方式**:2.5.2 及以前(1.x 也一样),程序目录下有 `.config/PORTABLE` 时,配置放在程序目录下的 `.config` 里;官方 1.4 到 1.7 各版的发布页带便携包,2.x 没有。2.5.4-rc 起(正式版是 2.5.5)移除了便携模式,一律用上面的系统目录,2.5.6 的源码里没有搬迁旧配置的处理。\n\n官方卸载页还建议每次升级后清空「WebView 缓存目录」(Windows `%LOCALAPPDATA%\\io.github.clash-verge-rev.clash-verge-rev`,Mac `~/Library/Caches/io.github.clash-verge-rev.clash-verge-rev`,Linux `~/.cache/io.github.clash-verge-rev.clash-verge-rev`)。那是界面缓存,名字和配置目录一样、位置不同,清它不丢订阅;**别把两个弄混**。\n\n配置目录按钮旁,Clash Verge Rev 自己的提示是「如果软件运行异常,!备份!并删除此文件夹下的所有文件,重启软件」,也就是官方确实建议软件运行异常时先备份、再删光重启。**作者建议**:升级后出问题先别急着删,先按下一节把备份放到配置目录以外再说,因为本地备份就存在配置目录里,一起删就没了;升级本身也不需要删配置目录。\n\n## 升级前、动手清理前先备份\n\n**本地备份存在配置目录里面**(`clash-verge-rev-backup` 文件夹),配置目录没了它也跟着没了(源码与实测)。所以要把备份放到配置目录以外:\n\n1. 「设置 → Verge 高级设置 → 备份设置」,在「本地备份」下点「备份」。\n2. 点「查看记录」,在刚建的那份备份上点下载图标,在弹出的保存窗口里选桌面这类配置目录以外的位置(实测)。\n3. 恢复:在同一处点「导入备份」选这个 zip,再在「查看记录」里点恢复图标,Clash Verge Rev 会自动重启(实测恢复后订阅、代理组和选中的节点与之前逐个相同)。\n\n备份包里有全部订阅文件、`profiles.yaml` 和设置(WebDAV 账号密码会去掉),等于你的订阅本身,**不要发给别人**。也可以从托盘退出 Clash Verge Rev 后把整个配置目录复制一份(作者建议)。拷回去之前先删掉备份里的 `singleton-instance.json`、`singleton-instance.lock`(2.5.4 以后的配置目录才有),不然 Windows 上 2.5.6 会起不来,提示 `failed to initialize singleton lock: current-user file DACL is not protected`(实测)。\n\n## 实在不行才退回上一版\n\n- **旧版还在**:GitHub 发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases> 上 2.5.2、2.5.1 等旧版都还在,没有被新版覆盖(2026-09-27 核对);「Latest」标签只指向最新的正式版。选哪个文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file),下完按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对。\n- **官方文档站(含 FAQ)里没找到降级说明**(2026-09-27 查)。Windows 安装器允许降级,但会提示「有一个更新版本的 Clash Verge 已经安装了!不推荐你安装旧的版本」(Windows 上实测)。\n- **配置能不能读,只验证过一对版本**:Linux 上把 2.5.6 装回 2.5.5,订阅、代理组、选中的节点都在,没有报错,Windows 上装回后订阅也在;这两版的配置代码没有改动,不能推广成随便降级都行。\n- **降级后装过服务的要再重装一次**:保持默认「安装前卸载」的,服务直接被删,从「虚拟网卡模式」开关装;选「请勿卸载」的,服务版本对不上,打开时弹「需要更新系统服务」,点「重新安装服务」(Windows 实测);开着「自动检查更新」的,旧版会在后台下载新版,下载通过签名校验、留下 `update_cache` 后每次启动都问装不装(Linux ARM 装 2.5.6 时校验不过、不留缓存,也就不会问;arm64 实测,armhf 按同样缺签名文件推断),想停在旧版就先在「设置 → Verge 基础设置 → 杂项设置」里关掉「自动检查更新」(作者建议);已经下载好、启动时还在问的,再从托盘退出,删掉配置目录里的 `update_cache` 文件夹——启动时这一问只看有没有下载好、版本比正在用的新的更新包,不看这个开关(按源码)。\n\n## Clash Party\n\nClash Party 的版本号在设置页最下方「应用版本」;数据目录可以从托盘「打开目录 → 应用目录」打开。Linux 上实测是 `~/.config/mihomo-party`;按 Electron 的默认规则,Windows 是 `%APPDATA%\\mihomo-party`,Mac 是 `~/Library/Application Support/mihomo-party`(没有实机核对)。用便携版的,数据在程序文件夹里的 `data` 文件夹,换到新文件夹解压时要把它带过去。备份在设置页「备份与恢复」的「导出备份」「导入备份」。应用内更新只支持 Windows 和 Mac;Windows 卸载时「同时删除用户数据(设置、订阅、日志等)」默认不勾(按源码)。Linux 上 deb 从 2.0.2 覆盖装 2.0.3,订阅和选中的节点都保留(实测)。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.6 与前几版、Clash Party 2.0.3 的源码和官方文档核对;在 Linux 虚拟机(Ubuntu arm64,官方 deb)里实测了 Clash Verge Rev 2.5.5 升 2.5.6、服务比软件旧、用导出的备份恢复、2.5.6 装回 2.5.5 和 Clash Party 2.0.2 升 2.0.3,在 Windows 11 实机上用官方安装包实测了覆盖升级、降级、「请勿卸载」、勾「删除应用程序数据」和便携方式升级。\n\n- Mac 没有实机核对;应用内更新之后的服务状态(包括从 2.5.2 更新上来)Windows 上也没有实测,只按源码写。\n- Linux 上「服务比软件旧」是把新版文件直接解开模拟的,虚拟机里没看到授权窗口;只测了 deb,rpm 按源码与文档。\n- 「下次启动时询问」只用手工放置的缓存触发过;Windows 上真实的后台下载留下了缓存,但之后的询问没有看到。\n\n## 取证\n- **bau-no-service-prompt**:打开后没有一上来就弹出标题为「需要更新系统服务」、关不掉的对话框,也没有提示「服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用。」吧?Clash Party 没有这两样,直接答「是」\n agent 提示:那条提示几秒后会消失。Windows 上没看清的:装过服务、开过 TUN,而首页「系统信息」卡片的「运行模式」现在是「用户模式」,也算出现过(服务被卸掉时也是这样,处理方法一样:从「虚拟网卡模式」开关装服务)\n pass → bau-version-changed;fail → bau-service-version-mismatch;unknown → bau-version-changed\n- **bau-version-changed**:版本号换成新的了吗?Clash Verge Rev 看「设置」页「Verge 高级设置」里的「Verge 版本」,Clash Party 看设置页最下方的「应用版本」,和你要装的版本号对一下\n agent 提示:Clash Verge Rev 首页「系统信息」卡片里也有版本号\n pass → bau-profiles-present;fail → bau-still-old-version;unknown → bau-profiles-present\n- **bau-profiles-present**:原来的订阅还在吗?Clash Verge Rev 的「订阅」页只剩「全局扩展覆写配置」「全局扩展脚本」两张卡片、「代理」页提示「尚未导入订阅」的,算不在;Clash Party 看「订阅管理」页\n pass → bau-tun-still-on;fail → bau-config-dir-missing;unknown → bau-tun-still-on\n- **bau-tun-still-on**:升级前开着虚拟网卡模式(TUN)的:「设置」页「虚拟网卡模式」开关现在还开着、旁边没有橙色三角吧?升级前没开过 TUN 的、以及 Clash Party,直接答「是」\n pass → bau-core-running;fail → bau-service-removed;unknown → bau-core-running\n- **bau-core-running**:(Clash Verge Rev 首页能看到「当前节点」、Clash Party 侧栏「代理组」页能看到节点,而且网页能打开的,已经好了,不用答这一问,直接按本页最后的核对确认。)内核在正常运行吗?首页显示内核未运行、弹红色报错、代理页空白或节点列表是空的,都算没有,选「失败」;这些都没有、网页却还是打不开或者别处还不对的,选「通过」\n pass → escalate;fail → bau-core-fails;unknown → bau-core-fails\n\n## 原因\n- **bau-still-old-version**(可能性 medium)→ 修复 bau-finish-the-update\n- **bau-config-dir-missing**(可能性 low)→ 修复 bau-restore-config\n- **bau-service-version-mismatch**(可能性 high)→ 修复 bau-reinstall-service\n- **bau-service-removed**(可能性 high)→ 修复 bau-install-service-again\n- **bau-core-fails**(可能性 medium)→ 修复 bau-read-the-core-error\n\n## 修复\n### bau-finish-the-update\n1. **用 Clash Party 的只看这一步**(本组其余几步只适用 Clash Verge Rev):按源码它的应用内更新只支持 Windows 和 Mac,Linux 上要自己去它的 GitHub 发布页下载新版 deb 或 rpm 安装;Windows、Mac 上应用内更新没装上的,同样去发布页下载新版手动装(作者建议)。Linux 上用 deb 从 2.0.2 覆盖装 2.0.3 实测过:订阅和选中的节点都在,「应用版本」变成了新版本号。\n2. **Clash Verge Rev,在「新版本 v…」窗口里点过「更新」的**:Clash Verge Rev 会当场下载、安装并自动重启,不会等到下次启动再问(按源码)。重启后还是旧版,或者右上角弹了红色提示,就是这次更新没装上,看下面「更新本身没成」那一步。\n3. **Clash Verge Rev,没点过「更新」、只是开着「自动检查更新」的**:新版在后台下载,下载完、通过签名校验,在配置目录里留下 `update_cache` 文件夹、缓存的版本又比正在用的新,**下次启动时才问**「新版本 (v…) 已下载完成,是否立即安装?」;配置目录里没有 `update_cache` 的,重启也不会问(按源码)。点了「稍后」或者安装出错,都会照常打开旧版,下次启动再问;超过 30 秒没装完也先打开旧版,日志写 `will retry next launch`(按源码;「稍后」在 Linux 实测)。所以先从托盘菜单点「退出」(Mac 在菜单栏图标里退出),再打开,看到这个弹窗点「立即安装」。**Linux ARM**(安装包文件名带 arm64、armhf、aarch64、armhfp 的)更新到 2.5.6 时等不到这个弹窗:发布页上这几个包没有签名文件,后台下载完签名校验就失败,不留缓存(arm64 实测,armhf 按同样缺签名文件推断),直接去发布页手动装(见下一步)。\n4. **更新本身没成**:点「更新」后弹红色提示、进度条卡住、自动重启后还是旧版,或者开着自动检查却重启几次都等不到上面那个弹窗的,按 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed) 处理;最省事的是去官方发布页下载 Latest 那一版手动装(选文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file))。\n5. **Windows**:官方 FAQ 说,从很旧的版本应用内更新,可能认不出原来的安装目录,结果装到了 C 盘默认目录、或者更新后仍是旧版本;办法是卸载系统里所有的 Clash Verge Rev,再装最新版。卸载前先按正文「升级前、动手清理前先备份」一节导出备份;卸载界面里的「删除应用程序数据」不要勾(它默认不勾,勾了才删配置目录;Windows 实测)。卸载还会同时删掉系统服务(Windows 实测),装过服务的,装好新版后从「虚拟网卡模式」开关重新安装服务。官方 FAQ 说的这种情况没有在 Windows 上复现。\n6. **Mac**:官方 FAQ 说,旧版还开着时安装新版,会导致两个都损坏。手动安装前先从菜单栏图标退出 Clash Verge Rev,再把新版拖进「应用程序」替换。\n验证:bau-works-again\n\n### bau-restore-config\n1. **用 Clash Party 的只看这一步**(本组其余几步只适用 Clash Verge Rev):以前导出过备份的,在设置页「备份与恢复」里点「导入备份」选它(按源码)。用便携版的,数据在程序文件夹里的 `data` 文件夹:把新版解压到了新文件夹的,从托盘退出后,把旧程序文件夹里的 `data` 整个复制到新程序文件夹里,再打开(按源码,没有实测)。既没有备份、旧数据也找不回来的,在「订阅管理」页的输入框(提示文字「请输入您的订阅网址」)里填订阅地址,点「导入」重新导入(Linux 上这样导入过订阅),自己改过的覆写也要重新加。\n2. **Clash Verge Rev**:先别再删、别再重装。点「设置 → Verge 高级设置 → 配置目录」打开配置目录(位置见正文「配置目录在哪」一节),看两处:`profiles` 文件夹里除了全局扩展覆写、全局扩展脚本那两个文件以外,还有没有别的文件(每个订阅一个);有没有 `clash-verge-rev-backup` 文件夹、里面有没有 `.zip`。`profiles.yaml` 和 `profiles` 文件夹本身在不在说明不了什么:Clash Verge Rev 每次启动发现它们不在,都会自己新建一份空的(按源码,Windows 上实测也是这样)。有 zip 的,在「备份设置 → 查看记录」里能看到它,直接点恢复图标;只有订阅文件、没有 zip 的,先别动,带着这个现象去求助;两样都没有的,看下面「便携版」和「重新导入」两步。**作者建议**:动手前从托盘退出 Clash Verge Rev,把这个文件夹整个复制一份到别处,免得越弄越少。\n3. 以前导出过备份(一个 zip 文件)的:打开「设置 → Verge 高级设置 → 备份设置」,在「本地备份」下点「导入备份」选这个 zip,再点「查看记录」,在这份备份上点恢复图标并确认。提示「恢复成功,应用将在 1 秒后重启」后,Clash Verge Rev 会自己重启,订阅、代理组和选中的节点都会回来(Linux 实测)。\n4. 以前用过 1.x 的官方便携包、或者自己把 Clash Verge Rev 改成便携方式用(程序目录下有 `.config\\PORTABLE` 文件)的:2.5.4-rc 起(正式版是 2.5.5)不再支持便携模式,一律改用系统的配置目录,也不会把旧配置搬过去;旧配置还在程序目录下的 `.config\\io.github.clash-verge-rev.clash-verge-rev`(Windows 上从 2.5.2 覆盖装 2.5.6 实测)。从托盘退出后,把这个文件夹里的东西复制到新的配置目录里、覆盖同名文件,再打开。\n5. Clash Verge Rev 既没有备份、旧文件夹也找不回来的,只能重新导入订阅(做法见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup);Clash Party 的做法见本组第一步),自己改过的规则、覆写也要重新加。Clash Verge Rev 的本地备份存在配置目录里面,配置目录没了它也跟着没了(Linux 实测),所以没导出过的备份也找不回来。\n验证:bau-works-again\n\n### bau-reinstall-service\n1. **弹出「需要更新系统服务」对话框时**:点对话框右边那个按钮(按服务状态可能叫「重新安装服务」「修复服务」或「安装服务」),完成授权。成功后右上角提示「Clash Verge 系统服务已更新」,首页「运行模式」变回「服务模式」。「继续使用 Sidecar」只管这一次运行:能上网、首页显示「用户模式」、开不了 TUN,下次打开还会弹同一个对话框(Linux 模拟实测;Mac 按源码,未实测)。Windows 上用安装包覆盖、选了「请勿卸载」,升级前又开着虚拟网卡(服务模式)的,旧服务拉起的内核还在跑,点「继续使用 SIDECAR」会失败:右上角红色提示「继续使用 Sidecar 失败 the service has an active or recovering core session」,对话框不消失,这时直接点「重新安装服务」(Windows 实测)。Linux 上真实的 deb、rpm 升级会先把服务卸掉,一般走到的是下面「服务被卸掉了」那一种。\n2. **作者建议**:不用 TUN、又不想每次打开都被问的,要么点一次重新安装服务,要么先点「继续使用 Sidecar」,再按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)「怎么卸载、切回用户模式」把服务卸掉;点「继续使用 Sidecar」失败的(上一步那种情况),先点一次「重新安装服务」,再去卸服务。以普通方式运行时,服务没装,启动就不弹这个对话框(Linux、Windows 实测);以管理员身份运行的不一样,Linux 上以 root 运行、没装服务时实测每次运行仍要点一次「继续使用 Sidecar」才开得了 TUN,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 同一节。\n3. **Windows 应用内更新之后出现提示「服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用。」**:按源码,应用内更新之后服务版本不符时一般不弹那个对话框,而是自动改用用户模式运行,TUN 用不了。到「设置」点「虚拟网卡模式」开关,在弹出的「TUN 模式需要系统服务」里点「安装服务」,把服务重装一遍(按源码,Windows 上没有实测)。用安装包手动覆盖、选了「请勿卸载」的不一样:打开时会弹「需要更新系统服务」,右边是「重新安装服务」,按本组第一步处理(Windows 实测)。\n4. 重装失败、重装后变成别的提示(例如「服务无法确认内核文件及所在目录是否安全」),或者装好了 TUN 还是不通的,按提示原文到 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 找对应的一节;TUN 开了不通看 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n验证:bau-works-again\n\n### bau-install-service-again\n1. **服务被卸掉了**:Linux 用 deb、rpm 升级(包括应用内更新和同一版本重装),以及 Windows 手动运行新版安装器、保持默认的「安装前卸载」,都会把服务卸掉。第一次打开新版时虚拟网卡模式被自动关掉,不弹对话框或通知,设置页开关旁出现橙色三角,首页「运行模式」是「用户模式」(Linux 上 deb 实测,Windows 上除「运行模式」外都实测过;rpm 按源码与文档)。\n2. 到「设置」点「虚拟网卡模式」开关,弹出「TUN 模式需要系统服务」时点「安装服务」并完成授权。装好后开关会自动打开,首页显示「服务模式」(Linux、Windows 实测)。以后每次用安装包升级都要再装一次。装不上的看 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n验证:bau-works-again\n\n### bau-read-the-core-error\n1. **用 Clash Party 的只看这一步**(本组其余两步只适用 Clash Verge Rev):内核起不来的,按 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error) 处理。\n2. Clash Verge Rev 首页显示内核未运行、代理页空白、弹「启动内核失败」或内核通信错误的,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 处理。升级后订阅还在、节点却加载不出来的,打开日志(位置见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))看具体是哪一句报错,照原文去查,不要先删配置目录。\n3. Clash Verge Rev 上面都走不通、急着用的,最后才考虑装回上一版,做法和代价见正文「实在不行才退回上一版」一节。官方文档站里没找到降级说明。\n验证:bau-works-again\n\n## 验证\n- **bau-works-again**(人):打开 Clash Verge Rev,看有没有弹对话框,再看版本号、订阅页、代理页、「设置」页的「虚拟网卡模式」开关和首页,用浏览器打开一个平时要走代理的网页。用 Clash Party 的,看设置页最下方的「应用版本」、「订阅管理」页和侧栏「代理组」页,再同样试开那个网页。\n 预期:Clash Verge Rev:打开时不再弹「需要更新系统服务」;版本号是新的;订阅、代理组和你选的节点都在;升级前开着 TUN 的,「虚拟网卡模式」开关开着、首页显示「服务模式」;网页能打开。Windows 上以管理员身份运行的,首页显示的是「管理员 + 服务模式」。退回上一版的,版本号是你装回的那一版;按上面作者建议卸掉了服务、不用 TUN 的,首页显示「用户模式」、开关关着也算好了。以管理员身份运行、打算不装服务的,首页显示「管理员模式」、TUN 开得了就算好了:Linux 上以 root 运行,每次运行要点一次「继续使用 Sidecar」;Windows 上 TUN 原本关着的,点开关直接打开,上次退出时开着的,启动时弹「需要更新系统服务」,点「继续使用 SIDECAR」后直接就位(都是实测)。Clash Party:「应用版本」是新版本号,订阅还在、原来选的节点还选着,网页打得开,就是好了(它不看对话框、虚拟网卡开关和「服务模式」)。不是这样的,回到开头按你看到的现象重新对照,还不行就带着日志去求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/utils/dirs.rs L11-L14、L28-L32(配置目录 = 系统数据目录下的 io.github.clash-verge-rev.clash-verge-rev;本地备份目录名)、L95-L111(本地备份目录、verge.yaml、profiles.yaml 都在配置目录里);dirs.rs 全文没有便携目录或迁移旧配置的处理;src-tauri/src/utils/init.rs L429-L447(启动时补建配置目录与 profiles 文件夹)、L449-L480(profiles.yaml 不在时写一份默认的);src-tauri/src/core/backup.rs L272-L320(备份包内容:profiles/、config.yaml、去掉 WebDAV 账号的 verge.yaml、DNS 配置、profiles.yaml);src-tauri/src/feat/backup.rs L208-L250(导入)、L325-L348(恢复)、L351-L368(导出);src/components/setting/mods/backup-viewer.tsx L166-L209(本地备份的「备份」「查看记录」「导入备份」);src/components/setting/mods/update-viewer.tsx L235-L284(更新窗口点「更新」:downloadAndInstall 后直接 restartApp,出错弹红色提示);src-tauri/src/core/updater.rs L44-L73(update_cache)、L152-L186(启动时询问,稍后保留缓存;L160-L172 缓存的版本不高于正在用的版本时删掉缓存、不问;读不到缓存就不问)、L241-L252、L259-L300(安装出错或 30 秒超时留在旧版,日志写 will retry next launch)、L412-L502(后台下载、启动 10 秒后检查、每 24 小时;L457-L480 下载完成并通过签名校验后才写 update_cache);src-tauri/src/utils/resolve/mod.rs L168-L185(启动时先问已下载的更新,不看自动检查更新开关);crates/clash-verge-i18n/locales/zh.yml L34-L36;src-tauri/src/core/runstate/probe.rs L39-L80(服务构建版本必须等于应用内置的服务版本,否则 NeedsReinstall);src-tauri/Cargo.toml L102(clash_verge_service_ipc v2.7.4);src/components/layout/service-migration-dialog.tsx L38-L46(按服务状态选「安装服务」「修复服务」「重新安装服务」)、L183-L209(对话框没有关闭入口);src/locales/zh/layout.json L23-L39;src-tauri/src/core/manager/lifecycle.rs L367-L390(继续使用 Sidecar 只记在运行状态)、L597-L683(Windows 服务不可用或版本不符时改用 Sidecar 并发出降级提示);src/locales/zh/settings.json L26-L27、L182-L207(L186 配置目录按钮的提示原文)、L326-L345、L405、L411(杂项设置里的自动检查更新)、L443、L693;src/components/setting/setting-verge-basic.tsx L265-L266(杂项设置在 Verge 基础设置里);src-tauri/src/feat/tun.rs L16-L37(启动时确认服务没装就关掉 TUN 并写进配置,不发提示)、L60-L84(运行中关掉时提示);src-tauri/packages/linux/pre-remove.sh L1-L2;src-tauri/tauri.linux.conf.json L13-L14、L24(deb 与 rpm 共用它作卸载前脚本);src-tauri/packages/windows/installer.nsi L157-L174(页面顺序:欢迎页;许可页只在配置了许可文件时才有,Windows 上 2.5.5、2.5.6 实测都没有;然后是已安装页)、L222-L308(已装旧版时的两个选项、默认选第一项「安装前卸载」、L305-L308 更新模式跳过卸载;降级时的提示)、L334-L347(安装前卸载运行旧版卸载程序)、L410-L447(卸载确认页的「删除应用程序数据」复选框,创建时不勾)、L634-L658(安装时只启动已存在的服务)、L660-L697(RemoveVergeService:停止并删除 clash_verge_service)、L895-L982(Install 段不安装服务)、L1097-L1105(Uninstall 段不论是否更新都执行 RemoveVergeService)、L1288-L1304(勾了且不是更新模式才删 %APPDATA% 与 %LOCALAPPDATA% 下的同名目录);src-tauri/tauri.windows.conf.json(没有设 allowDowngrades);src/components/layout/sysproxy-privilege-dialog.tsx L29-L34、L158-L168(点 TUN 开关弹出的安装引导,确认按钮固定是「安装服务」))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(Changelog.md L32(优化系统服务兼容性检查:升级后服务版本或协议不兼容时,提示重新安装);src-tauri/Cargo.toml L102(clash_verge_service_ipc v2.7.3);src-tauri/packages/linux/pre-remove.sh L1-L2(与 v2.5.6 相同);src-tauri/packages/windows/installer.nsi L1097-L1105(卸载时执行 RemoveVergeService,宏在 L660))\n- cvr-repo-v2-5-4-rc2:https://github.com/clash-verge-rev/clash-verge-rev/tree/13676d3335b4242a8342541bdd510295502268c1(src-tauri/Cargo.toml L102(clash_verge_service_ipc v2.7.2))\n- cvr-repo-v2-5-4-rc:https://github.com/clash-verge-rev/clash-verge-rev/tree/c7ffb212947664bad06482c761de6cfb96368d72(Changelog.md L58(新增服务模式多用户隔离,支持旧版服务升级迁移)、L93(移除便携模式,统一使用系统应用数据目录);src-tauri/Cargo.toml L102(clash_verge_service_ipc v2.7.1))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/utils/dirs.rs L27-L67(程序目录下有 .config/PORTABLE 时,用 <程序目录>/.config/io.github.clash-verge-rev.clash-verge-rev 当配置目录);src-tauri/Cargo.toml L102(clash_verge_service_ipc 2.3.3)、Cargo.lock L1211-L1213(锁定 clash-verge-service-ipc 提交 b964ed2);src-tauri/packages/windows/installer.nsi L1064-L1072(卸载时执行 RemoveVergeService,宏在 L645);另用 GitHub API 列出 Release(2026-09-27):v2.5.6、v2.5.5、v2.5.4-rc.2、v2.5.4-rc、v2.5.2、v2.5.1、v2.5.0、v2.4.x 等都还在,tag v2.5.2 指向 28f2efc;复核时又列出全部 Release 的资产:v1.4.x 至 v1.7.7 带 portable 便携包,v2.0.1 起各版都没有)\n- cvr-repo-v1-7-7:https://github.com/clash-verge-rev/clash-verge-rev/blob/41f8cc29d1034a78902ae40410a35b758ce48dfa/src-tauri/src/utils/dirs.rs(L11(APP_ID io.github.clash-verge-rev.clash-verge-rev)、L27(便携标记 .config/PORTABLE)、L48(便携时配置目录是 <程序目录>/.config/<APP_ID>))\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/core/paths.rs L58-L60、L185-L205(服务装在 macOS /Library/Application Support/clash-verge-service、Linux /var/lib/clash-verge-service 下的 bin);src/core/paths/windows.rs L30-L38(Windows 在 ProgramData 下);src/channel.rs L15(Windows 服务名 clash_verge_service,与安装器卸载时删除的同名);src/lib.rs L77(版本号取自包版本))\n- cvr-service-ipc-2-3-3:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b964ed2992599fadefd589425c1acdabcb875623(src/bin/install_service.rs L155-L189(Linux:systemd 单元的 ExecStart 是安装程序旁边的 clash-verge-service,即软件自己的目录)、L217(Windows 服务名 clash_verge_service)、L240-L255(Windows:服务程序路径是安装程序旁边的 clash-verge-service.exe,即软件目录))\n- tauri-updater-2-12-0:https://github.com/tauri-apps/plugins-workspace/tree/5baf71a47292d8490f0ba3d53f15224e55c48327(plugins/updater/src/updater.rs L892-L893(Windows 应用内更新给安装器加 /UPDATE)、L1126-L1141(Linux 应用内更新用 dpkg -i 装 deb、rpm -U 装 rpm))\n- tauri-utils-2-9-3:https://github.com/tauri-apps/tauri/tree/6f6ab1207bb3923c2721fbc67d2fdb1c8deb0c7a(crates/tauri-utils/src/config.rs L1038、L1056-L1062、L1083-L1091(WindowsConfig.allow_downgrades 默认为 true);Clash Verge Rev 的 tauri.windows.conf.json 没有设置它)\n- tauri-nsis-zh:https://github.com/tauri-apps/tauri/blob/8909f221d1515955fc843808032bdc5d62209c96/crates/tauri-bundler/src/bundle/windows/nsis/languages/SimpChinese.nsh(L2(已安装)、L7(选择你想要安装…的方式)、L9(请勿卸载)、L13(有一个更新版本的…已经安装了!不推荐你安装旧的版本)、L15(系统中已存在版本为…推荐先卸载当前版本后再进行安装)、L19(安装前卸载)、L27(删除应用程序数据))\n- rpm-4-20-1:https://github.com/rpm-software-management/rpm/blob/c8dc5ea575a2e9c1488036d12f4b75f6a5a49120/docs/manual/triggers.md(L97-L99(普通脚本的 $1 是操作完成后仍装着的实例数)、L140-L170(单个包升级时先执行新包的安装后脚本,再执行旧包的卸载前脚本))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(package.json L2(name 为 mihomo-party,全文没有 productName);src/main/utils/dirs.ts L8-L37(数据目录是 Electron 的 userData,程序目录有 PORTABLE 文件时用程序目录下的 data);src/main/resolve/autoUpdater.ts L153-L166(安装更新的文件映射只有 Windows 与 macOS)、L223-L224(Windows 静默运行安装器);build/installer.nsh L18-L60(卸载时「同时删除用户数据(设置、订阅、日志等)」默认不勾);src/main/resolve/tray.ts L326-L338(托盘「打开目录 → 应用目录」打开数据目录);src/renderer/src/components/settings/local-backup-config.tsx L71-L74(设置页「备份与恢复」);src/renderer/src/pages/profiles.tsx L285、L350、L404(「订阅管理」页的订阅地址输入框与「导入」按钮);src/renderer/src/components/sider/proxy-card.tsx L108(侧栏「代理组」);src/renderer/src/locales/zh-CN.json L320-L324、L437、L450、L569-L573、L792-L793)\n- electron-app-docs-v43-7-3:https://github.com/electron/electron/blob/79de330422c91960492053e3e7d894911eddb55a/docs/api/app.md(L612-L620(appData 在 Windows 是 %APPDATA%、macOS 是 ~/Library/Application Support;userData 默认是 appData 加应用名))\n- cvr-uninstall:https://www.clashverge.dev/uninstall.html(卸载软件 → 相关文件及目录:Windows、macOS 的配置(软件工作)目录与订阅文件目录 profiles;#linux 表:配置(软件工作)目录与订阅(配置)文件目录在 ~/.local/share/io.github.clash-verge-rev.clash-verge-rev/,「Clash Verge 配置文件」verge.yaml 与窗口状态文件两行写在 ~/.config/io.github.clash-verge-rev.clash-verge-rev/;三个平台的「WebView 缓存目录」一行(Linux ~/.cache/io.github.clash-verge-rev.clash-verge-rev):强烈建议每次升级后清空此目录)\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(应用内更新后自动安装到了 C 盘默认目录/应用内更新后仍然是旧版本(从很旧的版本升级认不出已安装目录;卸载系统中的多个 Clash Verge Rev 后重新安装最新版本))\n- cvr-faq-macos:https://www.clashverge.dev/faq/macos.html(软件包损坏:现有 Verge 正在运行时尝试安装新版本导致两个都损坏)\n- exp-broken-after-client-update-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-broken-after-client-update-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-latest-version-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-tun-mode-not-working-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:f39a279 2026-10-02\n"},"browser-local-network-prompt":{"id":"browser-local-network-prompt","type":"troubleshoot","title":"开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽","aliases":["查找并连接到本地网络上的任何设备","访问本地网络中的其他设备","访问此设备上的其他应用和服务","网站想要查找并连接本地网络上的设备","浏览器本地网络访问权限提示","Chrome 本地网络访问权限","开了 TUN 浏览器提示访问本地网络","开了虚拟网卡 网页要连接本地网络设备","本地网络访问权限 允许还是阻止","198.18 算不算本地网络"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","tun-and-service"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-29","freshness":"current","markdown":"# 开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-29\n\n开了虚拟网卡模式(TUN)后,浏览器弹出「example.com 想要 访问本地网络中的其他设备」或「访问此设备上的其他应用和服务」(Windows 上的正式版 Chrome 152 实测是这两种;更早的版本按源码写成「查找并连接到本地网络上的任何设备」),是 Chrome 的本地网络访问权限提示:这个网页要连你局域网里的设备(路由器、NAS、打印机)或本机上的软件,浏览器先问你同不同意(按源码)。它不是 Clash Verge Rev 的报错,也不说明虚拟网卡模式出了问题(作者说明)。\n\n- **不认识这个网站、想不出它为什么要连:点「屏蔽」。** 网页一般照常能看,只是它连本地设备的那部分不能用(Linux 上实测)。\n- **你正用它管理家里的设备,或者网页要唤起本机装的客户端:点「允许」。**\n- 点错了:点地址栏左边的图标(提示「查看网站信息」),在权限里改。\n\n## 为什么开了虚拟网卡才弹\n\n只开系统代理时,浏览器经 Clash Verge Rev 在本机开的端口上网(系统代理地址默认就是本机,按源码),Chrome 把这时打开的网页都当成来自代理所在的本机,网页再连局域网或本机,浏览器也不会问你(Linux 上实测)。开虚拟网卡、系统代理关着时,浏览器直接连网站;网站被解析成临时地址(fake-ip,见 `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)):198.18 开头的,Clash Verge Rev 开着 IPv6 时 Chrome 连的多半是 2001:2 开头的那个,Chrome 把这两段都算公网地址(按源码,Linux 上实测)。网页再去连局域网或本机,就轮到这项检查了。提示本来就该有,之前是被系统代理盖住了(作者说明)。\n\n两种接管方式的区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。\n\n## 几条边界\n\n- **别为了不弹去重新开系统代理**:那样网页照样能连你的本地设备,只是浏览器不再问你(Linux 上实测;Windows 上实测了连本机的那一半)。\n- **打开「DNS 覆写」(默认内容)、又开着 IPv6 时,开着虚拟网卡也不弹**:这时网站被解析成 fdfe 开头的临时地址,Chrome 把它算本地网络,网页连局域网和本机都不再问你(Linux 上实测)。这不是修好了,是这项检查失效了;用不着「DNS 覆写」的,保持关着(作者建议)。订阅自带 DNS 配置的,打开「DNS 覆写」时还会先弹「是否开启 DNS 覆写?」,提醒可能导致节点无法连接或部分网站无法访问(Windows 上实测)。把 DNS 改成不用 fake-ip、或者关掉浏览器的安全 DNS,也不会让它消失:网站解析成真实地址时同样算公网(按源码)。\n- 这项检查在 Chrome 142 的源码里默认打开(按源码),所以升级浏览器后才第一次见到也正常(作者说明)。\n- Firefox 156 也有同类的站点权限,同样不把 198.18 开头的地址算本地(按源码),照上面的办法选就行(作者建议)。Edge 等其他用 Chromium 内核的浏览器没有核对。\n- 几乎打开每个网站都弹的,不属于上面的情况,带着浏览器版本和提示截图去求助(作者建议)。\n\n## 这些结论是怎么核对的\n\n按 Chromium 142 与 154 的源码(地址怎么分类、什么时候要权限、提示文字)、本地网络访问规范草案、Firefox 156.0.1 的源码和 Clash Verge Rev 2.5.6 的源码核对;在 Linux 虚拟机里用 Chrome for Testing 154、在 Windows 11 上用正式版 Chrome 152 实测了几种开关下弹不弹,以及提示与按钮的文字、点「屏蔽」「允许」的后果。限制:macOS、Edge 与 Firefox、Chrome 152 与 154 以外的版本没有实测;Windows 上只测了连本机的那一半,「DNS 覆写」加 IPv6 那条边界只在 Linux 上实测过;规范草案把 198.18 这一段列为本机地址,Chrome 以后照此修改的话,开虚拟网卡时的表现会变。文中「作者说明」「作者建议」指本站作者的解释与建议,不是浏览器或 Clash Verge Rev 官方的说法。\n\n## 取证\n- **lna-prompt-names-site**:提示是从浏览器地址栏下面弹出的小框,开头是一个网址、后面跟「想要」吗(例如「example.com 想要」,下面一行是「访问本地网络中的其他设备」或「访问此设备上的其他应用和服务」)?是的选「通过」。开头写的是浏览器自己的名字、从屏幕中间弹出的对话框,不是本条说的提示,选「失败」;拿不准选「无法判断」。\n pass → lna-ask-local-use;fail → escalate;unknown → escalate\n- **lna-ask-local-use**:你正用这个网站管理或使用家里、公司网络里的设备(路由器、NAS、打印机、摄像头这类),或者它要唤起这台电脑上装的软件(网页上的「打开客户端」「用客户端登录」这类按钮)吗?是的选「通过」;想不出它为什么要连、或者是第一次打开的网站,选「失败」;拿不准选「无法判断」。\n pass → lna-site-uses-local;fail → lna-site-no-need;unknown → lna-site-no-need\n\n## 原因\n- **lna-site-uses-local**(可能性 medium)→ 修复 lna-fix-allow\n- **lna-site-no-need**(可能性 high)→ 修复 lna-fix-block\n\n## 修复\n### lna-fix-allow\n1. 点「允许」。允许之后,这个网站就能连你局域网里的设备或本机上的软件,所以只给你信任、确实要用这个功能的网站(作者建议)。连局域网和连本机是分开问、分开记住的,一个网页两样都要连就会先后问两次(Linux、Windows 上实测)。以后想收回:点地址栏左边的图标(鼠标移上去提示「查看网站信息」),把面板里对应的开关关掉——「本地网络」管连局域网设备,「设备上的应用」管连本机软件(面板里的两个开关 Linux、Windows 上实测,各管哪一类按源码;旧版 Chrome 的面板没有核对,名称可能不同)。面板里另有一个「重置权限」按钮(Windows 上看到,点了之后的效果没有实测)。\n验证:lna-verify-allow\n\n### lna-fix-block\n1. 点「屏蔽」。Chrome 只拦这个网页去连局域网设备和本机软件的请求,网页本身照常能打开、刷新也正常;之后这个网站再要连,直接失败、不再问你(Linux 上用一个普通网页实测;Windows 上实测了连本机的那一半)。如果这个网站的主要内容就是连本地设备的那部分,那部分会显示不出来(作者说明)。以后发现确实要用,点地址栏左边的图标(鼠标移上去提示「查看网站信息」),只打开对应的那个开关:提示写的是「访问本地网络中的其他设备」的开「本地网络」,写的是「访问此设备上的其他应用和服务」的开「设备上的应用」(面板里的两个开关 Linux、Windows 上实测,各管哪一类按源码;提示只写「查找并连接到本地网络上的任何设备」的旧版 Chrome,面板没有核对,名称可能不同)。\n验证:lna-verify-block\n\n## 验证\n- **lna-verify-allow**(人):允许之后刷新网页,再用一次要连设备或唤起客户端的那个功能。\n 预期:功能可以用了。还是不行的,问题不在这个提示上,带着网站名、浏览器版本和报错截图去求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **lna-verify-block**(人):屏蔽之后看这个网页。\n 预期:网页本身能打开、能浏览,只是它连本地设备或本机软件的那部分功能用不了。网页整个打不开或一片空白的,先按上一步只把对应的那个开关打开,再刷新(旧版 Chrome 的提示只有一句、分不清对应哪个开关的,带着浏览器版本和网站信息面板的截图求助);还不行,看面板里另一个开关是不是也关着,这个网站确实要用就也打开;两个都打开后还是打不开,就不是这个提示的事:先按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 看虚拟网卡模式本身,仍不行带着网站名和浏览器版本求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n\n## 来源\n- chromium-v154-0-8037-95:https://github.com/chromium/chromium/tree/05d469856e75794131cc2e5d9b2f6b6f10a70388(services/network/public/cpp/ip_address_space_util.cc L247-L306(非公网地址表:私有网段、链路本地、运营商级 NAT、fc 与 fd 开头的 IPv6 唯一本地地址等算本地网络,127 开头的与 IPv6 本机地址算本机;表里没有 198.18 开头的那一段,也没有 2001:2 开头的那一段)、L315-L317(表外的地址一律算公网)、L379-L387(经代理取回的资源记为未知)、L393-L397(未知按公网比较)、L428-L456(网页属于哪一类,按取回它的那条连接的对端地址算);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/services/network/local_network_access_checker.cc L152-L176(只有目标比网页更「本地」时才要权限:公网网页连本地网络或本机);net/http/http_stream_parser.cc L229-L234(对端地址取自连接的另一端,经代理时就是代理);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/content/browser/renderer_host/local_network_access_util.cc L301-L331(导航时按这个对端地址定网页的类别);components/permissions_strings.grdp L45-L50 与 L228-L233(提示文字:访问本地网络中的其他设备 / 访问此设备上的其他应用和服务)、L234-L254(按钮:允许、屏蔽、访问该网站时允许、仅这次访问时允许、不允许、一律不允许);chrome/app/generated_resources.grd L446-L448(提示开头:<网址> 想要)、L10272-L10274(地址栏左边图标的提示「查看网站信息」);components/page_info_strings.grdp L362-L367(网站信息里列出这两项权限);中文译文见 https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/components/strings/components_strings_zh-CN.xtb L1478、L4736(提示)与 L235、L247、L1864、L1958、L2391、L3564(按钮),以及 https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/chrome/app/resources/generated_resources_zh-CN.xtb L5913)\n- chromium-v142-0-7444-273:https://github.com/chromium/chromium/tree/e71a79f2c8840e397347630dbf4e792b0daf0bc4(services/network/public/cpp/features.cc L218(本地网络访问检查默认打开;141.0.7390.135 的同一项默认关闭);components/permissions_strings.grdp L33-L35 与 L198-L200(提示文字:Look for and connect to any device on your local network);中文译文见 https://github.com/chromium/chromium/blob/e71a79f2c8840e397347630dbf4e792b0daf0bc4/components/strings/components_strings_zh-CN.xtb L4179(查找并连接到本地网络上的任何设备);services/network/public/cpp/ip_address_space_util.cc L240-L306(地址表与 154 相同,同样没有 198.18 开头的那一段))\n- wicg-lna-spec-067168a:https://github.com/WICG/local-network-access/tree/067168a9203339d1a919e85e05d3d16fd72d15b2(index.bs L945-L960(Proxies:Chromium 目前把经代理取回的资源当成来自代理自己的地址;经本地地址上的代理打开的网页被算作本地,随后可以不经询问连其他本地地址);L321-L324(草案的地址表把 198.18 开头的那一段列为本机,Chromium 154 与 Firefox 156.0.1 都没有这样实现))\n- firefox-v156-0-1:https://github.com/mozilla-firefox/firefox/tree/19a90052d7869f7b194ff27d316520366ad1d592(modules/libpref/init/StaticPrefList.yaml L15664-L15673(本地网络访问检查默认打开并拦截)、L15721-L15728(198.18 开头的地址默认不算本地,注释说是为了与 Chrome 一致);browser/locales/en-US/browser/browser.ftl L61-L64、L159-L162(地址栏里的本机设备、本地网络两项站点权限))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/enhance/tun.rs L13-L59(打开 TUN 且订阅没写别的增强模式时用 fake-ip;L42-L48 地址段没写就用 198.18 开头的一段,开了 IPv6 时再加 2001:2 开头的一段);src-tauri/src/core/sysopt.rs L426-L435(系统代理地址没设置时是本机回环地址))\n- exp-browser-local-network-prompt-gui-linux-2026-09-29:验证记录(内部存档,未公开)\n- exp-dns-leak-lna-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:fb4551b 2026-09-30\n"},"clash-meta-android-first-run":{"id":"clash-meta-android-first-run","type":"howto","title":"第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点","aliases":["CMFA","CMFA 导入订阅","ClashMetaForAndroid","Clash Meta 添加订阅","Clash Meta 从 URL 导入","Clash Meta 没有选择配置文件","Clash Meta No profile selected","Clash Meta 找不到代理页","Clash Meta 选节点","Clash Meta 延迟测试","Clash Meta 代理模式","Clash Meta 仅接受 http(s) 和 content 类型","Clash Meta Accept only http(s)","Clash Meta 自动更新订阅"],"primary_topic":"clash-meta-android","topics":["clash-meta-android","subscription-import","basics"],"intents":[],"applicability":{"client":["clash-meta-android"],"os":["android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-30","freshness":"current","markdown":"# 第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点\n\n主题:`客户端` › `Clash Meta for Android`\n适用:clash-meta-android / android / any\n最后验证:2026-09-30\n\nClash Meta for Android(CMFA)安卓版第一次用:主界面「配置」卡片 → 右上角「+」→「URL」→ 粘贴订阅链接、保存 → **回列表点一下这一行把它选中** →「点此启动」→ VPN 连接请求点允许 →「代理」页测延迟、选有数字的节点 → 看状态栏的 VPN 图标,用浏览器打开网页确认。\n\n**导入后不会自动选中**,不点那一下,启动只提示「没有选择配置文件」;**「运行中」不等于能上网**,选中不通的节点照样显示运行中(实测)。括号里是英文界面的写法。\n\n## 保存时报错\n\n中文界面下报错也是英文,点右边的「详情」(Detail)看全文(实测)。实测见过的三种:\n\n- **`yaml: unmarshal errors` 开头、带 `cannot unmarshal !!str`**:拿到的是一段文字,不是配置。实测假订阅服务返回 401、403、404 和一小段英文(`not found`、`forbidden` 这类)时就是这句,先去服务商面板确认订阅没过期、重新复制链接;反引号里是几个字母数字加省略号(`...`)时,可能是 base64 通用订阅(实测报错只带正文开头几个字符),要换 Clash(Meta)格式的。\n- **``profile does not contain `proxies` or `proxy-providers` ``**:内容不是 Clash 配置,实测假订阅服务返回 sing-box 格式、空内容、一段 YAML 写的错误说明时都是这句。向服务商要 Clash 格式的订阅,格式区别见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- **`Get \"` 加订阅地址开头**:没从订阅服务器拿到内容(模拟器上以 `EOF` 结尾,真机上可能不同)。**这句带着你的订阅链接**,贴给别人前先遮掉。\n\n## 以后更新订阅\n\n新建配置时「自动更新」(Auto Update)显示「已禁用」(Disabled)(实测,本站的假订阅没有带更新间隔);禁用时**服务商换了节点,CMFA 不会自己跟着变**。手动更新:那一行右边 ⋮ →「更新」(Update),或「+」左边的圆形箭头更新全部(实测)。要定时更新,在 ⋮ →「编辑」(Edit)里把「自动更新」填成不少于 15 的分钟数再保存。\n\n已经启动时,下载订阅这个请求也可能经节点出去:本站实测的订阅把所有流量都交给节点,导入、更新就走了当前选中的节点,节点那头到不了订阅地址时就失败。遇到下载失败,换一个节点再试,或停掉 CMFA 再更新(作者建议;停止时实测直连订阅地址)。\n\n## 适用范围与验证方式\n\nv2.11.34 的 arm64-v8a 包在 Android 16 模拟器上按本文用中英两种界面各走过一遍,另对过同版本源码;「关于」里显示的内核是 Alpha-ab405ba-260914,按源码即 mihomo v1.19.31。\n\n- 只测了模拟器,没测真机和其它安卓版本;通知、VPN 授权这两个系统弹窗只看了英文。\n- 节点在本机,延迟数字不代表真实线路;没等到自动更新真正触发,也没测剪贴板粘贴。\n\n## 步骤\n1. 从 GitHub 上项目自己的 Release 页下载:https://github.com/MetaCubeX/ClashMetaForAndroid/releases 。大多数手机用 `arm64-v8a`,老的 32 位设备用 `armeabi-v7a`,`x86`、`x86_64` 给 x86 架构的设备(电脑上的模拟器按它自己的架构选);`universal` 含全部架构、大一倍多,**拿不准就下它**(作者建议)。要求 Android 5.0 以上,官方建议 7.0 以上。\n 失败时 → escalate\n2. Android 13 及以上打开后会先问能不能发通知(版本界限按源码);实测不允许也能启动,只是通知栏里没有它的常驻通知。主界面点「配置」卡片(Profile)→ 右上角「+」→ 在「创建配置」(Create Profile)页选「URL」(实测)。\n 失败时 → escalate\n3. 表单里点「URL」,粘贴服务商给你的订阅链接,点「确认」(OK)。订阅链接**等同于账号凭据,别发给别人、聊天助手或在线工具**。「确认」灰着、下面有红字「仅接受 http(s) 和 content 类型」(Accept only http(s)):先检查链接复制全了没有、冒号和斜杠是不是被中文输入法打成了全角(全角这种模拟器上实测过)。再点右上角保存图标,**保存就立刻下载订阅**:成功回到列表、多出一行;失败停在原页、底部弹英文报错,见正文「保存时报错」(实测)。\n 失败时 → escalate\n4. **回到列表还要点一下这一行**:左边圆圈变实心、主界面卡片变成「新配置 已激活」(New Profile Activated)才算选中。导入后不会自动选中,第一条也不会;没选中就启动,底部只提示「没有选择配置文件」(No profile selected),不会启动(实测)。\n 失败时 → escalate\n5. 点主界面最上面的「已停止 / 点此启动」(Stopped / Tap to start),系统弹出 VPN 连接请求(Connection request)时点允许(英文是 OK)。卡片变成「运行中」(Running),多出「代理」卡片,状态栏出现钥匙图标(实测)。**点了取消,卡片停在「已停止」,没有任何提示**,再点一次会重新弹框(实测)。停止也是点这张卡片。\n 失败时 → escalate\n6. 点「代理」(Proxy)卡片,**填了深色的那张就是当前选中的节点**(实测)。点闪电图标测延迟(Delay Test):出现数字(毫秒,不带单位)的是测通了的,测不通的不显示;点另一张有数字的卡片就换过去(实测)。`DIRECT` 是直连、也会显示数字,别选它(作者建议);组里的节点点了没反应,是这一组不能手动选(比如自动选择),换一组(按源码)。代理模式在右上角「⋮ → 模式」(More → Mode),默认「不修改」(Do not modify)即照订阅的设置(实测),新手不用动(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **cmfa-connected-check**(人):看状态栏有没有钥匙形的 VPN 图标,再用浏览器打开一个不开代理时打不开的网页。\n 预期:图标在、网页能打开,就完成了(作者建议)。**「运行中」不代表节点能用**:实测选中一个不通的节点,卡片照样「运行中」,浏览器显示「HTTP ERROR 502」,这时换一个有数字的节点。整组都没有数字:先停掉 CMFA 确认手机本身能上网,能上网就把节点名和截图交给服务商,贴之前遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- cmfa-repo:https://github.com/MetaCubeX/ClashMetaForAndroid/tree/513b67fc35c68af1b0e7377681f95b33c074ecf7(README.md L13-L17(Android 5.0+ / 7.0+、架构);build.gradle.kts L187-L191(universal 包);app/…/MainActivity.kt L151-L164(Android 13+ 申请通知权限);design/…/adapter/ProxyAdapter.kt L32-L35(只有 Selector 组能点选);.gitmodules 与子模块 core/src/foss/golang/clash(指向 mihomo ab405ba))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(CMFA v2.11.34 内核子模块指向的提交,即 v1.19.31 标签)\n- exp-clash-meta-android-first-run-gui-2026-09-30:验证记录(内部存档,未公开)\n- exp-release-assets-which-file-cli-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:7647c51 2026-10-01\n"},"clash-party-core-start-error":{"id":"clash-party-core-start-error","type":"troubleshoot","title":"Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退","aliases":["内核启动出错","外部控制监听错误","mihomo party 内核启动出错","mihomo party 外部控制监听错误","内核启动出错 Error: 配置检查失败","内核启动出错 YAMLParseError","mihomo party 配置检查失败","mihomo party 启动时检查配置文件","虚拟网卡启动失败,请尝试手动授权内核","mihomo party 打开就闪退","mihomo party 闪退","mihomo party 升级后打不开","mihomo party 无法启动","mihomo party 应用初始化失败","mihomo party 需要更新 PowerShell","部分功能需要 PowerShell 5.1 才能正常运行","Windows Management Framework 5.1","检测到高权限内核","检测到运行中的高权限内核","A JavaScript error occurred in the main process","mihomo party Uncaught Exception","/tmp/mihomo-party.sock","mihomo party 闪退后电脑上不了网","mihomo party 窗口突然消失 托盘还在","mihomo party 点图标没反应"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-party"],"intents":[],"applicability":{"client":["clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-28","freshness":"current","markdown":"# Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退\n\n主题:`排错`\n适用:clash-party / windows/macos/linux / any\n最后验证:2026-09-28\n\n**内核(真正连节点的那个程序)起不来时,会弹一个写着「内核启动出错」的框,框里写的就是原因:「外部控制监听错误」,从托盘退出程序再打开;「配置检查失败」或 `YAMLParseError`,多是订阅或覆写有错(内核文件运行不了时也报前一句);「虚拟网卡启动失败,请尝试手动授权内核」,是虚拟网卡没授权。打开就闪退、升级后打不开的,看弹出的框:「需要更新 PowerShell」(检测到您的 PowerShell 版本为 2.x……)「检测到高权限内核」「应用初始化失败」「A JavaScript error occurred in the main process」。** 处理完点侧栏「内核设置」卡片上的刷新按钮(重启内核),卡片上不再显示「-」,就是起来了。\n\n本页按 2.0.3 版的源码写,Linux 上另在虚拟机里造出过其中几种情况。\n\n## 「内核启动出错」框里写的是\n\n- **外部控制监听错误**:界面和内核之间的本机连接点没建起来。它不是网络端口,和「内核设置」页的「监听地址」(外部控制器)无关。从托盘菜单点「退出应用」再打开:连接点的名字里带着这一次运行的进程号,重开就换一个新的(按源码)。\n- **配置检查失败**(启动时的框里前面多一个 `Error: `,Linux 上实测)或 **`YAMLParseError`**:「应用设置」里的「启动时检查配置文件」默认打开,内核先检查当前订阅连同覆写生成的配置,有错就不启动(按源码)。后面几行是内核给出的原因,拿去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查;有 `path is not subpath of home directory or SAFE_PATHS` 的,是配置里某个文件路径不在内核允许的目录里(按源码)。**作者建议**:先在「订阅管理」页换回以前能用的订阅,或撤掉刚加的覆写,再重启内核。是 `YAMLParseError` 的,是某个 YAML 覆写文件本身写错了,到「覆写」页改好点「确认」,内核会顺带起来,不用重启 Clash Party(Linux 上实测),覆写怎么改见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)。冒号后面什么都没有的,可能是内核程序本身运行不了,见下面「修复」里 cpse-fix-profile 的最后一步。\n- **虚拟网卡启动失败,请尝试手动授权内核**:开着虚拟网卡(TUN),内核没有建网卡的权限。Clash Party 已经自动关掉了虚拟网卡开关,重启内核就能先用起来;要用虚拟网卡的,macOS、Linux 到「虚拟网卡」页点「手动授权内核」,再打开虚拟网卡(按源码)。\n- **其他英文原因**:例如 `Timed out waiting for core API readiness` 是内核启动了但 30 秒内没就绪,`Core exited before startup completed` 是内核中途退出了(按源码)。按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 打开 Clash Party 的内核日志看最后几行,拿去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查。\n\n**内核没起来时系统代理照样会打开**,指着没人监听的端口,走系统代理的程序(多数浏览器就是)都连不上网(Linux、Windows 上实测:经这个端口的请求连不上);急着上网的,先关掉侧栏「系统代理」开关,处理完再打开(作者建议)。这时「系统代理」开关也照样能关能开、不报错(Windows 上实测),别拿它判断内核起没起来,看「内核设置」卡片是不是「-」。\n\n点刷新按钮重启内核失败时,原因显示在窗口里弹出的错误提示里,对照同一张表(按源码)。网上旧回答说要手动删 `/tmp/mihomo-party.sock`:2.0.3 已经不用这个文件,在 macOS、Linux 上每次启动内核前还会试着清掉它和已经失效的连接点文件,不用手动删(按源码);Linux 上实测,以前运行留下的属于 root 的连接点文件清不掉、会越积越多,但不影响启动。\n\n## 打开就退出、升级后打不开\n\n- **需要更新 PowerShell**(「检测到您的 PowerShell 版本为 2.x……」):只在 Windows 上。PowerShell 低于 5 时弹这个框并退出,Windows 7 自带的是 2.0。按框里说的装 Windows Management Framework 5.1(按源码)。\n- **检测到高权限内核**:只在 Windows 上,有以管理员身份运行的内核还在跑。点「取消」程序会直接退出;点「确认」以管理员身份重开(按源码)。\n- **应用初始化失败**:程序自己没起来,随后退出(按源码)。记下框里的原因,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找应用日志求助(作者建议)。\n- **A JavaScript error occurred in the main process**(正文以 `Uncaught Exception:` 开头):Clash Party 的界面框架 Electron 自带的报错框,是程序本身出了错,不是内核报的错。**作者建议**:按 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file) 确认安装包对得上系统和芯片,下载最新版重装。\n- **窗口没了、托盘图标还在**:先点托盘图标把窗口叫回来,它可能只是被收起来了。**窗口反复自己闪一下重新加载**,或者应用日志里有 `Main window render process gone` 的,才是界面崩了:Clash Party 会自动重建窗口(1 分钟里崩超过 3 次就不再重建),代理不受影响(按源码)。\n- **开虚拟网卡时在用户账户控制窗口点了「否」,Clash Party 整个没了**:只在 Windows 上。它为了以管理员身份重开,先把自己关掉了,被拒绝后新的起不来,不弹任何框,不是闪退(Windows 上实测)。重新打开就好。\n- **闪退以后浏览器上不了网**:系统代理是正常退出时才关的,闪退时来不及关,还指着没人监听的端口,走系统代理的程序(多数浏览器就是)都连不上网(Linux、Windows 上实测:经这个端口的请求连不上)。重新打开 Clash Party 就好;暂时不开的,到系统网络设置里把代理关掉(作者建议)。\n- **点图标没反应**:同时只能运行一个,已经有一个在运行时,再点图标只会叫出它的窗口(按源码)。叫不出来、托盘里也没有图标的,结束残留的 Clash Party 进程再打开(作者建议)。\n\n**端口被占不会弹「内核启动出错」**:混合端口(默认 7890)被别的程序占着时,内核只在日志里记一行 `Start Mixed(http+socks) server error`,照常运行,只是 Clash Party 自己的代理端口没开起来;Clash Party 不认这一句,所以不弹框(Linux 上实测)。**作者建议**:到「内核设置」页改「混合端口」,或者关掉占着它的程序。\n\n## 这些结论是怎么核对的\n\n按 Clash Party 2.0.3 的源码逐条核对;内核的报错按 mihomo v1.19.31 的源码,Clash Party 2.0.3 的 macOS 安装包里带的正式版内核就是这个版本(实测)。在 Linux 虚拟机(Ubuntu 24.04 arm64,官方 deb)里实际造出过「配置检查失败」「`YAMLParseError`」「外部控制监听错误」、混合端口被占、闪退,看了界面上弹什么、改好后能不能恢复;在 Windows 11 实机上造出过内核文件不在、内核文件是 0 字节、强制结束 Clash Party,看了弹框、系统代理、托盘菜单与虚拟网卡设置页。限制:「外部控制监听错误」是人为造的,退出重开能否恢复没有实测;「需要更新 PowerShell」「应用初始化失败」没有实测,按源码写;「检测到高权限内核」在 Windows 实机上造不出来(结束 Clash Party 主进程时内核跟着退出),按源码写。\n\n## 取证\n- **cpse-core-start-box**:Clash Party 弹过写着「内核启动出错」的框吗?(Windows 上实测:标题栏写的是「Error」,「内核启动出错」是框里的大字,按钮「确定」;这个框不一定自己跳到最前面,点任务栏上的 Clash Party 图标才看得到。)点侧栏「内核设置」卡片上的刷新按钮(鼠标停上去显示「重启内核」)失败时,原因显示在窗口里弹出的错误提示里,也算(按源码)。\n pass → cpse-reason-controller;fail → cpse-quit-box;unknown → cpse-quit-box\n- **cpse-reason-controller**:框里(或错误提示里)写的是「外部控制监听错误」吗?\n pass → cpse-controller-listen;fail → cpse-reason-profile;unknown → cpse-reason-profile\n- **cpse-reason-profile**:写的是「配置检查失败」开头,或者 `YAMLParseError` 开头吗?(启动时弹的框里「配置检查失败」前面多一个 `Error: `,后面通常跟着几行英文)\n pass → cpse-profile-invalid;fail → cpse-reason-tun;unknown → cpse-reason-tun\n- **cpse-reason-tun**:写的是「虚拟网卡启动失败,请尝试手动授权内核」吗?\n pass → cpse-tun-permission;fail → cpse-start-other;unknown → cpse-start-other\n- **cpse-quit-box**:Clash Party 打开后自己退出、或者一打开就报错时,弹过这几个框之一吗:「需要更新 PowerShell」「检测到高权限内核」「应用初始化失败」「A JavaScript error occurred in the main process」?\n pass → cpse-quit-with-box;fail → cpse-tray-icon;unknown → cpse-tray-icon\n- **cpse-tray-icon**:窗口没了(或者点图标不出窗口)的时候,托盘(Mac 在屏幕顶部菜单栏)里还有 Clash Party 的图标吗?\n pass → cpse-window-gone;fail → cpse-not-running;unknown → cpse-not-running\n\n## 原因\n- **cpse-controller-listen**(可能性 medium)→ 修复 cpse-fix-reopen\n- **cpse-profile-invalid**(可能性 medium)→ 修复 cpse-fix-profile\n- **cpse-tun-permission**(可能性 medium)→ 修复 cpse-fix-tun\n- **cpse-start-other**(可能性 low)→ 修复 cpse-fix-core-log\n- **cpse-quit-with-box**(可能性 medium)→ 修复 cpse-fix-quit-box\n- **cpse-window-gone**(可能性 low)→ 修复 cpse-fix-window\n- **cpse-not-running**(可能性 low)→ 修复 cpse-fix-no-window\n\n## 修复\n### cpse-fix-reopen\n1. 从托盘菜单点「退出应用」,再打开 Clash Party(托盘菜单里的「重启应用」效果相同)。界面和内核之间的连接点名字里带着 Clash Party 这一次运行的进程号,重开就换一个新的:macOS、Linux 上是 `/tmp` 下的一个 `.sock` 文件(按源码),Windows 上是一个命名管道(Windows 上实测)。\n2. 不用手动删 `/tmp/mihomo-party.sock`(网上的旧办法):2.0.3 已经不用这个文件,在 macOS、Linux 上每次启动内核前还会试着清掉它,以及进程已经不在的连接点文件;Windows 上每次启动内核前会结束名字以 mihomo 开头的其他进程(按源码)。\n3. 重开后还是这句的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 打开 Clash Party 的内核日志,找 `External controller unix listen error`(Windows 上是 `External controller pipe listen error`)那一行,连同弹框原文一起拿去求助;贴出去之前遮掉订阅链接和服务器地址(作者建议)。\n验证:cpse-core-back\n\n### cpse-fix-profile\n1. 「应用设置」里的「启动时检查配置文件」默认打开:内核先检查当前订阅连同覆写生成的配置,有错就不启动,「配置检查失败」后面几行就是内核报的错(按源码)。拿这几行去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查。有 `path is not subpath of home directory or SAFE_PATHS` 的,是订阅或覆写里写的某个文件路径不在内核允许的目录里(按内核 mihomo 的源码)。\n2. 是 `YAMLParseError` 开头的,是某个 YAML 覆写文件本身写错了:生成配置时要先读覆写,读不出来就不启动内核(按源码)。到「覆写」页找到最近改过的那个,在卡片菜单里点「编辑文件」改好(或者先关掉它的「全局启用」、从订阅上撤掉),点「确认」;内核没在运行时,保存覆写会顺带启动内核(按源码)。\n3. 先回到能用的状态再查(作者建议):在「订阅管理」页点一个以前能用的订阅,或者把刚加上的覆写撤掉,再点侧栏「内核设置」卡片上的刷新按钮重启内核。关掉「启动时检查配置文件」只是不再提前检查,配置里的错还在(按源码)。\n4. 「配置检查失败」后面什么都没有、或者只有一句系统报错的:内核程序本身运行不了(文件没了、和系统或芯片不匹配)时,这一步也会失败(Windows 上实测了文件没了与文件是 0 字节两种,其余按源码)。按 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file) 选对安装包,按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对后重装(作者建议)。\n验证:cpse-core-back\n\n### cpse-fix-tun\n1. 出这句时 Clash Party 已经把虚拟网卡开关关掉了(按源码):点侧栏「内核设置」卡片上的刷新按钮重启内核,先不带虚拟网卡用起来。\n2. 要用虚拟网卡的,macOS、Linux 到「虚拟网卡」页点「手动授权内核」,提示「内核授权成功」后再打开虚拟网卡(按源码;Windows 的「虚拟网卡」页没有这个按钮,Windows 上实测)。\n验证:cpse-core-back\n\n### cpse-fix-core-log\n1. 其他原因:例如 `Timed out waiting for core API readiness` 与 `Core not ready after 30 attempts` 是内核启动了却没就绪,`Core exited before startup completed` 是内核中途退出了(按源码)。按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 打开 Clash Party 的内核日志看最后几行,拿去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查;查不到的带着弹框原文和这几行求助,贴出去之前遮掉订阅链接和服务器地址(作者建议)。\n验证:cpse-core-back\n\n### cpse-fix-quit-box\n1. 「需要更新 PowerShell」(正文「检测到您的 PowerShell 版本为 2.x,部分功能需要 PowerShell 5.1 才能正常运行。」):只在 Windows 上。2.0.3 启动时发现 PowerShell 低于 5 就弹这个框并退出,Windows 7 自带的是 2.0。按框里说的装微软的 Windows Management Framework 5.1,再打开(按源码)。\n2. 「检测到高权限内核」:只在 Windows 上,没以管理员身份打开 Clash Party、却有以管理员身份运行的内核还在跑时弹出。点「取消」程序直接退出;点「确认」以管理员身份重开,在系统的权限确认里点「是」(按源码)。\n3. 「应用初始化失败」:Clash Party 自己没启动起来,随后退出(按源码)。记下框里的原因,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找 Clash Party 的应用日志,一起拿去求助(作者建议)。\n4. 「A JavaScript error occurred in the main process」、正文以 `Uncaught Exception:` 开头:这是 Clash Party 的界面框架 Electron 自带的报错框,程序本身出了错,不是内核报的错(按 Electron 源码)。按 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file) 确认安装包对得上系统和芯片,下载最新版重装;还不行,带着 `Error:` 开头那一行求助(作者建议)。\n验证:cpse-core-back\n\n### cpse-fix-window\n1. 点托盘图标,或托盘菜单里的「显示窗口」,把窗口叫回来——窗口只是被收起来的话,这样就好了。窗口反复自己闪一下重新加载,或者应用日志里有 `Main window render process gone`,才是界面崩了:Clash Party 会重建窗口,1 分钟里崩超过 3 次就不再自动重建;代理由内核负责,不受影响(按源码)。反复崩的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到应用日志里那几行,带着去求助(作者建议)。\n验证:cpse-core-back\n\n### cpse-fix-no-window\n1. Clash Party 闪退以后浏览器上不了网的:系统代理是 Clash Party 正常退出时才关的,闪退时来不及关,还指着已经没人监听的端口,走系统代理的程序(多数浏览器就是)都连不上网(Linux、Windows 上实测:经这个端口的请求连不上)。重新打开 Clash Party,它会重新接管;暂时不开的,到系统的网络设置里把代理关掉(作者建议)。\n2. 刚在开虚拟网卡时把用户账户控制窗口点了「否」的,Clash Party 整个退出、不报错是正常的,直接重新打开(Windows 上实测)。Clash Party 同时只允许运行一个:已经有一个在跑时再点图标,只会叫出原来那个的窗口(按源码)。托盘里找不到图标、点了也不出窗口的,到任务管理器(Mac 是「活动监视器」)结束名为 Clash Party 的进程再打开(结束进程和闪退一样,内核跟着退出,系统代理却留在开着,Windows 上实测);还是不行,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找应用日志,带着最后几行求助(作者建议)。\n验证:cpse-core-back\n\n## 验证\n- **cpse-core-back**(人):打开 Clash Party,点侧栏「内核设置」卡片右上角的刷新按钮(重启内核),看卡片上显示什么;侧栏订阅卡片显示着某个订阅名的,再到「代理组」页测一次延迟,用浏览器打开一个平时要经过代理的网站。\n 预期:窗口正常显示、不再自己退出;没有再弹「内核启动出错」或错误提示;「内核设置」卡片上显示内核版本号,不是「-」(Linux、Windows 上实测:内核没起来时显示「-」)。侧栏订阅卡片显示着某个订阅名的,还要节点测得出延迟、网页能打开;显示「空白配置」的(当前没有正在使用的订阅),前面几项对上就是好了:导入过订阅的到「订阅管理」点一下它,还没导入的按 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run) 导入。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n\n## 来源\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/index.ts L47-L68 与 L74-L88(Windows 上读注册表判断 PowerShell 版本,注释写 Win7 仅 PS 2.0;低于 5 弹「需要更新 PowerShell」后退出)、L97-L100 与 L203-L212(只允许运行一个,再次启动时叫出原来的窗口)、L250-L281(Windows 非管理员时发现高权限内核弹框,取消即退出)、L334-L365(启动内核失败弹「内核启动出错」,正文为原因)、L430-L434(应用初始化失败后退出);src/main/utils/init.ts L69-L80(safeShowErrorBox 用 dialog.showErrorBox 弹框);src/main/core/manager.ts L402-L417(界面与内核的连接点:Windows 为带进程号的命名管道,其他系统为 /tmp/mihomo-party-<uid>-<进程号>.sock)、L477-L483(启动内核前先检查配置,再清理连接点)、L580-L585(30 秒未就绪报 Timed out waiting for core API readiness)、L633-L665(启动阶段内核退出报 Core exited before startup completed)、L669-L680(configure tun interface: operation not permitted 时关掉虚拟网卡并报虚拟网卡启动失败)、L710-L730(内核输出 External controller unix/pipe listen error 时报外部控制监听错误,Windows 先结束 mihomo 进程)、L669-L749(内核输出里只认 TUN 权限、TUN 监听失败、外部控制监听失败、API 就绪这几句)、L1072-L1126(配置检查失败:拼接内核报错行,没有 stdout 时改用 stderr);src/main/core/process.ts L15-L53(Windows 每次启动前结束名字以 mihomo 开头的其他进程)、L131-L183(删除旧的固定 socket 与进程已不在的 socket)、L194-L217(Core not ready after 30 attempts);src/main/core/permissions.ts L92-L126 与 L128-L190(高权限内核检查只在 Windows);src/main/window.ts L133-L134 与 L253-L291(界面崩溃后重建窗口,60 秒内超过 3 次停止,日志记 Main window render process gone);src/main/resolve/tray.ts L383-L399(托盘「重启应用」「退出应用」);src/main/utils/template.ts L80(启动时检查配置文件默认开);src/main/core/factory.ts L357-L378(生成配置时逐个套覆写,YAML 覆写用 parse 读,读不出来就抛错);src/renderer/src/components/override/edit-file-modal.tsx L58-L61 与 src/main/core/mihomoApi.ts L432-L437(保存覆写后热重载,内核没在运行就改为重启内核);src/main/lifecycle.ts L100-L128(正常退出时关掉系统代理);src/main/utils/init.ts L474-L494(启动时按设置重新打开系统代理);src/shared/appConfig.ts L33-L34(混合端口默认 7890);src/renderer/src/pages/mihomo.tsx L665(内核设置页的混合端口)、L978(外部控制器的设置项叫「监听地址」);src/renderer/src/components/settings/mihomo-config.tsx L465-L467;src/renderer/src/pages/settings.tsx(应用设置页);src/renderer/src/components/sider/mihomo-core-card.tsx L107(取不到版本显示 -)、L109-L126(刷新按钮 title 为重启内核,失败时弹错误提示);src/renderer/src/pages/tun.tsx L143-L181(Windows 显示重设防火墙,其他系统显示手动授权内核);src/renderer/src/locales/zh-CN.json L9、L15、L43、L65-L66、L143、L152-L153、L203-L204、L241、L247、L274-L276、L346-L347、L352、L434-L436、L496、L499-L500、L513、L515、L569、L680、L697、L704、L781)\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(listener/listener.go L443-L451(混合端口监听失败只记 Start Mixed(http+socks) server error,不退出);constant/path.go L107-L118(path is not subpath of home directory or SAFE_PATHS);adapter/provider/parser.go L80-L92(provider 的文件路径不在允许目录内时报这个错))\n- electron-v43-7-3-init:https://github.com/electron/electron/blob/79de330422c91960492053e3e7d894911eddb55a/lib/browser/init.ts(L22-L38(主进程有未捕获的异常、应用没有自己处理时,弹出标题为 A JavaScript error occurred in the main process、正文以 Uncaught Exception: 开头的报错框))\n- exp-client-and-core-concept-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:8ee138a 2026-10-01\n"},"clash-party-dns-override":{"id":"clash-party-dns-override","type":"faq","title":"Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系","aliases":["Clash Party DNS 覆写","mihomo party DNS 覆写","是否开启 DNS 覆写","已自动关闭 DNS 覆写","检测到当前订阅包含自定义 DNS 配置,已自动关闭 DNS 覆写","DNS 覆写 保持关闭 仍然开启","Clash Party DNS 覆写 重启后自动关闭","Clash Party 开机后要把 DNS 覆写切一下才能用","Clash Party 每次打开都要重新开 DNS 覆写","Clash Party 升级 2.0.3 后 DNS 覆写被关了","Clash Party DNS 覆写 虚拟网卡","Clash Party DNS 设置 仅保存"],"primary_topic":"clash-party","topics":["clash-party","tun-and-service"],"intents":[],"applicability":{"client":["clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系\n\n主题:`客户端` › `Clash Party`\n适用:clash-party / windows/macos/linux / any\n最后验证:2026-10-01\n\n**问:** Clash Party 的「DNS 覆写」是什么?2.0.3 打开它时弹出「是否开启 DNS 覆写?」,该选「保持关闭」还是「仍然开启」?提示「已自动关闭 DNS 覆写」、每次重开都要重新打开是怎么回事?它和虚拟网卡有什么关系?\n\n**答:** DNS 覆写是侧栏同名卡片上的开关,默认关:关着时内核用订阅(加上你启用的覆写)里的 DNS 设置,打开后改用 Clash Party 自己的。2.0.3 起,订阅自带解析节点域名用的 DNS 设置时,打开开关会先问你;点「仍然开启」只管这一次运行,退出再打开会被自动关掉并提示。一般点「保持关闭」。DNS 覆写关着、订阅和你启用的覆写合起来也没启用 DNS 时,虚拟网卡不接管 DNS 查询,程序改用系统自己的 DNS 解析。\n**DNS 覆写就是侧栏「DNS 覆写」卡片右上的开关,默认关着**(2.0.2、2.0.3 都是)。关着时,内核用订阅(加上你启用的覆写)里的 DNS 设置;打开后,换成 Clash Party 自己的那一套(Linux 上实测;覆写那一侧按源码,没实测)。\n\nClash Party 2.0.3 新增了一道保护:当前订阅的 DNS 设置里写了解析节点域名用的服务器(比如 `proxy-server-nameserver`)时——\n\n- 你去打开开关,先弹「是否开启 DNS 覆写?」,按钮是「保持关闭」「仍然开启」;\n- 点了「仍然开启」,只管这一次运行:退出再打开,开关被自动关掉,窗口右上角提示「检测到当前订阅包含自定义 DNS 配置,已自动关闭 DNS 覆写。」\n\n**一般点「保持关闭」**(作者建议):订阅里的 DNS 设置是服务方配的,弹框自己也提醒覆盖它们可能导致节点连不上。\n\n**和虚拟网卡(TUN)的关系**:DNS 覆写关着、订阅和你启用的覆写合起来也没有启用 DNS 时,打开虚拟网卡后它不接管 DNS 查询,程序用系统自己的 DNS 解析,界面上看不出来(Linux 上实测的是订阅这一侧)。\n\n## 开着和关着有什么不同\n\n- **关着(默认)**:内核的 DNS 看订阅和你启用的覆写合起来的配置(覆写见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override))。写了就用写的;没写、或者写了但没启用,内核不管解析,用系统的 DNS(实测的是订阅这一侧,结合 mihomo 官方文档)。\n- **开着**:用 Clash Party 自己的 DNS 设置,订阅里写的服务器被替换。实测:订阅把默认解析服务器和代理服务器域名解析都写成同一个地址,打开后两项都换成了 Clash Party 默认的两个 DoH 服务器,并改成 fake-ip(解析出 198.18 开头的地址)。\n- **点卡片标题进的「DNS 设置」页改了却没效果**:开关关着时页面右上的按钮写的是「仅保存」,只存下来、不生效(按源码,没实测)。\n\n## 弹出「是否开启 DNS 覆写?」时怎么选\n\n弹框正文是「当前订阅包含自定义 DNS 配置。开启 DNS 覆写可能覆盖这些配置,导致节点无法连接或部分网站无法访问。是否仍要开启?」\n\n- **什么时候弹**:订阅的 DNS 设置里有 `proxy-server-nameserver` 就弹,不管订阅有没有启用 DNS;订阅没有 DNS 设置的不弹,开关直接打开(实测)。按源码另外两项 `proxy-server-nameserver-policy`、`nameserver-policy` 也算,只看订阅原文、不看你加的覆写(按源码,没实测)。前两项专门用来解析节点的域名(按 mihomo 官方文档)。\n- **「保持关闭」**:开关不动,继续用订阅(加上你启用的覆写)里的 DNS 设置。拿不准就选这个(作者建议)。\n- **「仍然开启」**:开关打开,改用 Clash Party 的。适合你在「DNS 设置」页专门配过,或者关着时虚拟网卡不好用(见最后一节)的情况(作者建议)。开了以后节点连不上、部分网站打不开的,把开关关回去(作者建议)。\n\n## 提示「已自动关闭 DNS 覆写」、每次打开都得重新开\n\nLinux 上实测,下面几种情况会自动关掉开关,提示的是窗口右上角一条橙色提示(不是系统通知):\n\n- **点过「仍然开启」,之后退出再打开**:「仍然开启」不会被记住,再点开关又会弹确认框。所以「开机后要把 DNS 覆写切一下才能用」是这个设计,不是坏了。\n- **从 2.0.2 升级上来**:2.0.2 没有这道保护,开着就是开着;升到 2.0.3 后第一次打开就被关掉。\n- **更新订阅后,订阅里这几项变了**:只改别的 DNS 项(比如默认解析服务器)不会关,内容没变也不会关。\n- **切到带这几项的订阅**。\n\n窗口隐藏或最小化时,提示留到窗口再显示时才弹(按源码,没实测)。\n\n关着能正常上网的,不用管它(作者建议)。关着就出问题、打开才能用的:2.0.3 没有让它记住的选项,只能每次打开 Clash Party 后点开关、再点「仍然开启」(实测这样能恢复);也可以把情况告诉服务方,请他们看看订阅里的 DNS 设置(作者建议)。\n\n## 和虚拟网卡(TUN)的关系\n\n虚拟网卡的「DNS 劫持」默认是 `any:53`,把发往 53 端口的 DNS 查询都交给内核。但 **DNS 覆写关着、订阅和你启用的覆写合起来又没有启用 DNS 时,Clash Party 会把内核实际用的这一项清空**;「虚拟网卡」设置页仍显示 `any:53`,内核日志里也没有提示(Linux 上实测;源码注释说的原因是内核的 DNS 没开,劫持来的查询没人处理)。订阅启用了 DNS 的不清空(实测);用覆写启用的按源码同理,没实测。\n\n不接管时,程序用系统的 DNS 拿到真实地址,连接本身仍进虚拟网卡、按规则走节点;发往系统 DNS 的查询本身也被当成普通流量按规则送出去。实测里网页照样能打开,规则看到的是 IP 而不是域名。只有在人为让节点访问不到系统 DNS 地址时,才整个解析不出来、上不了网,打开 DNS 覆写后恢复;真实远端节点会不会这样没有测。\n\n**升级到 2.0.3 后开虚拟网卡不好用、要把 DNS 覆写切一下才行**,实测复现到的就是这条链:2.0.2 上开着的 DNS 覆写在升级后被自动关掉,订阅的 DNS 又没启用,虚拟网卡不再接管 DNS。完整排查见 `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)。\n\n## 这些结论是怎么核对的\n\n按 Clash Party 2.0.3 的源码和 mihomo 官方文档核对,并在 Linux 虚拟机(Ubuntu arm64,官方 deb)里用三份自制订阅实测了弹框、两个按钮、重开后自动关闭、更新与切换订阅、从 2.0.2 升级,以及虚拟网卡接不接管 DNS。限制:受保护的三项只测了 `proxy-server-nameserver`;节点和 Clash Party 在同一台机器上,「上不了网」的条件是人为构造的;Windows、macOS 没有实测。文中「作者建议」是本站作者的建议,不是 Clash Party 官方的说法。\n\n## 验证\n- **clash-party-dns-override-check**(人):选完之后(或者看到「已自动关闭 DNS 覆写」之后),看侧栏「DNS 覆写」卡片上的开关,再用浏览器打开一个平时要经代理才能打开的网页。\n 预期:开关和你选的一致:点了「保持关闭」或被自动关掉的是关,点了「仍然开启」的是开。网页能打开。网页打不开的算没通过;原本就在用虚拟网卡的,继续按 `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working) 排查(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n\n## 来源\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/core/dnsOverrideGuard.ts L9-L13(只看订阅原文 dns 里的 proxy-server-nameserver、proxy-server-nameserver-policy、nameserver-policy)、L67-L70(确认只存在本次运行的内存里)、L145-L158(窗口隐藏或最小化时提示留到窗口显示再弹);src/main/core/factory.ts L159-L164(判断用的是订阅原文,覆写之前)、L178-L195(DNS 覆写关着时不并入 Clash Party 自己的 dns 与 hosts,最终配置没启用 DNS 时清空虚拟网卡的 dns-hijack);src/main/utils/merge.ts L13-L42(服务器列表整体替换);src/renderer/src/pages/dns.tsx L157-L175、L223(开关关着时按钮是「仅保存」,只存不应用);src/renderer/src/locales/zh-CN.json L539、L541、L563-L568(代理服务器域名解析、默认解析服务器、仅保存、确认框与自动关闭提示原文))\n- metacubex-wiki-dns:https://wiki.metacubex.one/config/dns/(enable(为 false 时使用系统 DNS 解析);proxy-server-nameserver(代理节点域名解析服务器,仅用于解析代理节点的域名);proxy-server-nameserver-policy(仅用于节点域名解析))\n- exp-clash-party-tun-dns-gui-linux-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"clash-party-first-run":{"id":"clash-party-first-run","type":"howto","title":"第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡","aliases":["新手怎么用","订阅管理 导入订阅","请输入您的订阅网址","订阅链接填在哪","添加配置失败","空白配置","代理组与节点","出站模式 规则 全局 直连","虚拟网卡开关","开虚拟网卡 需要管理员权限 重启应用获取权限","手动授权内核"],"primary_topic":"clash-party","topics":["clash-party","subscription-import","basics","tun-and-service"],"intents":[],"applicability":{"client":["clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-28","freshness":"current","markdown":"# 第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡\n\n主题:`客户端` › `Clash Party`\n适用:clash-party / windows/macos/linux / any\n最后验证:2026-09-28\n\nClash Party 原来叫 Mihomo Party(GitHub 上的旧仓库名现在指向它,2026-09-28 核对)。装好之后怎么用,按这个顺序:点左侧的订阅卡片进「订阅管理」页,粘贴订阅链接、点「导入」→ 确认新订阅卡片已启用 → 左侧最上面保持「规则」,在「代理组」里点开订阅的选择组、选一个节点 → 打开左侧「系统代理」开关 → 用浏览器打开网页确认(按源码)。游戏、命令行这类不认系统代理的程序也要走代理时,再打开「虚拟网卡」(TUN)开关(作者建议):Windows 上要以管理员身份重启 Clash Party;macOS、Linux 上官方安装包装的时候已经给内核授过权,没授权时会弹窗要管理员密码,也可以在虚拟网卡设置页点「手动授权内核」(按源码)。本条按 Clash Party 2.0.3 的源码写,Linux 上的这几步另在虚拟机里实际操作过。还没装的,选哪个安装包见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)。\n\n新手最常卡的三处:\n\n- **界面是英文**:系统语言不是中文时,第一次打开是英文界面。点左上角「Clash Party」旁的齿轮进入设置,第一行「Language」选「简体中文」,立即生效、不用重启(Linux 上实测)。\n- **选了「全局」反而不走代理**:全局模式下全部连接走 `GLOBAL` 组里选中的那一项,要在这个组里点一个节点;选中的是 `DIRECT` 就等于全部直连(按源码与 mihomo 官方文档)。\n- **Windows 上重新打开后虚拟网卡自己关了**:不是以管理员身份打开时,Clash Party 启动时会把虚拟网卡自动关掉,要用就再点一次开关、按提示以管理员身份重启(Windows 上实测)。\n\n## 这些说法怎么核对的\n\n按 Clash Party 2.0.3 的源码与 mihomo 官方文档核对,并在 Linux 虚拟机(Ubuntu 24.04 arm64,官方 deb)里实际操作了切换语言、导入订阅、选节点、系统代理与虚拟网卡开关,在 Windows 11 实机上实际操作了系统代理与虚拟网卡开关。限制:macOS 没有实际操作,打开虚拟网卡时的授权窗口按源码写;全局模式、「添加配置失败」提示没有实测;Windows 上没有用浏览器试,虚拟网卡是否接管是看 DNS 解析和路由判断的。\n\n## 步骤\n1. 点左侧写着「空白配置」的那张订阅卡片(在「系统代理」「虚拟网卡」两张卡片下面;已经导入过订阅的,卡片上写的是正在用的订阅名),进到「订阅管理」页,把服务商给你的订阅链接粘到页面顶部「请输入您的订阅网址」框里(框内的剪贴板按钮能直接粘贴),点「导入」(Linux 上实测)或按回车(按源码)。框内右侧的「代理」保持不勾(作者建议):勾上表示只经 Clash Party 自己的代理下载,第一次用时还没有能用的节点;不勾时先直连下载,失败才改走代理(按源码)。订阅链接等同于你的账号凭据,不要发给别人、聊天助手或在线工具。弹出「添加配置失败」就是没导入成功:先确认链接复制完整,再带着提示里的报错原文找服务商,贴之前遮掉订阅链接(见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs),作者建议)。(网站上这一步配有截图)\n 失败时 → escalate\n2. 导入成功后页面上多出一张订阅卡片。**还没有正在使用的订阅时(第一次导入就是这样),新导入的会自动启用**(Linux 上实测);已经有正在使用的订阅时,要点一下新卡片才会换过去(按源码)。正在使用的那张卡片底色高亮,左侧那张订阅卡片上显示的也是它的名字;那里显示「空白配置」就是还没有启用任何订阅(按源码)。(网站上这一步配有截图)\n 失败时 → escalate\n3. 左侧最上面那一排「规则 / 全局 / 直连」保持默认的「规则」(按源码):按订阅里的规则决定每个连接走节点还是直连(按 mihomo 官方文档)。点左侧「代理组」卡片进入「代理组与节点」页:每个代理组一张卡片,第二行写着组的类型和当前选中的那一项;点组卡片展开,再点一个节点就选中了(Linux 上实测)。选哪个组:订阅里通常有一个总的选择组,名字常见「节点选择」「Proxy」之类(作者经验);先随便选一个节点把链路跑通,再回头挑快的(作者建议)。**选了「全局」的**:全部连接都走 `GLOBAL` 组里选中的那一项,这时它排在页面最上面,要在里面点一个节点,停在 `DIRECT` 就是全部直连(按源码与 mihomo 官方文档)。选「直连」时页面中间只写「直连模式」,不经过任何节点(按源码)。(网站上这一步配有截图)\n 失败时 → escalate\n4. 打开左侧「系统代理」卡片上的开关(Linux、Windows 上实测)。浏览器这类遵守系统代理设置的程序就会经过 Clash Party:它把系统代理设成以 127 开头的本机地址、端口 7890(Windows 上实测)——7890 是默认的「混合端口」,在「内核设置」里能改(按源码)。开关弹回关并弹出报错的,就是没设成,带着报错原文求助(日志找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs),作者建议)。正常退出 Clash Party 时它会把系统代理关掉,下次打开再设回去;它闪退时系统代理会留在开着、指向已经没人监听的端口,走系统代理的程序(多数浏览器就是)都连不上网,重新打开 Clash Party 就好(Linux、Windows 上实测了退出时关、闪退后留着,经这个端口的请求连不上;两边都没有用浏览器试,见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error))。(网站上这一步配有截图)\n 失败时 → escalate\n5. **只在需要时做**:游戏、命令行这类不认系统代理的程序也要走代理时,打开左侧「虚拟网卡」卡片上的开关(也就是 TUN);只用浏览器的跳过这一步(作者建议)。各系统要的权限:**Windows** 要以管理员身份运行——弹出「需要管理员权限」时点「确认」,再在系统的用户账户控制窗口里点「是」,Clash Party 会重启并自动打开虚拟网卡开关;以后不是以管理员身份打开时,它会在启动时把虚拟网卡自动关掉(Windows 上实测)。Windows 上实测,提权重启后虚拟网卡可能没有接管,从托盘「退出应用」、再右键 Clash Party 选「以管理员身份运行」打开一次就接管了:开关开着、平时要经代理才能打开的网站还是打不开的,照这样重开一次。在「需要管理员权限」里点「取消」的,开关保持关;在用户账户控制窗口里点「否」的,Clash Party 会整个退出、不报错,这不是闪退,重新打开就行(Windows 上实测)。**macOS、Linux** 的官方安装包(macOS 的 pkg,Linux 的 deb、rpm)装的时候已经给内核授过权,一般直接能开(按源码;Linux 的 deb 上实测:点开关不弹任何窗口,约 1 秒就开好);没授过权时会弹出系统的密码框,输入管理员密码即可(按源码)。开关自己弹回关、提示「虚拟网卡启动失败,请尝试手动授权内核」的(macOS、Linux):点「虚拟网卡」卡片进入设置页,点「手动授权内核」,输密码,看到「内核授权成功」后再开一次(按源码)。提示「权限授权失败」「虚拟网卡启动失败,已自动关闭」,或者开着虚拟网卡反而上不了网的:先关掉虚拟网卡、只用系统代理,再按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,带着报错原文求助(作者建议);启动时就弹「内核启动出错」的见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)。\n 失败时 → escalate\n\n## 验证\n- **cp-page-opens**(人):用浏览器打开一个不开代理时打不开的网页(比如你装它就是为了访问的那个)。\n 预期:网页正常显示。打不开时按顺序查(作者建议):左侧订阅卡片显示「空白配置」的,回「订阅管理」页点一下你的订阅卡片;「代理组与节点」页里选中的是 `DIRECT` 而不是节点的,点一个节点;「系统代理」开关已经弹回关的,再开一次;开关开着、侧栏「内核设置」卡片上却显示「-」的,是内核没起来(内核没起来时开关照样能打开,Windows 上实测),按 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error) 处理;系统的代理设置里地址不是以 127 开头的本机地址,或者端口不是「内核设置」里的「混合端口」(默认 7890)的,先退出别的代理软件再开一次——几个代理软件会互相覆盖系统代理。Windows 上在「设置 → 网络和 Internet → 代理」的「手动设置代理」下看,「使用代理服务器」要是「开」:Clash Party 正常退出后地址还留在那里,只看地址会以为还开着(Windows 上实测)。都对还打不开,换一个节点再试;仍然不行,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,带着报错原文求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(GitHub 上 mihomo-party-org/mihomo-party 指向本仓库(2026-09-28 用 gh api 核对);package.json L2(name mihomo-party);electron-builder.yml L2(productName Clash Party);src/renderer/src/App.tsx L217-L222 与 src/renderer/src/components/sider/outbound-mode-switcher.tsx L49-L73(侧栏顶部「规则 / 全局 / 直连」、下面是各卡片);src/shared/appConfig.ts L13-L29(侧栏卡片默认顺序)、L33-L35(混合端口默认 7890);src/main/utils/template.ts L68(系统代理默认关、手动模式)、L91-L92(出站模式默认 rule、mixed-port);src/renderer/src/pages/profiles.tsx L71(「代理」默认不勾)、L157-L173、L200-L203、L348-L405(订阅地址框、剪贴板按钮、「代理」勾选框、「导入」按钮与回车导入)、L588-L596(点订阅卡片切换);src/main/config/profile.ts L201-L236(没有正在使用的订阅时新导入的自动启用)、L541-L560(不勾「代理」先直连、失败再走代理);src/renderer/src/hooks/use-profile-config.tsx L46-L57、L69-L72(导入出错提示「添加配置失败」);src/renderer/src/components/sider/profile-card.tsx L53-L57(没有启用订阅时显示「空白配置」);src/renderer/src/pages/proxies.tsx L246-L254(点节点即切换)、L451-L466(点组卡片展开)、L785-L790(直连模式);src/main/core/mihomoApi.ts L299-L353(全局模式下 GLOBAL 组排到最前);src/renderer/src/components/sider/sysproxy-switcher.tsx L40-L58(开关失败时弹回并报错);src/main/sys/sysproxy.ts L113-L156(系统代理设为本机回环地址与混合端口);src/renderer/src/components/sider/tun-switcher.tsx L40-L104(打开虚拟网卡前检查权限:Windows 弹窗后以管理员身份重启,macOS、Linux 请求授权);src/main/core/permissions.ts L72-L90(Windows 看是否管理员,macOS、Linux 看内核是否 root 所有且带 setuid)、L237-L261(macOS 用管理员密码框、Linux 用 pkexec 授权)、L263-L300(以管理员身份重启)、L348-L374(启动时没有权限就自动关掉虚拟网卡)、L376-L408(管理员重启后自动打开虚拟网卡);src/main/core/manager.ts L671-L679、L682-L707(虚拟网卡启动失败的两种提示并关掉开关);src/renderer/src/pages/tun.tsx L166-L183(macOS、Linux 的「手动授权内核」按钮);build/pkg-scripts/postinstall L37-L61(macOS pkg 安装时给内核授权);build/linux/postinst L17-L19 与 electron-builder.yml L89、L95、L103(Linux deb、rpm、pacman 安装时给内核授权);src/renderer/src/locales/zh-CN.json L48、L344-L347、L386、L410-L413、L439、L450、L459、L496、L499-L500、L513、L515-L520、L569-L573(界面文字))\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(rule 规则匹配;global 全局代理,需要在 GLOBAL 策略组选择代理/策略))\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-retest-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:f39a279 2026-10-02\n"},"clash-party-override":{"id":"clash-party-override","type":"howto","title":"覆写与编辑规则:自己加规则,覆写不生效怎么办","aliases":["Clash Party 覆写","Clash Party 覆写不生效","Clash Party 覆写 全局启用","Clash Party 添加自定义规则","Clash Party 编辑规则 添加前置规则","Clash Party 让某个网站直连","Clash Party 某个程序不走代理","Clash Party 单个应用直连 PROCESS-NAME","Clash Party 覆写 YAML +rules","Clash Party 覆写脚本 function main","Clash Party 覆写脚本执行失败","Clash Party 覆写脚本 联网 引用远程","Clash Party 远程覆写 导入覆写 URL","Clash Party 覆写 重启后失效","Clash Party 自己加的规则没了","mihomo party 覆写"],"primary_topic":"clash-party","topics":["clash-party","routing-rules"],"intents":[],"applicability":{"client":["clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-28","freshness":"current","markdown":"# 覆写与编辑规则:自己加规则,覆写不生效怎么办\n\n主题:`客户端` › `Clash Party`\n适用:clash-party / windows/macos/linux / any\n最后验证:2026-09-28\n\n在 Clash Party 里让某个网站或程序单独直连,有两种办法,加的规则都单独保存,**更新订阅、重启后都还在**(覆写是 Linux 上实测,「编辑规则」按源码;用「编辑订阅」直接改订阅文件的,更新后会被还原):\n\n- **只给一个订阅加一两条**:「订阅管理」里右键那个订阅 →「编辑规则」→ 选规则类型、填匹配内容,「代理节点」用 `DIRECT` → 点**「添加前置规则」**→「保存」。\n- **给所有订阅加**:侧栏「覆写」→「+」→「新建 YAML」,在「编辑文件」里用 `+rules` 写规则,然后**一定要启用它**:打开卡片上的「全局启用」,或在订阅的「编辑信息」→「覆写」里把它加上。只新建不启用,覆写不会生效(Linux 上实测)。\n\n网站用域名后缀(DOMAIN-SUFFIX),程序用进程名(PROCESS-NAME)。加完先打开「连接」页再让它重连,点开新连接看「规则」和「代理链」。\n\n## 覆写里怎么写规则\n\n在 YAML 覆写的「编辑文件」里这样写,一条规则一行:\n\n```yaml\n+rules:\n - DOMAIN-SUFFIX,example.com,DIRECT\n - PROCESS-NAME,example.exe,DIRECT\n```\n\n`+rules` 把这几条加在规则最前面。按源码,写成 `rules+` 是加在最后,不带加号是把订阅的规则**整份换掉**。规则从上往下匹配、命中第一条就停,订阅的规则一般以兜底的 `MATCH` 结尾,加在它后面的轮不到,见 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)。\n\n要按条件改才用「新建 JavaScript」:在 `main(config)` 里改 `config`,最后 `return config`。按源码,脚本运行时除了 JavaScript 自带的功能只多给了 `console`,不能联网、不能读写文件。\n\n## 覆写不生效,先查这几条\n\n按源码:\n\n- **不在规则模式**:侧栏最上面选的是「全局」或「直连」时,内核不看规则,见 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)。\n- **没启用**:「全局启用」关着,订阅「编辑信息」的「覆写」里也没有它。\n- **规则写成了不带加号的列表**,或用了 `rules+`:见上一节。\n- **覆写或规则写坏了**:YAML 语法错、规则类型拼错时,点「确认」会弹出报错,但坏的内容已经存下了;开着「全局启用」或被订阅选用的话,下次启动内核会起不来,弹「内核启动出错」。在「编辑文件」里改好再点「确认」,内核就起来了,不用重启 Clash Party(都是 Linux 上实测)。更多见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)。\n- **JavaScript 覆写运行出错**(包括忘了 `return config`):这次它的改动整个作废,不弹提示。在卡片的「⋮」→「执行日志」里看「脚本执行失败」后面的原因。\n- **写的是应用设置里就有的项**:端口、代理模式、TUN、查找进程这些最后以应用设置为准,到对应的设置页改。侧栏「DNS 覆写」「嗅探覆写」开着时,覆写里写的 DNS、域名嗅探设置也会被应用里的同名设置盖掉。\n- **改的是「编辑订阅」**:那里直接改的订阅文件,更新订阅后会还原,界面上就有这句提示。挪到「编辑规则」或覆写里。\n\n## 先后顺序\n\n按源码,生成配置时依次叠加:订阅原文 → 开了「全局启用」的覆写(按「覆写」页里卡片的顺序,可以拖动调整)→ 订阅「编辑信息」里加的覆写(按添加的顺序)→「编辑规则」→ 应用设置。同一项后写的赢;多个覆写都用 `+rules` 时,后套上的排在最前(Linux 上实测);「编辑规则」的前置规则排在覆写 `+rules` 加的规则前面。\n\n## 远程覆写\n\n在「覆写」页的输入框填覆写文件的网址、点「导入」,是把它下载一次、存成一张卡片,卡片名取网址的最后一段;网址打不开时提示「添加覆写失败」(Linux 上实测)。它不会自己更新:点卡片上的刷新按钮才重新下载,刷新后「全局启用」保持(Linux 上实测);你在本地对它的修改会被新下载的内容换掉(按源码)。导入别人写的覆写前,先打开「编辑文件」看它改了什么(作者建议)。\n\n## 这些结论是怎么核对的\n\n按 Clash Party 2.0.3 源码和 mihomo 官方文档写,并在 Linux 虚拟机(Ubuntu 24.04 arm64,官方 deb)里实际操作了 YAML 覆写的新建、两种启用方式、重启与更新订阅后是否保留、远程覆写、写坏时的表现;在 Windows 11 实机上用「编辑规则」给一个程序加过 `PROCESS-NAME` 前置规则,看了连接详情。限制:「编辑规则」在更新订阅、重启后是否保留,以及 JavaScript 覆写,都没有实际运行,按源码写;覆写没有在 Windows 上操作,macOS 没有实测。\n\n## 步骤\n1. 先确认侧栏最上面那一排选的是「规则」:「全局」「直连」模式下内核不看规则,加了也不生效(见 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules));不是的点「规则」。再弄清按什么加。趁那个网站或程序正在连的时候,打开侧栏「连接」,点开它的一条连接看详情:按网站加,记下「主机」一行的域名;要让整个程序直连,记下「进程名」一行;列表里的连接标题不带 `.exe`,以详情里的「进程名」为准(Windows 上实测)。详情里没有「进程名」这一行时,到「内核设置」把「查找进程」从默认的「自动」改成「开启」,再让程序重新连一次。界面按源码,「进程名」一行与「查找进程」默认的「自动」Windows 上实测。「连接」里找不到它的,先打开「连接」页再让它重新连一次:打开这一页之前就已结束的短连接,「已关闭」里不会列出(Windows 上实测);这样还找不到的,多半是它的流量没交给 Clash Party,加规则管不到它(作者判断)。\n 失败时 → escalate\n2. 加规则,两种办法选一种(「编辑规则」的界面 Windows 上实测,其余按源码)。**只给一个订阅加**:「订阅管理」里右键那个订阅(或点它右上角的「⋮」)→「编辑规则」。「规则类型」网站选 `DOMAIN-SUFFIX`,「匹配内容」填 `example.com` 这样的域名(它的子域名一起算);程序选 `PROCESS-NAME`,照「进程名」原样填,Windows 上带 `.exe`(编辑器里的示例就是 `chrome.exe`)。「代理节点」保持默认的 `DIRECT`,点**「添加前置规则」**,再点「保存」。**给所有订阅加**:侧栏「覆写」→ 输入框右边的「+」→「新建 YAML」,右键新出现的卡片选「编辑文件」,照正文的写法用 `+rules` 写规则,点「确认」。\n 失败时 → escalate\n3. 用覆写的,还要启用它(用「编辑规则」的跳过这步)。对所有订阅生效:打开这张卡片上的「全局启用」开关。只给某个订阅用:「全局启用」保持关着,到「订阅管理」里那个订阅的「⋮」→「编辑信息」,在最下面的「覆写」一栏点「+」选中它,再点「保存」。只新建、不启用,覆写不会生效;两种启用方式都是立即生效(Linux 上实测)。在「编辑文件」点「确认」时弹出报错,是新配置有错、内核没换上它,但改动已经存下了(Linux 上实测);打开启用开关或在「编辑信息」里保存时报错,按源码也是这样。照报错改好再保存,或者先把它关掉——不改的话下次启动内核会起不来(Linux 上实测)。\n 失败时 → escalate\n\n## 验证\n- **cpo-check-connection**(人):先打开侧栏「连接」,再让那个网站或程序重新连一次(网页关掉重开,程序退出再打开;作者建议),然后点开它的新连接。打开「连接」之前就已结束的短连接,「已关闭」里不会列出(Windows 上实测)。\n 预期:「规则」一行是你加的那条,例如 `DomainSuffix(example.com)` 或 `ProcessName(…)`,「代理链」是 `DIRECT`(`ProcessName(…)` 与 `DIRECT` 是 Windows 上实测,`DomainSuffix(…)` 按源码)。显示的是别的规则,比如 `Match`,说明你的规则没接住它:先看侧栏最上面选的是不是「规则」,再核对规则类型和内容、是不是点成了「添加后置规则」、覆写有没有启用;也可以点侧栏订阅卡片上的文档图标(鼠标停上去显示「查看运行时配置」),搜你加的规则在不在、排在第几条。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n\n## 来源\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/core/factory.ts L55-L58(开了全局启用的覆写)、L166-L176(先覆写、再编辑规则)、L178-L191(应用设置最后并入;DNS 覆写、嗅探覆写关着时不并入 dns、sniffer)、L244-L302(编辑规则的前置、后置、删除)、L339-L355(先全局覆写、再订阅自己选的覆写)、L357-L379(YAML 覆写按 deepMerge 合并)、L381-L422(JavaScript 覆写在只有 console 的 vm 里运行,出错记「脚本执行失败」并原样返回配置);src/main/utils/merge.ts L24-L36(+键名加在列表最前、键名+加在最后、不带加号整份替换);src/main/utils/template.ts L86-L112(应用设置里的端口、mode、tun、find-process-mode 默认 strict、dns、sniffer);src/main/config/override.ts L113-L154(远程覆写在添加时下载);src/main/config/profile.ts L475-L489(更新订阅沿用覆写列表)、L580-L581(先带覆写校验再写订阅文件);src/main/utils/dirs.ts L133-L142、L196-L201(覆写文件、规则文件各自存放);src/renderer/src/pages/override.tsx L47-L63(输入覆写 URL 导入)、L66-L82(拖动排序写回)、L216-L260(+ 菜单);src/renderer/src/components/override/override-item.tsx L61-L103(菜单,执行日志只有 JavaScript 有)、L140-L150(全局启用先存再热重载)、L203-L227(远程覆写的刷新按钮重新下载)、L256-L273;src/renderer/src/components/override/edit-file-modal.tsx L55-L66(确认后先写文件再热重载);src/renderer/src/components/profiles/profile-item.tsx L85-L149、L278、L326-L333(订阅菜单、右键、⋮);src/renderer/src/components/profiles/edit-info-modal.tsx L53-L74、L307-L368(覆写一栏);src/renderer/src/components/profiles/edit-file-modal.tsx L41、L51(编辑订阅的提示);src/renderer/src/components/profiles/edit-rules-modal.tsx L267-L273(PROCESS-NAME 示例,Windows 为 chrome.exe)、L556(默认 DIRECT)、L885-L936(保存写规则文件,当前订阅热重载)、L1319-L1336(添加前置规则、添加后置规则);src/renderer/src/components/connections/connection-detail-modal.tsx L150-L156(规则、代理链)、L189(有进程名才显示);src/renderer/src/pages/mihomo.tsx L1525-L1540(查找进程);src/renderer/src/components/sider/profile-card.tsx L119-L131(查看运行时配置);src/renderer/src/components/sider/dns-card.tsx L113、sniff-card.tsx L99(开关);src/renderer/src/locales/zh-CN.json L152、L277-L281、L350-L354、L387、L569、L592、L613、L619-L631、L680-L708、L724-L729)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(优先级(从上到下匹配);DOMAIN-SUFFIX;PROCESS-NAME;MATCH)\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(constant/rule.go L51-L52、L89-L90(命中的规则类型显示为 DomainSuffix、ProcessName);tunnel/tunnel.go L393-L399(find-process-mode 为 always 时每条连接都先查进程))\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:b5966b4 2026-10-02\n"},"clash-party-tun-not-working":{"id":"clash-party-tun-not-working","type":"troubleshoot","title":"Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表","aliases":["Clash Party 虚拟网卡开了没用","Clash Party TUN 不生效","Clash Party 开 TUN 断网","Clash Party 开了 TUN IP 没变","Clash Party 虚拟网卡没接管","Clash Party 升级 2.0.3 后 TUN 不通","Clash Party 开机后 TUN 失效","Clash Party 重新打开后虚拟网卡自己关了","Clash Party 睡眠唤醒后 TUN 失效","mihomo party TUN 不生效","虚拟网卡启动失败,已自动关闭"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-party","tun-and-service"],"intents":[],"applicability":{"client":["clash-party"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表\n\n主题:`排错`\n适用:clash-party / windows/macos/linux / any\n最后验证:2026-10-01\n\n**Clash Party 开了虚拟网卡(TUN)却上不了网、查 IP 没变、不认系统代理的程序还是不走代理,或者开机、升级到 2.0.3、睡眠唤醒后失效,按顺序查:** ① 「虚拟网卡」开关还开着吗——Windows 上不是以管理员身份打开时会被悄悄关掉。② 是不是只在睡眠唤醒后才坏。③ 虚拟网卡还接不接管 DNS——「DNS 覆写」关着(2.0.3 遇到订阅带某几项 DNS 设置时每次打开都会自动关掉它)、订阅和覆写合起来又没启用 DNS 的,就不再接管域名解析,设置页上看不出来,要看运行时配置(侧栏订阅卡片标题右边的文档图标,鼠标停上去显示「查看运行时配置」,按源码)。④ 关掉「系统代理」只留虚拟网卡,看「连接」页里那个网站的连接是不是以 Tun 开头、走的是不是节点。\n\n## 升级到 2.0.3 后为什么会这样\n\nLinux 虚拟机里实测:2.0.2 上开着「DNS 覆写」,升级到 2.0.3 后第一次启动就被自动关掉,实验用的订阅又没启用 DNS,虚拟网卡开关仍开,实际已不劫持 DNS。不劫持**不等于打不开网页**:节点与电脑同机的实验里照样能打开,只有人为让节点访问不到系统 DNS 地址时才整个上不了网;真实远端节点没测。「DNS 覆写」本身怎么选见 `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)。\n\n## 适用范围与验证方式\n\nClash Party 2.0.3。Linux 虚拟机(官方 deb,自制订阅、本机节点)实测了 DNS 部分与连接页;Windows 11 实机实测了管理员身份。macOS、睡眠唤醒、开机自启、升级内核后的授权按源码写,没实测。\n\n## 取证\n- **cptn-switch-on**:侧栏「虚拟网卡」开关现在开着吗?(弹回、报错,或重新打开后自己变成关的,选「失败」)\n pass → cptn-not-only-after-wake;fail → cptn-switch-off;unknown → cptn-not-only-after-wake\n- **cptn-not-only-after-wake**:不是只在电脑睡眠唤醒后才出问题吧?(只在唤醒后不通的选「失败」)\n pass → cptn-dns-hijack-kept;fail → cptn-after-wake;unknown → cptn-dns-hijack-kept\n- **cptn-dns-hijack-kept**:虚拟网卡还在接管 DNS 吗?点侧栏订阅卡片标题右边的文档图标(鼠标停上去显示「查看运行时配置」,按源码),`tun` 下的 `dns-hijack` 不是空的 `[]` 吧?(是 `[]` 的选「失败」;看不到的按这条判断:「DNS 覆写」关着,而且订阅和你启用的覆写合起来 DNS 不是启用的(都没写 `enable: true`,或后面的覆写把它改成了 `false`),选「失败」;拿不准选「无法判断」)\n pass → cptn-conn-via-tun;fail → cptn-dns-not-hijacked;unknown → cptn-conn-via-tun\n- **cptn-conn-via-tun**:关掉「系统代理」只留虚拟网卡,先打开侧栏「连接」页再访问那个网站:它的连接第一个标签以 Tun 开头(如 `Tun(TCP)`)吗?(以 HTTP 等开头选「失败」;列表里找不到这个网站的连接,可能是域名都没解析出来,选「无法判断」)\n pass → cptn-conn-via-node;fail → cptn-not-captured;unknown → escalate\n- **cptn-conn-via-node**:点开这条连接,「代理链」是一个节点(不是 `DIRECT`)吗?\n pass → escalate;fail → cptn-routed-direct;unknown → escalate\n\n## 原因\n- **cptn-switch-off**(可能性 high)→ 修复 cptn-fix-switch\n- **cptn-after-wake**(可能性 medium)→ 修复 cptn-fix-wake\n- **cptn-dns-not-hijacked**(可能性 high)→ 修复 cptn-fix-dns\n- **cptn-not-captured**(可能性 medium)→ 修复 cptn-fix-capture\n- **cptn-routed-direct**(可能性 medium)→ 修复 cptn-fix-route\n\n## 修复\n### cptn-fix-switch\n1. **Windows**:不是以管理员身份打开时,启动时开关被关掉、没有提示(Windows 上实测)。再点开关,「需要管理员权限」点「确认」、用户账户控制点「是」,或右键选「以管理员身份运行」(Windows 上实测)。开机自启后开关是关的:以管理员身份打开后把「开机自启」关掉再打开(按源码,没实测)。\n2. **macOS、Linux**:提示「虚拟网卡启动失败,请尝试手动授权内核」,或在「内核设置」页升级过内核的,到「虚拟网卡」设置页点「手动授权内核」、输管理员密码再开(按源码,没实测)。官方 deb 装好后直接能开,重启后开关保持(Linux 上实测,T1、T5)。弹「虚拟网卡启动失败,已自动关闭」的拿框里内核原话查 `mihomo 内核报错信息表`(见 mihomo-error-catalog),弹「内核启动出错」的见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)(作者建议)。\n验证:cptn-tun-works\n\n### cptn-fix-wake\n1. 2.0.3 唤醒后会自己检查:虚拟网卡没了就重建、还在就重新载入配置(按源码,没实测)。仍不通就把「虚拟网卡」开关关掉再打开,再不行点「内核设置」卡片上的刷新按钮重启内核(作者建议)。\n验证:cptn-tun-works\n\n### cptn-fix-dns\n1. 「DNS 覆写」关着(默认就关)、订阅和你启用的覆写合起来又没启用 DNS(合起来没有 `dns` 段,或 `enable` 不是 `true`)时,虚拟网卡实际不劫持 DNS(运行时配置里 `dns-hijack` 是 `[]`),设置页看不出来(「虚拟网卡」页仍显示 any:53):域名解析成真实地址,DNS 查询当普通流量按规则走(Linux 上实测,T1、T2)。能否上网看节点能否访问你系统里的 DNS 地址:同机节点能打开,人为让它访问不到时上不了网(T3;远端节点没测)。2.0.3 起订阅带 `proxy-server-nameserver` 等三项时,「DNS 覆写」每次重新打开、切换订阅、这几项变了都会被自动关;从 2.0.2 升级后第一次启动也是(实测,D3–D5、T4)。订阅写了 `enable: true` 的照样劫持(实测,T5;用覆写打开 DNS 的按源码同理,没实测)。\n2. 打开「DNS 覆写」,弹「是否开启 DNS 覆写?」点「仍然开启」,劫持恢复、解析回到 198.18 开头(实测,T2、T4);它会换掉订阅写的 DNS 服务器(D2),开了反而连不上就关回去。确认只管这一次运行(D3),见 `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)。不想每次开:问服务商要启用了 DNS 的订阅(作者建议)。\n验证:cptn-tun-works\n\n### cptn-fix-capture\n1. **Windows** 按提示以管理员身份重启后,可能开关开着、系统里却没有虚拟网卡:实测是前后起了两个内核,旧的退出时把网卡带走了。从托盘「退出应用」,再右键选「以管理员身份运行」就正常了(Windows 上实测)。仍不行的,先退出别的代理软件或 VPN(作者建议)。\n验证:cptn-tun-works\n\n### cptn-fix-route\n1. 连接走 `DIRECT`:侧栏最上面是「直连」的切回「规则」,「全局」的到「代理组」页的 `GLOBAL` 组点一个节点(见 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run));「规则」的,详情里「规则」一行就是让它直连的那条(Windows 上实测),要改见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override) 与 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)(作者建议)。\n验证:cptn-tun-works\n\n## 验证\n- **cptn-tun-works**(人):保持「系统代理」关、「虚拟网卡」开,先打开「连接」页,再用浏览器打开一个平时要经代理才能打开的网站;然后从托盘「退出应用」、重新打开 Clash Party(Windows 以管理员身份),再试一次。\n 预期:网站能打开,它的连接以 `Tun` 开头、「代理链」是节点,重新打开后「虚拟网卡」开关仍是开着的,就是好了;重新打开后网站又打不开的,回到第三问看 DNS 劫持。仍然不行从第一问重走;都过了还不行,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到内核日志,遮掉订阅链接和服务器地址后带着最后几行求助(作者建议)。\n 通过 → resolved;失败 → cptn-switch-on;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n\n## 来源\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/core/factory.ts L178-L195(清空 dns-hijack);src/main/core/permissions.ts L348-L374(启动时没权限静默关虚拟网卡);src/main/sys/autoRun.ts L31-L33、L111-L147(开机任务的权限);src/renderer/src/pages/mihomo.tsx L424-L441(升级内核后要重新授权);src/main/sys/resume.ts L46-L85(唤醒恢复);src/renderer/src/locales/zh-CN.json L515-L516)\n- exp-clash-party-tun-dns-gui-linux-2026-10-01:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-retest-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"clash-verge-rev-lineage":{"id":"clash-verge-rev-lineage","type":"faq","title":"Clash Verge Rev、Clash Verge、Clash 三个名字的关系","aliases":["Clash Verge Rev 和 Clash Verge","Clash Verge Rev 是谁做的","Clash Verge Rev 是谁维护的","Clash Verge Rev 是不是官方的","Clash Verge 和 Clash Verge Rev 区别","zzzgydi"],"primary_topic":"clash-verge-rev","topics":["clash-verge-rev","basics"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":"any","panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev、Clash Verge、Clash 三个名字的关系\n\n主题:`客户端` › `Clash Verge Rev`\n适用:clash-verge-rev / any / any\n最后验证:2026-09-27\n标记:信息说明\n\n**问:** Clash Verge Rev 是不是 Clash Verge 的延续?由谁维护、按什么许可证开源?\n\n**答:** 官方 README 开头写它是 Clash Verge(`zzzgydi/clash-verge`)的延续(Continuation),自述为「A Clash Meta GUI based on Tauri」,Features 一节写明内置 Clash.Meta 内核,GPL-3.0 开源。\n名字看着像三个东西,README 的致谢一节把它们摆在了一起:\n\n- **Clash**(`Dreamacro/clash`)在致谢里的描述是 `A rule-based tunnel in Go`。\n- **Clash Verge**(`zzzgydi/clash-verge`)的描述是 `A Clash GUI based on tauri`。\n- **Clash Verge Rev** 的 README 开头写着 `Continuation of Clash Verge`,链接指向 `zzzgydi/clash-verge`。\n\n也就是说:**这个项目自述为 Clash Verge 的延续**。README 没有解释名字里的 `Rev` 是什么意思,本条目也不替它解释。\n\n## 它用的是哪个内核\n\nREADME 的 Features 一节写明**内置 `Clash.Meta(mihomo)` 内核**,链接指向 `MetaCubeX/mihomo`,并说支持切换 `Alpha` 版本内核。所以 **Clash.Meta 与 mihomo 指的是同一个内核**——你在不同地方看到这两个名字,不必当成两样东西。想换内核版本看 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)。\n\n## 「官方」这个词要拆成两问\n\n它是 **GPL-3.0 开源项目**。问「是不是官方的」通常混着两件事,分开看更清楚:\n\n- **这个仓库是不是这个客户端的正主** —— 是。本知识库引用它时一律钉到具体的 commit,地址写在来源里,你可以自己点进去核。\n- **有没有谁为这个软件承担担保或售后责任** —— **仅凭这份 README 无法确认**。它有 `Promotion`、`Donation`(GitHub Sponsors)这些板块,但赞助与担保不是一回事,README 也没有就担保说过什么。\n\n实际的含义是:**下载只认项目自己声明的渠道**(这个项目是它的 GitHub Releases),别从搜索结果里随便点一个同名站点。各客户端的官方渠道见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n## 相关条目\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n\n## 来源\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(README.md 第 4 行「Continuation of Clash Verge」(链接指向 zzzgydi/clash-verge)、第 9 行「A Clash Meta GUI based on Tauri」、Features 一节第 83 行「内置 Clash.Meta(mihomo) 内核」、Acknowledgement 一节的 Dreamacro/clash 与 zzzgydi/clash-verge 条目、第 49 行 Promotion 一节、第 94 行 Donation(GitHub Sponsors)、末尾的 GPL-3.0 License)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(README.md L4「Continuation of Clash Verge」(链接指向 zzzgydi/clash-verge)、L9「A Clash Meta GUI based on Tauri」、Features 一节 L82「内置 Clash.Meta(mihomo) 内核,并支持切换 Alpha 版本内核」、L49 Promotion 一节、L93 Donation(GitHub Sponsors)、Acknowledgement 一节 L123 zzzgydi/clash-verge 与 L125 Dreamacro/clash、L137-L139 GPL-3.0 License(2.5.2 README 里的 Supported By ForZTN 一节已不在))\n\n最后修订:39fb241 2026-09-28\n"},"client-and-core-concept":{"id":"client-and-core-concept","type":"concept","title":"Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系","aliases":["Clash 内核","Clash 软件","mihomo","Clash Meta 和 mihomo 的关系","Clash.Meta","Clash Verge Rev 和 mihomo 的关系","verge-mihomo","这么多软件都叫 Clash","FlClash 的内核","v2rayN 和 Xray 的关系","v2rayNG 和 Xray 的关系","sing-box 是客户端还是内核","Clash for Windows 停更","CFW 停更","换客户端要不要换订阅","换客户端后订阅还能不能用"],"primary_topic":"basics","topics":["basics","clients","clash-verge-rev","v2rayn","sing-box"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-09-23","freshness":"current","markdown":"# Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系\n\n主题:`基础概念`\n适用:any / any / any\n最后验证:2026-09-23\n标记:信息说明\n\n> 你装的 Clash Verge Rev、FlClash、v2rayN 是界面,真正转发流量的是界面带的内核:mihomo(原来叫 Clash.Meta)、Xray 或 sing-box。很多名字带 Clash 的软件是 mihomo 内核的第三方界面,mihomo 官方不直接控制它们。配置格式跟着内核走:换客户端要不要换订阅,看新客户端带的内核、会不会转换格式,不看名字。\n\n你装的 Clash Verge Rev、FlClash、Clash Party、v2rayN、v2rayNG 是**界面(客户端)**;真正转发流量的是界面里带的**内核**:mihomo(原来叫 Clash.Meta)、Xray 或 sing-box。实测的三个 macOS 桌面客户端里,内核是安装包里单独的一个程序,取出来也能单独运行。\n\n- **Clash 是什么、mihomo 是什么**:Clash 是一类内核的名字,有闭源的 Clash Premium,也有开源的 mihomo(Clash Meta)。mihomo 官方的第三方客户端清单列了 60 多个项目,名字带 Clash 的有 31 个,官方写明它们都用或带有 mihomo 内核,但**并不直接控制**它们。\n- **换客户端要不要换订阅**:看新客户端用哪个内核、会不会替你转换格式,不看名字里有没有 Clash。\n- **Clash Verge Rev 和 mihomo 什么关系**:前者是界面,它带的 `verge-mihomo` 是打包时从 mihomo 官方发布页下载、改了名字的 mihomo。\n- **v2rayN 和 Xray 什么关系**:v2rayN、v2rayNG 是界面,Xray 是内核。v2rayN 的普通节点可以在 Xray 和 sing-box 之间选,整份 Clash 配置交给它带的 mihomo 运行;v2rayNG 2.2.6 的 arm64-v8a 安装包里只有 Xray。\n- **sing-box 是客户端还是内核**:它本身是内核,官方另做了图形客户端。\n\n## 界面负责启动内核,内核负责转发\n\n以 Clash Verge Rev 2.5.2 为例:打包脚本从 mihomo 官方发布页下载内核,改名为 `verge-mihomo`(另有测试版 `verge-mihomo-alpha`)放进安装包;运行时界面把你的订阅和设置整理成内核认得的配置,再启动内核。实测包里的 `verge-mihomo` 与官方同版本构建只差代码签名;实机上看到的是两个程序:界面 `clash-verge` 和内核 `verge-mihomo`。v2rayN 也是这样,给哪个内核就用哪个内核的启动参数。\n\n安卓端不一样:实测的 arm64-v8a 安装包里,内核编进了一个库文件。FlClash 里是 mihomo,v2rayNG 里是 Xray,sing-box 官方安卓客户端和 Karing 里是 sing-box;其中 v2rayNG 2.2.6 编进的 xray-core 被替换成了另一个仓库的版本,Karing 自述内置的是修改过的 sing-box。\n\n**这对你意味着**:\n\n- **内核版本跟着安装包走。** 实测 Clash Verge Rev 2.5.2 带的 mihomo 是 v1.19.29,Clash Party 2.0.3 带的是 v1.19.31,同一个内核在不同客户端里版本可以不同。Clash Verge Rev 里单独升级内核见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)。\n- **界面的问题和内核的问题要分开问。** mihomo 官方说,不是内核引起的问题要反馈给各个客户端。\n\n## 为什么这么多软件都叫 Clash\n\nClash Verge Rev 文档的名词解释写:Meta 内核一般指 Clash Meta,也称 Meta、Mihomo 内核;区别于闭源的 Clash Premium,Mihomo 是开源内核。mihomo 仓库 README 的标题是「Meta Kernel」,致谢里列着 `Dreamacro/clash`;旧仓库地址 MetaCubeX/Clash.Meta 现在直接跳转到 MetaCubeX/mihomo。所以 **Clash.Meta 和 mihomo 是同一个内核**;Clash Verge Rev、Clash Verge、Clash 三个名字的关系见 `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)。\n\nmihomo 官方文档的第三方客户端清单开头写明:这些工具/客户端都使用或带有 mihomo 内核,官方**并不直接控制**它们的开发,它们**未必包括官方版本的最新功能和修复**。清单上名字带 Clash 的包括 clash-verge-rev、FlClash 和已停止维护的 clash-verge,v2rayN 也在上面(2026-09-23 访问时)。MetaCubeX 自己也做了安卓界面 Clash Meta for Android(CMFA)。\n\n带的也不全是同一份 mihomo:FlClash 把 mihomo 换成了作者自己仓库 `chen08209/Clash.Meta` 的 FlClash 分支;Clash Party 另带一个自报为 mihomo alpha-smart 的 Smart 内核。\n\n**Clash for Windows(CFW)**:Clash Verge Rev 文档称,CFW 是基于闭源 Clash Premium 内核的全平台软件,2023 年 11 月 2 日宣布停止更新并删除了发布仓库;Clash for Android(CFA)受此影响,也删除了代码库并从 Google Play 下架。老教程里的 CFW 截图和你现在装的界面对不上,是正常的;CFW 也不会再收到更新。\n\n**这对你意味着**:名字带 Clash 不代表是同一个软件,也不代表是官方出品;各个界面带的 mihomo 版本和分支可能不同。想从 CFW 换到仍在维护的客户端,或者找各客户端的官方下载渠道,见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n## v2rayN、v2rayNG 与 Xray;sing-box 的官方客户端\n\nv2rayN 的自述是 Windows、Linux、macOS 上的图形客户端,支持 Xray、sing-box 和其他内核。按 7.24.9 的源码:普通节点能选的内核只有 Xray 和 sing-box,都没指定时用 Xray;TUIC、Anytls、Naive 节点固定交给 sing-box;分享链接形式的节点由 v2rayN 按所选内核生成配置;订阅内容如果是一整份 Clash、Xray 或 sing-box 配置,就作为自定义配置原样交给对应的内核,Clash 配置交给 mihomo。实测 7.24.9 的 macOS 包里同时带了 Xray、sing-box、mihomo 三个内核。\n\nv2rayNG 的自述是安卓上的 V2Ray 客户端,支持 Xray 内核和 v2fly 内核;实测 2.2.6 的 arm64-v8a 安装包里只编进了 Xray。\n\nsing-box 官方(Project S)维护的图形客户端是 sing-box for Android、sing-box for Apple platforms(iOS、macOS、Apple tvOS)和 sing-box for Desktop(Windows、Linux);官方说明,一些声称使用 sing-box 的第三方项目没有列在这张表里,页面没有点名是哪些。\n\n**这对你意味着**:名字里有 sing-box 的 App 不一定是官方出品,官方的只有上面三个,下载渠道见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。在 v2rayN 里,TUIC、Anytls、Naive 节点背后跑的是 sing-box,出问题时要看的是 sing-box 的版本和日志(作者据源码给的判断)。\n\n## 换客户端要不要换订阅\n\n**配置格式跟着内核走。** 实测把同一个节点写成 Clash(mihomo)、sing-box、Xray 三种格式:每个内核拿到自家格式都能转发;拿到别家格式的六种组合,要么报错拒绝,要么启动了也不转发。四个来源的 mihomo(上游、Clash Verge Rev 带的、v2rayN 带的、Clash Party 带的)吃的是同一份 Clash 文件。同一个订阅链接,服务商可能根据你用的是哪个客户端下发不同格式的配置(靠请求里的 User-Agent,简称 UA),Clash Verge Rev 要的是 YAML 格式的 mihomo 配置。\n\n**「导入成功」「检查通过」不能当判据。** 格式不对时,sing-box 的检查会报错拒绝;但 mihomo 的检查对 sing-box、Xray 格式照样通过,Xray 的检查对 Clash 格式也通过,这三组真正启动后都不监听代理端口、什么都不转发。\n\n**这对你意味着**:在都用 mihomo 的界面之间换,Clash 格式的订阅一般还能用(作者判断:内核这一层据上面的实测;界面导入时的检查与订阅端按客户端下发,本条没有测;前提是新界面拿到的仍是 Clash YAML,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch));换到 Xray、sing-box 系的客户端,要看它会不会替你转换,v2rayN 的做法见上一节。Karing 自述是基于 sing-box 的图形界面,完整支持 clash 配置、只部分支持 clash.meta 配置,用到 mihomo 扩展写法的订阅要自己确认。服务商面板里如果有按客户端分开的订阅链接,换客户端时用对应的那条(作者建议);换了之后没有节点、导进去没反应或者连不上,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查;各客户端吃哪种订阅见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n## 这些结论是怎么核对的\n\n按上述各项目钉到 commit 的源码与官方文档核对,并在 macOS 命令行上检查了 7 个客户端安装包、单独运行了从三个桌面端安装包取出的内核;「界面和内核是两个进程」来自另一次在 macOS 上运行 Clash Verge Rev 2.5.2 的记录。\n\n- 界面怎样把订阅转成配置只读了源码,没有在界面里观察;安卓端只读了安装包里的文件,没有安装、没有看进程。\n- 转发实测只用了一个本机 Shadowsocks 节点和三份最小配置;不同版本、不同分支的内核在别的协议或配置项上有没有差别,没有测。\n- Windows、iOS 没有实际检查。\n\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- metacubex-wiki-client-list:https://wiki.metacubex.one/startup/client/client/(页首说明段(均为使用或带有 mihomo 内核、并不直接控制、非内核问题反馈给各客户端);各平台表格。计数:取各表首列的项目名,按名字去重(不分大小写)共 64 个,名字含 clash 的 31 个(含 clash-verge-rev、FlClash 与标为停止维护的 clash-verge);v2rayN 在 Windows 表。站点源码 MetaCubeX/Meta-Docs@517f4c2 docs/startup/client/client.md)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(Meta 内核、Alpha 内核、CFW、CFA 四节;UA 一节(订阅服务商按 UA 下发不同配置、返回 YAML 格式的 mihomo 配置即正确);服务模式一节(开了服务模式时由服务进程拉起内核))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(README.md 第 3 行(标题 Meta Kernel)、第 6 行(Another Mihomo Kernel)、Credits 一节第 90 行(Dreamacro/clash))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/tauri.conf.json L16(externalBin:sidecar/verge-mihomo 与 verge-mihomo-alpha);src-tauri/src/config/verge.rs L288(VALID_CLASH_CORES 只有这两个);scripts/prebuild.mjs L173-L179(从 MetaCubeX/mihomo 的 Release 下载,darwin-arm64 用 mihomo-darwin-arm64-go122)与 L292-L316(改名为 verge-mihomo / verge-mihomo-alpha);src-tauri/src/core/manager/state.rs L40-L65(start_core_by_sidecar:用生成的运行配置以 -d、-f 参数把内核作为子进程启动))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(README.md 第 3 行(GUI client,Support Xray and sing-box and others);v2rayN/ServiceLib/Global.cs L349-L353(普通节点可选的 CoreTypes 只有 Xray、sing_box,OptionSettingWindow、AddServerWindow 用这张表);v2rayN/v2rayN/Views/AddServer2Window.xaml.cs L49 与 SubEditWindow.xaml.cs L12(只有自定义配置和订阅的自定义内核才列出完整 ECoreType);Manager/AppManager.cs L666-L675(GetCoreType:未指定时默认 Xray);Handler/ConfigHandler.cs L853、L949、L977(TUIC、Anytls、Naive 设为 sing_box)、L1735-L1756(未指定订阅自定义内核时,把整份 Xray/V2ray 或 sing-box 配置作为自定义配置导入)与 L2040-L2110(订阅内容先按分享链接解析,失败再按整份配置解析);Handler/Fmt/ClashFmt.cs L5-L19(含 rules、-port、proxies 的整份 Clash 配置设为 mihomo);Handler/CoreConfigHandler.cs L16-L31(自定义配置:内核为 mihomo 时包装原配置,其余原样复制;普通节点按内核生成 sing-box 或 V2ray 格式);Manager/CoreManager.cs L305-L344 与 Manager/CoreInfoManager.cs(内核作为独立进程启动,参数随内核而变))\n- v2rayng-repo:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README.md 第 3 行(A V2Ray client for Android, support Xray core and v2fly core))\n- cmfa-repo:https://github.com/MetaCubeX/ClashMetaForAndroid/tree/513b67fc35c68af1b0e7377681f95b33c074ecf7(README.md 第 3 行(A Graphical user interface of Clash.Meta for Android))\n- flclash-src-7c61c90:https://github.com/chen08209/FlClash/blob/7c61c90ac20493b474d19c75ec96262b478b4b88/.gitmodules(.gitmodules(core/Clash.Meta 指向 chen08209/Clash.Meta 的 FlClash 分支);同一 commit 的 README.md 第 13 行(based on ClashMeta)与 core/go.mod 第 5 行(replace github.com/metacubex/mihomo => ./Clash.Meta))\n- clash-party-src-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(README.md 第 6 行(Another Mihomo GUI)、第 38 行(内置 Smart 内核与 Mihomo(Clash Meta) 内核))\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(README.md 第 9 行(A singbox GUI based on flutter)、第 17-18 行(Full clash config supported, Partial clash.meta config supported)、第 31 行(the modified sing-box core))\n- singbox-docs-clients:https://sing-box.sagernet.org/clients/(Graphical Clients 页:Maintained by Project S;平台表(sing-box for Android、sing-box for Apple platforms、sing-box for Desktop)与表后关于第三方项目未列入的段落(未点名具体项目))\n- exp-client-and-core-concept-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-macos-cvr-singbox-2026-09-22:验证记录(内部存档,未公开)\n\n最后修订:304ec38 2026-09-30\n"},"client-overview":{"id":"client-overview","type":"reference","title":"手机和电脑上各有哪些客户端、官方从哪下载","aliases":["安卓用什么客户端","iPhone 用什么客户端","小火箭","Shadowrocket 多少钱","Shadowrocket 怎么买","手机上能用哪个","手机上装哪个","手机用什么软件","客户端下载地址","有哪些客户端","客户端对比","用哪个客户端","苹果手机能用吗","安卓下载地址","鸿蒙能用吗","有没有鸿蒙版"],"primary_topic":"clients","topics":["clients","reference"],"intents":[],"applicability":null,"freshness_mode":"source-monitored","last_verified_at":"2026-09-21","freshness":"current","markdown":"# 手机和电脑上各有哪些客户端、官方从哪下载\n\n主题:`客户端`\n适用:通用\n最后验证:2026-09-21\n标记:信息说明\n\n**安卓(Android)** 上有 Clash Meta for Android、FlClash(这两个都是 Clash 系内核)、v2rayNG(Xray 内核);**iPhone / iPad(iOS)** 上有 sing-box 苹果端、Karing、Shadowrocket。下表只列各自**官方声明的分发渠道**,不评价好坏、也不推荐;每一行的出处都在表格右侧。\n\n**苹果这边有几道门槛在你下载之前就会卡住**:sing-box 苹果端官方写明需要「非中国大陆的苹果账户」;它的 iOS 版从 1.14.0 起换了开发者账号,以 **sing-box MT** 的名字重新上架 App Store,旧的 sing-box VT 要另装新应用(官方 Apple 客户端页还挂着「暂时无法在 App Store 更新」的旧提示,没有跟着改,详见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region));另一条 TestFlight 通道的**名额只给赞助者**;Shadowrocket 在 App Store 标价 **$2.99**、是付费应用。安卓没有这两道,但 Clash Meta for Android 要求 **Android 5.0 以上**(官方建议 7.0 以上),FlClash 官方列的平台里**没有 iOS**。\n\n**华为鸿蒙(HarmonyOS)**:Clash Meta for Android、FlClash、v2rayNG、Karing 的官方说明里列的平台都没有鸿蒙;sing-box 苹果端和 Shadowrocket 是苹果系统上的应用。2026-10-02 查了 v2rayNG、v2rayN、FlClash、Clash Verge Rev、Karing、Clash Meta for Android、sing-box、Clash Party 各自 GitHub 发布页最近 30 个版本,没有鸿蒙安装包(作者核对;Shadowrocket 没有公开仓库,不在其中)。在鸿蒙上借兼容环境运行安卓版能不能用,本站没有测。\n\n**选客户端之前先看订阅格式**——机场给的链接不是每个客户端都吃同一种,搞错的表现是导入之后没有节点、或者导入这一步就失败(按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查;Clash Verge Rev 更新订阅失败的其它原因按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 查)。\n\n## 哪个客户端吃哪种订阅\n\n- **Clash 系**(Clash Verge Rev、Clash Meta for Android、FlClash)用的是同一个内核家族(Clash.Meta / mihomo),吃 Clash 格式的订阅。\n- **v2rayNG** 的内核是 Xray / v2fly,不是 Clash 系。它能不能直接吃你的 Clash 订阅,**官方 README 没有说明**;本站在模拟器上实测 v2rayNG 2.2.6 导入 Clash 配置会失败,见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)。\n- **Karing** 自己写的是「Compatible with Clash, V2ray/V2fly, Sing-box…」,但同一行紧接着有一句要紧的限定:**`Full clash config supported, Partial clash.meta config supported`**。所以「支持 Clash」不等于「你的订阅一定能用」——如果你的订阅用到 clash.meta(mihomo)的扩展写法,要自己确认用到的那几项在不在支持范围内。\n- **sing-box 苹果端**官方写的是它「管理并运行**本地或远程的 sing-box 配置文件**」——输入类型是说清楚了的。那一页**没有提到 Clash 等第三方订阅格式**,所以能不能直接吃机场给的 Clash 订阅,本条目不替它断言。\n- **Shadowrocket** 的功能列表里写的是「Support kcptun, cloak, gost, **v2ray** plugins」,没有列 Clash;但同一页的**版本更新记录**里有「support Clash SSH/packetaddr subscription imports」,还有一整节 `Clash Protocol:` 的修复条目。也就是说**官方确实提到过 Clash 相关能力,但提到的是具体几项**(某些订阅导入、某些配置解析),**没有一处承诺「完整兼容 Clash 订阅」**。网上教程笼统写的「支持 Clash 订阅」,官方页面支撑不到那个程度——拿 Clash 订阅配它之前请自己确认你用到的功能。\n\n## 关于 Shadowrocket 的来源\n\n它是闭源应用,没有公开仓库;本条目关于它的每一条事实(价格、系统要求、功能列表、版本记录)都引用 App Store 商品页。那一页上还挂着开发者自己的网站链接,本条目没有引用它——上面的结论不需要它,也就没有去核它。\n\n## ⚠️ 表里「未验证」是什么意思\n\n**除 Clash Verge Rev / Windows 外,下面每一行都标着「未验证」。** 每一行的事实(平台、官方渠道、内核)来自该项目自己的仓库或官方文档,而**「装上去能不能用、界面长什么样、你的订阅吃不吃得下」这一整套没有走通过**——表里那个「未验证」判的就是这个更强的标准。\n\n**有几个组合已经在设备上装起来跑过一轮了,但那一轮很有限**,所以表里仍然是「未验证」:2026-09-22 在 Android 模拟器上装过 FlClash 与 Karing、在 macOS 上装过 Clash Verge Rev,各自导入了一份**本地假订阅**并记下了客户端拉订阅时报的 User-Agent。三次都**没有验证真实出网**——节点地址取的是不可路由段,延迟、分流、测速、真实机场的订阅能不能吃下,一概不在那一轮里。把「装得上、导得进」读成「能用」是两回事。\n\n2026-09-23 另在 Android 模拟器上用本机测试节点把 v2rayNG 与 FlClash 从导入到连接走了一遍,操作步骤见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)、`第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run);那一轮同样没有用真实机场的订阅,所以表里这两行仍标「未验证」。2026-09-30 又用同样的办法走了一遍 Clash Meta for Android,见 `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run),表里这一行同样仍标「未验证」。2026-10-01 用同样的办法走了一遍安卓版 Karing,见 `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run);表里 Karing 那一行登记的是 iOS,仍标「未验证」。桌面端 Clash Verge Rev 的完整流程见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup),v2rayN 见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)。\n\n\n| client | os | official_channel | core | 来源 |\n| --- | --- | --- | --- | --- |\n| Clash Verge Rev | Windows | GitHub Release | mihomo | cvr-repo(适用 clash-verge-rev · windows · any;已验证 clash-verge-rev >=2.4 <2.6@2026-09-02) |\n| Clash Verge Rev | macOS | GitHub Release | mihomo | cvr-repo(适用 clash-verge-rev · macos · any;未验证)(可能已过期) |\n| Clash Meta for Android | Android 5.0+(官方建议 7.0+) | F-Droid(com.github.metacubex.clash.meta)/ GitHub Release | Clash.Meta(即 mihomo) | cmfa-repo(适用 clash-meta-android · android · any;未验证)(可能已过期) |\n| FlClash | Android / Windows / macOS / Linux(官方未列 iOS) | 项目自建 F-Droid 源 / GitHub Release | ClashMeta | flclash-repo(适用 flclash · android · any;未验证)(可能已过期) |\n| v2rayNG | Android | GitHub Release | Xray / v2fly(不是 Clash 系内核) | v2rayng-repo(适用 v2rayng · android · any;未验证)(可能已过期) |\n| sing-box(苹果端) | iOS / macOS / tvOS | App Store:iOS 版叫 sing-box MT(1.14.0 起换开发者账号重新上架,旧的 sing-box VT 要另装;官方写明需要「非中国大陆的苹果账户」)/ TestFlight(名额仅限赞助者);越狱版与 macOS 独立版另见官方文档 | sing-box | singbox-apple-docs, singbox-changelog-v1-14-2(适用 sing-box · ios · any;未验证)(可能已过期) |\n| Shadowrocket | iOS 13.0+ / iPadOS 13.0+ / macOS 10.15+ / tvOS 17.0+ / visionOS 1.0+ | App Store——**付费 $2.99**,开发者 Shadow Launch Technology Limited | 闭源,官方未公布 | shadowrocket-appstore(适用 shadowrocket · ios · any;未验证)(可能已过期) |\n| Karing | iOS / tvOS / Android / Windows 等 | 官方按平台分渠道——iOS/tvOS:App Store / TestFlight;Android:官网 / GitHub Release / APKPure / Amazon AppStore;桌面:官网 / GitHub Release / Homebrew | 基于 sing-box 的改版内核 | karing-repo(适用 karing · ios · any;未验证)(可能已过期) |\n\n(table,共 8 行)\n\n## 相关条目\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- cvr-repo:https://github.com/clash-verge-rev/clash-verge-rev/tree/4e7cdbfcc0e2162ee5824684452ebd4651e7077d\n- cmfa-repo:https://github.com/MetaCubeX/ClashMetaForAndroid/tree/513b67fc35c68af1b0e7377681f95b33c074ecf7(README:Clash.Meta 的安卓图形界面、F-Droid 徽章与包名、Android 版本要求)\n- flclash-repo:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(README:Multi-platform: Android, Windows, macOS and Linux;Download 一节的 F-Droid 源与 GitHub Release)\n- v2rayng-repo:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README:support Xray core and v2fly core;Download 一节)\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(README:Compatible with Clash, V2ray/V2fly, Sing-box…;Full clash config supported, Partial clash.meta config supported;下载渠道一节)\n- shadowrocket-appstore:https://apps.apple.com/us/app/shadowrocket/id932747118(开发者 Shadow Launch Technology Limited;价格 $2.99;描述「Support kcptun, cloak, gost, v2ray plugins…」;系统要求;版本更新记录里的「support Clash SSH/packetaddr subscription imports」与 Clash Protocol 一节。页面含评分数与用户评论,哈希会随之漂移;2026-09-25 复核这几处仍在)\n- singbox-apple-docs:https://sing-box.sagernet.org/clients/apple/(首段「manage and run local or remote sing-box configuration files」;Requirements 的 An Apple account outside of mainland China。TestFlight quota is only available to sponsors。页上「App Store 暂时无法更新」的说明与划掉的旧商店链接仍在,与 1.14.0 更新日志不一致,本条以更新日志为准)\n- singbox-changelog-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/docs/changelog.md#L13-L77(1.14.0 一节第 17 行「iOS and tvOS clients are back on the App Store」(链到 sing-box-mt/id6785326793);第 67–72 行注 1:迁到新的 Apple 开发者账号、以 sing-box MT 重新上架、旧版 sing-box VT 的用户需要安装新应用)\n\n最后修订:0f1b35d 2026-10-02\n"},"connected-no-internet":{"id":"connected-no-internet","type":"troubleshoot","title":"Clash Verge Rev 开着但网页打不开","aliases":["连上了但上不了网","能连接打不开网站","已连接无法访问","显示已连接但打不开网页","开了代理还是上不了网","网页加载不出来","选了节点也打不开","首页显示内核未运行","无法开启系统代理:内核尚未运行","服务运行的内核意外停止","端口 7897 已被占用,本次运行改用","全局模式打不开网页","代理页尚未激活订阅"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","basics"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 开着但网页打不开\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n客户端开着、节点列表也有东西,网页却打不开——按下面六个问题逐个排除。**前四问在客户端界面里就能答**,不需要读日志或敲命令;后两问要离开客户端,看系统里还有没有别的代理程序、以及 hosts 文件的内容。\n\n顺序大体按\"最常见、最容易改\"排:前四问看**流量有没有交给客户端、客户端有没有把它送到节点**,最后两问看**系统里有没有别的东西挡在中间**。例外是第二问(内核有没有在跑):它不算最常见,但内核没在跑时后面几问都没有意义,所以作者把它提到了前面。\n\n- **traffic-not-intercepted**:两个开关都关着时,浏览器的流量根本没有交给客户端,节点选得再对也没用。「系统代理」与「虚拟网卡模式」的差别见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。\n- **core-not-running**:内核没在运行,流量交过去也没人处理。2.5.5 起,首页「系统信息」卡片的「运行模式」会显示「内核未运行」;内核没运行时打开系统代理,会弹出「无法开启系统代理:内核尚未运行……」。实测内核停掉后不会自己重新拉起,首页顶部的卡片看不出异常,「代理」页照常列着节点,从设置里重启内核后恢复。重启不成功的见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error),服务模式那一侧的问题见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **direct-mode-selected**:按官方术语页,「直连」的定义就是不走代理,这时打不开被墙的网页是正常结果,不是故障。\n- **outbound-is-direct**:模式对了,但当前出口仍是「直连」而不是某个节点。「全局」模式用的是内核里名为 `GLOBAL` 的组:订阅没有自带这个组时,内核自己建一个,`DIRECT` 排在第一位;实测(2.5.6)刚切到「全局」时选中的就是 `DIRECT`。订阅自带 `GLOBAL` 组,或者之前在「全局」里改选过的,默认值可能不是它。\n- **proxy-port-taken**:官方把「其它程序占用代理端口(默认 7897)」列为可能原因,2.5.2 上照旧是常见原因。但 2.5.5 起,启动时确认端口被占,会只在这次运行改用另一个端口,设置里的端口不变;自动换端口失败时会提示「混合代理端口自动切换失败:……」,内核也不会启动。2.5.6 在 Linux、Windows 上实测,系统代理跟着指向了新端口,经系统代理访问网站照常。**这对你意味着**:在新版本上,单是端口被占多半不会让网页打不开;另一个代理还在挡路的话,更可能是它也改了系统代理或开了虚拟网卡(作者推断,没有实测)。这一问只能缩小范围,不能定案。\n- **hosts-tampered**:官方把「用过不正经的加速器、篡改系统 `hosts`」列为可能原因,办法是检查并删掉不正常的条目。**哪些算「不正常」官方没给判据**,认不出一条不等于它被改过。\n\n六个都排除掉还是不行的话,原因就不在这条树覆盖的范围里了。**后两条是官方 FAQ 给出的可能原因,不是全集**。接着可以试的方向:订阅内容本身有问题(`Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))、虚拟网卡那一侧(`Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working))。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.2、2.5.6 的官方文档与 2.5.6 的源码逐条核对(写「2.5.5 起」的,另核对了 2.5.5 的语言包里已有对应提示),并在 Linux 虚拟机里按 2.5.6 的界面走了一遍前四问、端口被占和内核停止这几种情况;重启内核、找回内核文件后重新激活订阅、外部控制端口被占另见一次 Linux 2.5.6 的内核故障实验。Windows 11 实机上测了内核停止、端口被占与服务被停。\n\n- macOS 没有实际操作过;Linux、Windows 上都没有用浏览器,是按系统代理设置用命令行访问的。\n- 端口被占只试了「另一个程序只占着端口」,另一个代理同时改系统代理或开虚拟网卡的情况、hosts 那一问都没有实测。\n- 打开系统代理时的权限对话框、「已回退为直连」(只在 macOS 上出现)、「Windows 系统调用未成功」和「混合代理端口自动切换失败」,都只按源码核对。\n\n## 取证\n- **traffic-intercepted**:在「设置」页,「系统代理」和「虚拟网卡模式」这两个开关,至少有一个是打开的吗?(两个都关着时,流量根本没有交给 Clash Verge Rev。点开关后它又弹回、或者弹出「无法设置系统代理」「无法开启系统代理」「系统代理设置失败」这类提示的,也属于没开成,选「失败」)\n pass → core-running;fail → traffic-not-intercepted;unknown → escalate\n- **core-running**:Clash Verge Rev 首页最下面「系统信息」卡片里,「运行模式」这一行**不是**「内核未运行」吗?(内核就是 Clash Verge Rev 里真正负责连节点的那个程序。内核停了,首页顶部的卡片看不出异常,「代理」页也照常列着节点,要看的就是这一行。这时打开「系统代理」会弹出「无法开启系统代理:内核尚未运行……」(2.5.5 起有「内核未运行」这个状态和这条提示,2.5.6 在 Linux 上实测);2.5.6 在服务模式下内核意外停止时会提示「服务运行的内核意外停止」(按源码)。见过这两条提示之一,也选「失败」。**用服务模式的**:服务被停掉时,这一行仍显示「服务模式」,界面也没有提示,看不出来(Windows 上实测)。上不了网而界面一切照旧的,先完全退出再打开(「退出」关不掉的,到任务管理器结束「Clash Verge」):重开时弹出「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用(服务被停掉,或者服务目录的权限出了问题,Windows 上两种都实测过),点「修复服务」,详见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)「对话框『需要更新系统服务』」一节里「右边是『修复服务』」那一条;重开后没弹这个对话框的,再回来答这一问。2.5.2 这类旧版本没有「内核未运行」这个状态,内核停了也照样显示「用户模式」或「服务模式」,先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 确认内核在跑:确认在跑的选「通过」,确认不了的选「无法判断」)\n pass → route-mode-not-direct;fail → core-not-running;unknown → route-mode-not-direct\n- **route-mode-not-direct**:在「代理」页,选的是「规则」或「全局」吗?(选「直连」时流量不经过节点,这是「直连」的定义,不是故障)\n pass → outbound-is-a-node;fail → direct-mode-selected;unknown → escalate\n- **outbound-is-a-node**:在「代理」页,当前选中的出口是一个节点吗?(选中的是「直连」/`DIRECT` 的不算。「规则」模式下看组名下面显示的当前出口;「全局」模式下页面顶部没有组名;订阅没有自带名为 `GLOBAL` 的组、之前也没在「全局」里改选过时,**默认选中的是 `DIRECT`**,刚切到「全局」就打不开的,先看这里)\n pass → proxy-port-free;fail → outbound-is-direct;unknown → escalate\n- **proxy-port-free**:系统里只有 Clash Verge Rev 这一个代理程序在跑吗?(别的代理或加速器同时开着的选「失败」。2.5.5 起,启动时如果混合代理端口(默认 7897)已被别的程序占着,会自动在这次运行改用另一个端口,并短暂提示「端口 7897 已被占用,本次运行改用……设置未更改,下次启动会重新尝试 7897。」(数字按你的实际端口),首页「Clash 信息」卡片的「混合代理端口」显示这次实际用的端口,系统代理也跟着指向新端口(2.5.6 在 Linux、Windows 上实测,这时经系统代理访问网站照常)。**只见过这条改用新端口的提示、现在也确认没有别的代理程序在跑的,选「通过」**——除非你在浏览器扩展、命令行的代理环境变量这类地方手填过原来的端口,那样选「失败」,修复那一步讲怎么改。还有别的代理或加速器在跑的,或者见过「混合代理端口自动切换失败:……」的,选「失败」。改用新端口的提示如果是和红色「启动内核失败」一起弹出的,占着端口的也可能是 Clash Verge Rev 自己刚结束的那个内核(实测),先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查。拿不准有没有别的在跑就选「无法判断」)\n pass → hosts-clean;fail → proxy-port-taken;unknown → escalate\n- **hosts-clean**:系统 hosts 文件里,都是你认识或自己加的条目吗?(Windows 在 `C:\\Windows\\System32\\drivers\\etc\\hosts`,macOS 与 Linux 在 `/etc/hosts`。**这一问要离开客户端去看系统文件**;不认识某一条不等于它被改过,拿不准就选「无法判断」)\n pass → escalate;fail → hosts-tampered;unknown → escalate\n\n## 原因\n- **traffic-not-intercepted**(可能性 high)→ 修复 enable-one-intercept\n- **core-not-running**(可能性 medium)→ 修复 restart-core\n- **direct-mode-selected**(可能性 high)→ 修复 switch-to-rule-mode\n- **outbound-is-direct**(可能性 medium)→ 修复 pick-a-node\n- **proxy-port-taken**(可能性 medium)→ 修复 close-conflicting-proxy\n- **hosts-tampered**(可能性 low)→ 修复 clean-hosts\n\n## 修复\n### restart-core\n1. 在「设置」页「Clash 设置」卡片里找到「Clash 内核」这一行,点右边的齿轮,在弹出的「Clash 内核」窗口右上角点「重启内核」。右上角出现绿色的「已重启 Clash 内核」,说明重启这一下成功了,**但还不等于好了**:要首页「运行模式」不再是「内核未运行」,而且「代理」页列出你订阅里的节点,才算恢复(2.5.6 在 Linux 上实测,重启后「运行模式」回到「用户模式」)。「代理」页中间显示「内核暂不可用」时,也可以直接点页面里的「重启内核」:它成功时不弹提示,几秒后代理页列出节点就是成了(实测)。重启后「代理」页变成「未获取到代理信息」的(比如刚把内核程序文件找回来),到「订阅」页点火焰图标「重新激活订阅」(实测)。**提示和服务有关的**(比如「服务运行的内核意外停止」),按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 查服务模式;**重启不成功(弹出红色「重启内核失败」)、提示内核启动失败,或者「代理」页仍是「内核暂不可用」的**,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查。\n验证:the-page-opens\n\n### enable-one-intercept\n1. **先开「系统代理」**:在「设置」页打开它。浏览器这类遵守系统代理设置的程序就会经过客户端——先确认网页能打开,别的以后再说。游戏、命令行这些不遵守系统代理的程序也要接管时,再开「虚拟网卡模式」(它要额外的权限,有时还要给内核放行防火墙,两者的差别也见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy))。**这里先开系统代理是作者的排查建议——官方没有规定两者的开启顺序;「哪些程序不走系统代理」才是官方说的。**开了它之后还要不要留着系统代理,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。**打开「系统代理」时开关弹回、提示「无法开启系统代理:内核尚未运行……」的**(2.5.5 起;2.5.6 在 Linux 上实测),是内核没在运行:先在「设置」页「Clash 设置」卡片的「Clash 内核」一行点齿轮,在弹出的窗口里点「重启内核」,再打开系统代理;重启不成功的,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查。**打开「系统代理」时还可能出现下面几种提示**,都说明系统代理没开成(按 2.5.6 的源码,macOS 与 Windows 上没有实测):macOS 上弹出标题为「无法设置系统代理」、正文说「macOS 以权限不足为由拒绝了这次修改」的对话框,优先点对话框里的「安装服务」(服务是什么、装不上怎么办见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode));对话框提到的另一种办法(在系统设置 → 隐私与安全性 → 高级中,关闭「访问系统范围设置需要管理员密码」)关掉后修改系统范围设置不再要求管理员密码、削弱这项保护,本站不把它当作排障步骤(作者建议)。同一个标题、正文说服务已就绪但内核仍以 Sidecar 运行的(macOS),点「切换到服务模式」;服务模式下提示「系统代理设置失败,已回退为直连。」的(macOS),按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 查服务;Windows 上提示「系统代理写入失败:Windows 系统调用未成功……」的,提示里说通常是瞬时故障,稍后再开一次;提示「系统代理守卫连续多次失败后已停止……」的,系统代理不再被自动维持,先把系统代理关掉再打开一次(作者建议),反复出现的,看第五问——系统里是不是还有别的代理程序。\n验证:the-page-opens\n\n### switch-to-rule-mode\n1. 在「代理」页把模式切成「规则」。「规则」按配置里的规则决定每个连接走节点还是直连,是订阅配置预期的用法;「全局」让所有流量都从你手动选定的那个出口出去(可以是一个节点,**也可以是本地网络**——选了本地网络时同样不走代理)。「直连」是不走代理,选它时打不开被墙的网页属于正常,不是故障。\n验证:the-page-opens\n\n### pick-a-node\n1. 在「代理」页的节点组里点一个节点,让出口不再是「直连」。刚导入订阅时出口可能还停在默认值;「全局」模式下,订阅没有自带 `GLOBAL` 组、之前也没在「全局」里改选过时,默认选中的是 `DIRECT`,要在列表里另点一个节点。**节点组里一个节点都没有时**,2.5.5 起的「代理」页中间会显示下面四种提示之一(2.5.6 在 Linux 上实测),按提示走:「尚未导入订阅」,按 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup) 导入订阅;「尚未激活订阅」,到「订阅」页点一下要用的那张订阅卡片(标题变蓝、左边出现竖条就是在用);「内核暂不可用」,是内核没在运行,或者取不到内核的数据,点页面里的「重启内核」,几秒后还是这样的,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查;「未获取到代理信息」,说明当前这份配置里没有能显示的组或节点,按下面几种情况分:刚把内核程序文件找回来、只点了「重启内核」的,到「订阅」页点火焰图标「重新激活订阅」(实测,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error));启动、更新订阅或切换订阅时弹出过带 `proxy [名称] not found`、「配置校验失败」或「订阅已保存,但未能确认已应用到内核」的提示的,按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) 查,**不管你自己加没加过规则**——订阅自己引用了不存在的名字也会这样,那一条里有找服务商的一步;正在用的是自己用「新建」建的本地配置的,那份配置里本来就没有节点(实测),回「订阅」页点一下你导入的那张订阅卡片;导入或更新时弹过别的失败提示的,按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 看那条提示;都不是的,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查订阅内容。2.5.2 没有这四种提示,列表空着时同样按「未获取到代理信息」这几种情况查。官方 FAQ 另记了「代理界面异常,不显示任何内容」,原因写的是外部控制端口被占或外部控制访问密钥含中文;按 2.5.6 的源码,界面不经这个端口向内核取数,Linux 上实测 2.5.6 在这两种情况下代理页照常列出节点,所以在 2.5.6 上代理页空着,按页面中间的字排查(见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error))。\n验证:the-page-opens\n\n### close-conflicting-proxy\n1. 官方 FAQ 只说「可能是其它程序占用代理端口,默认代理端口是 7897」,没有给排查步骤。**2.5.5 起,端口被占本身多半不再挡路**:启动时确认端口被占会自动换端口,系统代理也跟着指向新端口(按源码;2.5.6 在 Linux、Windows 上实测,端口被占时经系统代理访问网站照常)。**见过「混合代理端口自动切换失败:……」的例外**:端口冲突仍在挡路,内核也不会启动,退出占着端口的程序后重启 Clash Verge Rev(按源码,没有实测)。2.5.2 没有自动换端口,官方 FAQ 说的端口被占照旧适用,退出占着端口的程序后重启 Clash Verge Rev。所以另一个代理还在挡路的话,更可能是它也改了系统代理或开了虚拟网卡,和 Clash Verge Rev 抢同一处设置(作者推断,没有实测)。试法:先把另一个代理或加速器完全退出,再在 Clash Verge Rev 的「设置」页把「系统代理」关掉再打开一次(作者建议)。**在别的程序里手填过本机 7897 端口的**(比如浏览器扩展、命令行的代理环境变量),换了端口的这次运行里要改填首页显示的新端口,或者退出占着端口的程序后重启 Clash Verge Rev(重启后回到原端口是 Windows 上实测,其余是推论)。仍然不行并不能说明冲突不曾存在——可能还有别的原因同时挡着。确认另一个代理确实退出了,就继续查下一条。\n验证:the-page-opens\n\n### clean-hosts\n1. 官方给的办法是「检查系统 hosts,删除不正常的条目」(Windows 在 `C:\\Windows\\System32\\drivers\\etc\\hosts`,macOS 与 Linux 在 `/etc/hosts`)。**哪些算「不正常」官方没有给判据**——装过来路不明的加速器是常见来源,但认不出一条不等于它有问题。**删之前先把原文件复制一份留底(这是作者的建议,不是官方原文)**,拿不准的行不要删。\n验证:the-page-opens\n\n## 验证\n- **the-page-opens**(人):保持刚才改过的设置,打开**你一开始打不开的那个网页**。\n 预期:网页正常显示。仍然打不开时,从第一问重走一遍——**已经改好的那一条这次会通过**,于是会落到下一个还没排除的原因上。**但如果某一步根本改不动**(比如开关点不了、退不掉另一个代理),那是另一类问题,不要在这棵树里绕:开关点不了、或点了弹出需要系统服务的对话框,按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 或 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes),其余情况就是这棵树覆盖不了的,需要另找人查。\n 通过 → resolved;失败 → traffic-intercepted;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(导入订阅、选择节点与模式、开启代理)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式、服务模式、规则/全局/直连模式)\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(代理后有部分网站无法访问(其它程序占用代理端口、默认 7897;加速器篡改 hosts,检查并删除不正常的条目);代理界面异常,不显示任何内容)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/constants.rs L11(默认混合端口 7897);src-tauri/src/config/config.rs L94(启动时先检查混合端口);src-tauri/src/config/port.rs L38-L91(只有探测到确实被占才换端口,只在启动时做)、L93-L125(只改给内核的运行配置,config.yaml 与 verge.yaml 仍是原端口);src-tauri/src/config/mixed_port.rs L33-L38(本次运行换过的端口优先)与 src-tauri/src/core/sysopt.rs L421(写系统代理时用这个端口);src/locales/zh/settings.json L295(端口已被占用,本次运行改用……)、L658(服务运行的内核意外停止)、L673(无法开启系统代理:内核尚未运行……)、L679(已重启 Clash 内核);src/components/shared/proxy-control-switches.tsx L152(内核没运行时开系统代理报 coreNotReady);src/locales/zh/home.json L58、L66(运行模式、内核未运行);src/locales/zh/proxies.json L45-L69(代理页四种空状态与按钮);src/components/proxy/proxy-empty-state-model.ts L33-L73(空状态的判断顺序);src/pages/_layout/utils/notification-handlers.ts L50-L80(内核启动失败与服务模式内核意外停止的提示,窗口恢复后补弹)、L247-L251(混合代理端口自动切换失败的提示);src/locales/zh/settings.json L296(混合代理端口自动切换失败);src-tauri/src/config/config.rs L94-L99(换端口失败时挡住内核启动);src-tauri/src/config/port.rs L62-L77(探测结果不确定时保留原端口);src/components/proxy/proxy-empty-state-model.ts L64-L73(内核没运行或取不到代理数据都显示内核暂不可用);src-tauri/src/core/proxy_control.rs L35-L60(开系统代理的六种失败)、L140-L163(系统调用失败只在 Windows、权限被拒只在 macOS)、L199-L203(服务已就绪时改报 Sidecar)、L365-L373 与 L476(回退为直连只出现在 macOS 服务模式);src/locales/zh/settings.json L669-L674(六种失败的提示原文);src/locales/zh/layout.json L41-L46(无法设置系统代理对话框的标题、正文与另一种办法);src/components/layout/sysproxy-privilege-dialog.tsx L162-L168(对话框按钮:安装服务 / 切换到服务模式);src/services/notice-service.ts L25-L28(权限被拒与服务已就绪两种失败用对话框提示)。「内核未运行」、端口避让与四种空状态在 v2.5.2(28f2efc)的语言包里没有,在 v2.5.5(22e3f1a)的语言包里已有(home.json L66、proxies.json L57、settings.json L295、L672);服务运行的内核意外停止与 permissionFallback 是 v2.5.6 新增;src-tauri/src/lib.rs L64-L68 与 src-tauri/src/config/clash.rs L84-L92(界面经本机的本地套接字或命名管道向内核取数,不经外部控制端口))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(config/config.go L891-L897(DIRECT 等内置出口最先加入列表)、L920-L921(订阅里有名为 GLOBAL 的组就用它)、L976-L988(没有时内核自建 GLOBAL 选择组,成员按上面的列表,DIRECT 在第一位)。Clash Verge Rev 2.5.6 的 Linux 包内置的内核就是 v1.19.31(见 exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27))\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n\n最后修订:f39a279 2026-10-02\n"},"connection-drops":{"id":"connection-drops","type":"troubleshoot","title":"用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点","aliases":["经常断流","用一段时间就断","连接不稳定 一直断","时断时续","断了又自己连上","下载到一半断了","视频通话 游戏 隔一阵就断","长连接频繁断开","websocket 总是断开","手机放后台就断","切回前台才有网","锁屏后代理断了","v2rayNG 放后台断网","推送收不到","谷歌推送 掉线","Telegram 消息延迟 重开才收到","换节点后下载断了"],"primary_topic":"troubleshooting","topics":["troubleshooting","android-issues","clash-verge-rev","clash-party","v2rayn","v2rayng","karing"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn","v2rayng","karing"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点\n\n主题:`排错`\n适用:clash-verge-rev/clash-party/v2rayn/v2rayng/karing / windows/macos/linux/android/ios / any\n最后验证:2026-10-01\n\n用着用着就断、时断时续:网页突然打不开、过一会儿又好,下载、视频通话、游戏隔一阵断开,Telegram 消息要重开才收到;手机放后台就断、切回前台才有网,推送收不到。**先查客户端这一侧:断的时候代理还在不在、是不是正好换了节点。**适用 Clash Verge Rev、Clash Party、v2rayN、v2rayNG、Karing:\n\n1. **代理还在不在**:手机看状态栏钥匙图标,图标在也要看是不是属于这个客户端(被别的 VPN 应用接管时图标还在);电脑看客户端和内核。实测原生安卓上 VPN 没了时流量直接走本地网络,所以多半是国内网站照常、要翻墙的打不开(作者推断)。\n2. **是不是正好换了节点或切了模式**:Clash Verge Rev、Clash Party 开着对应开关时(默认开),v2rayN、v2rayNG 换节点时,会主动断开正在进行的连接;Clash Verge Rev 只关经过被换掉那个节点的连接,从托盘换节点按源码不关。\n3. **内核有没有自己重启过**:Clash Party、v2rayN 能在日志里看出来。\n4. **v2rayNG 默认开着的 Hev TUN 会断开空闲约 5 分钟的 TCP 连接。**\n5. **换个节点、换个网络还断吗**:换节点就不断,在节点或线路一侧;换网络就不断,见 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)。\n6. 都查过了,带着断的时刻和日志去问服务方。\n\n本站只讲客户端这一侧,**不评价节点和线路的质量**。\n\n## 推送收不到、Telegram 要重开才收到消息\n\n推送和 Telegram 收消息靠一条一直挂着的连接(作者说明),按上面的顺序查,再按 `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working) 看那个应用走的是节点还是直连。各家推送服务的地址和规则本站没有实测。\n\n## 适用范围与验证方式\n\nClash Verge Rev 2.5.6、Clash Party 2.0.3、v2rayN 7.24.9、v2rayNG 2.2.6、Karing 1.2.25.2802。实测的 Clash Verge Rev、Clash Party 在 Linux 虚拟机上,v2rayNG、Karing 在原生 Android 16 模拟器上,用本机测试节点;其余按源码。\n\n- 长连接只用命令行造的连接测过,每组几分钟;真实应用、几小时待机、真实网络的丢包没测。\n- 厂商系统(小米、华为、OPPO 等)和真机没测,「放后台就断」在这些系统上为什么会这样,本站下不了结论;iPhone、v2rayN 没有实际运行。\n\n## 取证\n- **cd-client-running**:断的那会儿(先别重启、别重连),代理还在吗?手机看状态栏有没有钥匙(VPN)图标——**别看常驻通知和客户端里的「已连接」**,实测 VPN 进程被结束后通知又挂了约一分钟,v2rayNG 仍显示「已连接」。电脑看客户端没退出,Clash Verge Rev 首页「运行模式」不是「内核未运行」。图标还在、但这个客户端自己显示「未连接」的,是被别的 VPN 应用接管了(实测,图标那时属于别的应用),也选「失败」。(钥匙图标没了、「内核未运行」、客户端已退出的,选「失败」)\n pass → cd-not-switched;fail → cd-client-stopped;unknown → cd-not-switched\n- **cd-not-switched**:断的那一刻,没有发生下面这几种切换吧?Clash Verge Rev 开着「自动关闭连接」(默认开)时切代理模式,或在「代理」页、首页手动换节点、而断的那条连接走的正是被换掉的那个节点(它只关经过旧节点的连接,走别的节点的不算;拿不准选「无法判断」);Clash Party 开着「切换代理/模式时关闭连接」(默认开)时手动换节点、切模式;v2rayN、v2rayNG 运行中换节点。(符合的选「失败」,没有的选「通过」,记不清或开关状态不清楚选「无法判断」;Karing 运行中换过节点的也选「无法判断」,长连接断不断本站没测。「自动选择」组自己换节点不算:Clash Verge Rev 上实测,正在进行的连接不断;Clash Verge Rev 从托盘换节点按源码也不关连接)\n pass → cd-core-not-restarted;fail → cd-switch-closes;unknown → cd-core-not-restarted\n- **cd-core-not-restarted**:(用 Clash Party、v2rayN 的回答,别的选「无法判断」)断的时刻,客户端没有记下内核重新启动吧?Clash Party 看应用日志 `clash-party-日期.log` 有没有 `Try Restart Core after unexpected exit`;v2rayN 看信息栏那时有没有新出现「启动服务 (时间)...」——测速时也会打这一行(按源码),断之前做过测速的选「无法判断」。(有、又没在测速的选「失败」)\n pass → cd-not-idle-timeout;fail → cd-core-restarted;unknown → cd-not-idle-timeout\n- **cd-not-idle-timeout**:(只在 v2rayNG 开着「启用 Hev TUN 功能」(默认开)、断的是 TCP 连接时回答,别的或不清楚选「无法判断」)断的那条连接,断之前没有约 5 分钟一点数据都不收发吧?(比如 SSH 挂着不动后断开,是的选「失败」;改过「HevTun 读写超时」的按改后的第一个数算)\n pass → cd-other-node-holds;fail → cd-idle-timeout;unknown → cd-other-node-holds\n- **cd-other-node-holds**:换上另一个节点固定用着(不用「自动选择」类的组),同样的用法(同一个下载、通话、游戏或应用)用上一阵,还断吗?(不再断选「通过」,照样断选「失败」)\n pass → cd-node-side;fail → cd-other-network-holds;unknown → cd-other-network-holds\n- **cd-other-network-holds**:节点不变,换一个网络(比如手机热点)同样用上一阵,还断吗?(不再断选「通过」,照样断选「失败」)\n pass → cd-network-side;fail → cd-unexplained;unknown → cd-unexplained\n\n## 原因\n- **cd-client-stopped**(可能性 medium)→ 修复 cd-fix-keep-running\n- **cd-switch-closes**(可能性 high)→ 修复 cd-fix-switching\n- **cd-core-restarted**(可能性 low)→ 修复 cd-fix-core-restart\n- **cd-idle-timeout**(可能性 medium)→ 修复 cd-fix-idle-timeout\n- **cd-node-side**(可能性 medium)→ 修复 cd-fix-other-node\n- **cd-network-side**(可能性 medium)→ 修复 cd-fix-network\n- **cd-unexplained**(可能性 medium)→ 修复 cd-fix-logs\n\n## 修复\n### cd-fix-keep-running\n1. **手机上**:原生 Android 16 模拟器里,Doze、受限待机分组、关掉「允许后台使用」都没让已连着的 v2rayNG 断开(它的 VPN 是前台服务);被强行停止或 VPN 进程被结束时,VPN 立刻没了、流量直连出去、不提示,重新打开要手动点启动(实测)。厂商系统可能更积极地结束后台应用,作者建议在「应用信息 → 应用的电池使用情况 → 允许后台使用」里选「无限制」(原生系统上看不出差别,厂商系统没测)。v2rayNG 没有保活开关(实测、按源码);Karing 见 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)。\n2. **被另一个 VPN 应用顶掉**:安卓上后启动的 VPN 应用直接接管,原来的客户端自己停掉、不提示(实测)。加速器、广告拦截、别的代理软件都可能这样,关掉它再重连,见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)。\n3. **电脑上**:Clash Verge Rev 内核被结束后不会自己拉起,首页显示「内核未运行」、不弹提示,「设置」→「Clash 内核」点「重启内核」恢复,反复出现见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)。Clash Party 主进程退出时内核跟着结束,系统代理却还开着,重新打开恢复(都是 Linux 虚拟机实测)。\n验证:cd-verify-stays\n\n### cd-fix-switching\n1. **这是客户端在切换时主动关的。**Clash Verge Rev「设置 → Verge 基础设置 → 杂项设置」的「自动关闭连接」默认开:在「代理」页手动换节点,经过原来那个节点的连接都被关掉,不管属于哪个组;切代理模式时关掉全部(Linux 虚拟机实测)。Clash Party「应用设置」的「切换代理/模式时关闭连接」默认开,换节点时关掉全部(按源码,没实测)。v2rayN、v2rayNG 换节点都会停掉内核再启动(按源码);Karing 切换节点后运行时长从 0 重来(实测,长连接断不断没测)。\n2. 长连接进行中先别换节点、别切模式(作者建议)。Clash Verge Rev 关掉「自动关闭连接」、点「保存」后,换节点时正在进行的连接继续走原来的节点(实测),Clash Party 按源码也是这样;v2rayN、v2rayNG 没有这样的开关。这时 curl 报的错和节点断掉时一模一样(实测),只能看断的时刻有没有换节点。\n验证:cd-verify-stays\n\n### cd-fix-core-restart\n1. **内核重启过,经它的连接都会断**(作者推断)。v2rayN:当前节点所在的订阅更新成功后、保存参数 / 路由 / DNS 设置后,都可能重启内核(按源码);断得很有规律,先把订阅编辑窗口里的「自动更新间隔 (分钟)」改成 0 再观察。Clash Party:内核意外退出后马上自己重启、不提示(Linux 虚拟机实测);为什么退出看同一时刻的内核日志 `core-日期.log`,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 取出、遮好后带去求助(作者建议)。\n验证:cd-verify-stays\n\n### cd-fix-idle-timeout\n1. v2rayNG 2.2.6 默认开着「启用 Hev TUN 功能」,设置里「HevTun 读写超时(秒)」是 `300,60`:TCP 连接 300 秒没有任何数据就被断开,定期有数据的不受影响;改成 120 就在 120 秒断(安卓模拟器实测)。按源码第一个数就是 TCP 允许空闲的秒数,要撑久一点就改大,再停止、启动一次服务(作者建议)。只测了 TCP、开着 Hev TUN;Telegram、推送会不会空闲这么久没测。\n验证:cd-verify-stays\n\n### cd-fix-other-node\n1. 换个节点就不断,差别在原来那个节点或到它的线路(作者推断);节点进程停掉时经它的连接立刻断(实测)。本站不评价节点和线路。先用不断的那个,把哪个节点会断、多久断一次告诉服务方(作者建议),不要附上订阅链接、节点地址或口令。\n验证:cd-verify-other-node\n\n### cd-fix-network\n1. 换个网络就不断,差别在原来那个网络到节点的这一段(作者推断),按 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network) 接着查。\n验证:cd-verify-network\n\n### cd-fix-logs\n1. **断的那一刻日志里没有一行**:Clash Verge Rev 上实测,客户端关连接、节点停掉时,内核日志 Info、Debug 都没记。能看的是之后的新请求:节点连不上时记 `[TCP] dial 组名 … error: … connect error: …`(实测,带节点地址)。「日志」页的等级下拉只筛已收到的行,要看 Debug 先改「设置 → Clash 设置 → 日志等级」(实测)。其他客户端见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)。\n2. 带着这些去问服务方:客户端名称和版本、断的是什么连接、多久断一次、换过哪些节点和网络、那几行日志。贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和节点地址(作者建议)。\n验证:cd-verify-provider\n\n## 验证\n- **cd-verify-stays**(人):保持改过的设置,照原来的用法用一阵:手机放到后台或锁屏一会儿再回来,电脑上让下载、通话或游戏照常进行,这期间别换节点。改的是空闲超时的,让同一条连接照原来那样空着那么久,再收发一次。\n 预期:不再断了(手机回来时钥匙图标还在、这个客户端仍是已连接,下载、通话没有中断),就好了。仍然断,从第一问重走(作者建议)。\n 通过 → resolved;失败 → cd-client-running;无法判断 → escalate\n- **cd-verify-other-node**(人):换上那个不断的节点照常用一阵;或者按服务方的答复处理后,同样的用法再用一阵。\n 预期:换了节点不再断,就先用它;按服务方答复处理后不再断,也好了(作者建议)。换了几个都断,回最后一问换网络对照。\n 通过 → resolved;失败 → cd-other-network-holds;无法判断 → escalate\n- **cd-verify-network**(人):按 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network) 处理后,回到原来那个网络,同样的用法再用一阵。\n 预期:在原来那个网络上也不再断了,就好了。仍然断,按那一条的做法带着对照结果去找服务方。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **cd-verify-provider**(人):按服务方的答复处理后(例如换节点、更新订阅),同样的用法再用一阵。\n 预期:按答复处理后不再断,就好了。仍然断,把这次的结果和新的日志再告诉服务方(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/hooks/use-proxy-selection.ts L18-L32、L94-L96(换节点后关掉链路里有原来那一项的连接);src/components/proxy/proxy-groups.tsx L463-L471 与 use-proxy-selection.ts L160-L168(代理页把组当前选中的那一项作为原来那一项传入);src-tauri/src/config/verge.rs L374(auto_close_connection 默认 true);src/components/setting/mods/misc-viewer.tsx L45、L184-L195(杂项设置里的开关);src/components/setting/setting-verge-basic.tsx L265-L266(杂项设置入口在 Verge 基础设置);src-tauri/src/feat/clash.rs L68-L78、L102-L105(切代理模式后关掉全部连接);src/locales/zh/settings.json L160、L178、L410、L421(Verge 基础设置、杂项设置、自动关闭连接及其说明原文))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/renderer/src/pages/proxies.tsx L246-L254(代理页换节点后关掉全部连接);src/renderer/src/components/sider/outbound-mode-switcher.tsx L18-L27(切模式后同样);src/main/resolve/tray.ts L130-L133(托盘换节点后同样);src/main/utils/template.ts L51(autoCloseConnection 默认 true);src/renderer/src/components/settings/mihomo-config.tsx L41、L455-L462 与 src/renderer/src/pages/settings.tsx L67(开关在应用设置页);src/renderer/src/locales/zh-CN.json L143、L202(应用设置、切换代理/模式时关闭连接))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/ViewModels/ProfilesViewModel.cs L584-L606(换上另一个节点后 Reload);v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs L359-L380(订阅更新成功、当前节点在这份订阅里时 Reload)、L573-L611(保存参数设置、路由设置、DNS 设置后 Reload)、L654-L690(Reload 调 LoadCore);v2rayN/ServiceLib/Manager/CoreManager.cs L82-L94(信息栏打「启动服务」后先停内核再启动);v2rayN/ServiceLib/Manager/TaskManager.cs L89-L118(每分钟检查自动更新间隔大于 0 的订阅);v2rayN/ServiceLib/Models/Entities/SubItem.cs L23(AutoUpdateInterval,未设置为 0);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L279-L280、L990-L991(启动服务 ({0})...、自动更新间隔 (分钟));v2rayN/v2rayN/Views/SubEditWindow.xaml L162-L176(订阅编辑窗口里的这一项))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/ui/GroupServerFragment.kt L237-L249(运行中点选另一个节点就 restartV2Ray);ui/MainActivity.kt L205-L213(restartV2Ray:停止服务,500 毫秒后再启动);service/TProxyService.kt L85-L95(HevTun 读写超时写进 tcp-read-write-timeout,取不到数字时 TCP 用 300);AppConfig.kt L223-L224(默认 300,60);res/values-zh-rCN/strings.xml L283-L286(启用 Hev TUN 功能、HevTun 读写超时原文);res/xml/pref_settings.xml 与 AndroidManifest.xml L27-L42(设置里没有省电项,没有申请忽略电池优化))\n- exp-connection-drops-android-gui-2026-10-02:验证记录(内部存档,未公开)\n- exp-connection-drops-desktop-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-android-vpn-connected-no-internet-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-works-on-another-network-gui-linux-2026-09-29:验证记录(内部存档,未公开)\n- exp-where-are-logs-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:10cb9f6 2026-10-02\n"},"cvr-add-custom-rule":{"id":"cvr-add-custom-rule","type":"howto","title":"Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理","aliases":["Clash Verge 编辑规则","Clash Verge 添加自定义规则","Clash Verge 前置规则与后置规则","Clash Verge 让某个网站直连","Clash Verge 某个软件不走代理","Clash Verge 某个网站单独走代理","Clash Verge 自定义规则不生效","Clash Verge 自定义规则丢失","改了订阅自带的规则更新后被覆盖","Clash Verge 按进程分流 PROCESS-NAME","Clash Verge 进程列是空的","Windows 进程名带 .exe","Clash Verge 让 Steam 直连","Clash Verge 指定 IP 直连 IP-CIDR","Clash Verge DOMAIN-SUFFIX 直连规则","扩展覆写配置 prepend-rules 不生效","规则页只剩 MATCH DIRECT","Clash Verge 规则里的策略组不存在","Clash Verge 重启后节点全没了","启动订阅配置校验失败 已使用默认配置启动"],"primary_topic":"routing-rules","topics":["routing-rules","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理\n\n主题:`基础概念` › `分流规则与代理模式`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n在 Clash Verge Rev 里让某个网站或软件单独直连、或单独走代理,做法是加一条**前置规则**:「订阅」页右键正在用的订阅 →「编辑规则」→ 选规则类型、填内容 →「代理策略」选 `DIRECT`(直连)或某个策略组(「代理」页里的那些分组,比如「节点选择」)→ 点「添加前置规则」→ 保存。网站用域名后缀(DOMAIN-SUFFIX),只有 IP 的用 IP 段(IP-CIDR),某个软件(比如 Steam、公司内网工具)用进程名(PROCESS-NAME)。这里加的规则更新订阅后还在。\n\n加完到「连接」页看那条连接的「规则」列和「链路」列。规则加了不生效,按这几种情况查:\n\n- 当前不是「规则」模式:全局、直连模式根本不看规则。\n- 加成了**后置规则**:它排在订阅末尾的兜底 `MATCH` 后面,轮不到。2.5.5、2.5.6 不用删了重加:在「编辑规则」的列表里点这条规则右边向上的箭头(置顶图标),它就移到前置规则那边,排在前置规则的最后,所以前面别的前置规则仍会先匹配(按源码,没有在界面上点过)。2.5.2 没有这个按钮,要删掉它,再用「添加前置规则」重加。\n- 策略组名在订阅里不存在,或订阅改了组名:整份新配置被拒,报 `error: proxy [组名] not found`。\n- **重启后「代理」页一个节点都没有、全部直连**:多半也是上一条,见下文。\n- 被前面别的规则先接走,比如一条没开「跳过 DNS 解析」的 IP 段规则。\n- 扩展覆写配置里有顶层 rules,会把规则整个替换掉。\n- 连接页里根本找不到它(比如 Steam 在下载却没有它的连接):规则管不到,它的流量没交给 Clash Verge Rev,见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)。\n\n## 为什么一定要选「前置」\n\n规则从上往下匹配,命中第一条就停。Clash Verge Rev 生成最终配置时,按「前置规则 → 订阅原有的规则 → 后置规则」的顺序拼起来;订阅的规则一般以兜底的 `MATCH` 结尾,前面没接住的连接全被它接走,所以这时后置规则对这些连接不生效。官方也推荐把自定义规则放在前置。\n\n本机实测(Clash Verge Rev 2.5.2,直接改规则文件代替了界面操作):前置的「域名 localhost → DIRECT」命中、走了直连;后置的「本机回环地址 IP 段 → DIRECT」没有命中,连接落到 `Match`、走了节点。Clash Verge Rev 里负责转发的内核(mihomo)**校验时不会提醒你放错了位置**:排在 `MATCH` 后面的规则照样通过校验、没有任何警告。\n\n## 规则内容怎么填\n\n- **网站:域名后缀(DOMAIN-SUFFIX)。**填 `example.com`,`example.com` 本身和 `www.example.com`、`a.b.example.com` 都命中,但字面上以它结尾的 `myexample.com` 不命中。不要只填 `com` 这类顶级后缀,那会把所有 `.com` 网站都接走。连接里只有 IP、没有域名时,域名类规则一般对不上;订阅开了域名嗅探(sniffer)时,内核可能从连接内容里认出域名,情况不同。\n- **只有 IP:IP 段(IP-CIDR)。**只针对一个地址就在后面加 `/32`(IPv6 用 IP-CIDR6、加 `/128`)。**记得打开「跳过 DNS 解析」开关。**没开时,排在前面的 IP 段规则会让按域名访问的网站先在本地解析成 IP;解析出的 IP 正好落在这个地址段里,这个网站就会被这条规则接走。本机实测,没开开关时,按域名 `localhost` 访问的请求被排在前面的一条本机回环地址 IP 段规则接走了(`localhost` 对应的正是本机回环地址);开了开关的对照没有实测。\n- **某个软件:进程名(PROCESS-NAME)。**见下一节。\n\n## 按软件加规则(PROCESS-NAME)\n\n内核拿发起连接的**可执行文件名**(去掉路径)和你填的内容比,不分大小写,必须完全相同。所以:\n\n- **Windows 上要带 `.exe`**,官方示例写的就是 `Telegram.exe`、`steam.exe`(本条没有在 Windows 上实测)。\n- **别写软件的显示名,照「连接」页「进程」列写。**本机实测(macOS):`curl` 发的请求进程名是 `curl`,进程名规则 `curl` 命中、走了直连;用 `python3` 命令启动的程序,进程名是 `python3.12`。内核按完整名字比较,所以按源码推断,写 `python3` 对不上(本条没有实测写成 `python3` 的规则)。\n- **「进程」列多半是空的,这不是出错。**Clash Verge Rev 不改进程匹配模式,本机运行时是内核默认的 strict;这个模式下,内核只在匹配走到进程类规则时才去查这条连接是哪个程序发的。本机实测,配置里没有进程名规则时,内核控制接口里连接的进程字段是空的;按源码,「进程」列显示的就是这个字段。\n- **想看清进程名,先加一条再说。**照你猜的名字加一条进程名前置规则并保存。按源码,新加的前置规则插在列表最前面,之后每条新连接都会先经过它,内核就会去查进程。本机实测:只加了 `curl` 这一条进程名规则时,python 发出的连接也带上了进程名 `python3.12`。看清名字后,删掉猜错的那条,照显示的名字重加。备选办法:在这个订阅右键的「扩展覆写配置」里把进程匹配模式(find-process-mode)设为 always,官方文档有同样的示例;按源码,这样每条连接都会查进程,但这一步本条没有实测。反过来,这一项设为 off 时进程名规则一律不命中,本机实测过。\n- **Steam 这类软件**:官方文档只给了 `steam.exe` 一个示例,而且是走代理组的例子。本条没有核实 Steam 下载实际由哪些进程发出,所以不给现成的进程名清单——在它下载时打开「连接」页,照「进程」列逐个加。\n- **规则管不到没交给 Clash Verge Rev 的流量。**软件不遵守系统代理时,「连接」页里根本没有它的连接,要用虚拟网卡模式(TUN)接管,区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。本条只实测了经代理端口进来的连接,**TUN 模式下能不能认出进程没有验证**。\n\n## 「代理策略」选什么\n\n`DIRECT` 是直连,`REJECT` 是阻断,其余填订阅里的策略组名。按源码,可视化编辑器的「代理策略」下拉只列 `DIRECT`、`REJECT`、`REJECT-DROP`、`PASS` 和策略组,不列单个节点(本条没有在界面上看到这个下拉)。想固定走某一个节点,切到「高级」直接写节点名:内核接受节点名,本机实测这样写的规则走了指定节点(直接改规则文件,没有在「高级」里操作)。\n\n## 更新订阅后,规则还在吗\n\n在。「编辑规则」保存在这个订阅专属的规则文件里;更新订阅时,Clash Verge Rev 沿用这个文件,只把新下载的内容写进订阅本身那个文件。本机实测:订阅更新后,规则文件一个字节都没变,前置规则仍排在运行配置的最前面;而直接改订阅文件(也就是「编辑文件」保存的那个文件)插进去的规则,更新后就没了(用直接改文件代替了界面上的「编辑文件」)。所以**别用「编辑文件」加规则**。\n\n另外两点:规则是**按订阅分开存**的,换到另一个订阅,这份规则就不在当前配置里;删除订阅会连同它的规则一起删掉。\n\n## 策略名写错,或订阅改了组名\n\n内核要求规则里的策略名必须是已有的节点、策略组或内置策略,否则报 `rules[序号] [整条规则] error: proxy [名称] not found`,`rules[0]` 指第一条(从 0 数)。这对你意味着:\n\n- **在编辑器里保存时被拒**:按源码,会弹出「订阅配置校验失败,请检查订阅配置文件,变更已撤销,错误详情:」加上这段报错,编辑器随即关闭,刚加的规则不会留下,内核继续用原来的配置(本条没有在界面上看到这条提示)。重新打开「编辑规则」再加一次:组名从下拉里选(下拉里的名字本来就存在);在「高级」里手写的组名或节点名,到「代理」页逐字核对。\n- **规则早就加好了,某天订阅改了组名**:更新订阅时新配置被拒,内核继续跑旧的那份,看起来像是「更新了没变化」。本机用一个不存在的组名模拟过:Clash Verge Rev 自己的应用日志里记了一条「[订阅更新] 更新失败」,后面附着上面那段报错;按源码,同时会弹出带报错原文的错误提示(界面上没有看到)。\n- **最容易误会的一种:重启后节点全没了。**带着这样的坏规则重启 Clash Verge Rev,它会退回一份没有任何节点的默认配置。本机实测(2.5.2,两轮相同):内核控制接口里订阅的节点和组全都不见了、只剩内置策略,所有连接都直连,但代理端口照常工作,看上去还连着。按源码(2.5.2、2.5.5、2.5.6 相同),启动时会弹出「启动订阅配置校验失败,已使用默认配置启动;请检查订阅配置文件,错误详情:」,后面跟着 `proxy [...] not found` 那段原文;界面上应当是「代理」页看不到订阅里的节点。这两样本条都没有在界面上看到。遇到这条提示,到「编辑规则」里把引用了不存在组名的那条改掉再保存。名字写在扩展、「编辑代理组」「编辑节点」里的情况,以及完整的排查顺序,见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)。\n\n## 几条流传的说法\n\n- **「更新订阅,自己加的规则就没了」**:只有直接改订阅文件(比如用「编辑文件」)才会这样。用「编辑规则」加的不会,见上文。\n- **「在扩展覆写配置里写 prepend-rules 加前置规则」**:这是旧版的做法。官方文档写明从 v1.7.x 起,前置 / 后置规则移到了订阅右键的「编辑规则」,扩展配置只用来覆写或合并配置项;当前源码里没有任何地方处理 `prepend-rules` 这个键。扩展配置和扩展脚本怎么用,见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)。\n- **「在扩展覆写配置里写 rules 列表也能加规则」**:官方文档只说扩展配置用来覆写或合并配置项;按源码,它对列表是整体替换,而且在「编辑规则」之后才执行,所以顶层的 rules 列表会把订阅规则和「编辑规则」加的全部盖掉。本机实测:在全局扩展覆写配置里写一条只有兜底直连的 rules 列表后,运行中的规则只剩这一条。「编辑规则」怎么改都不生效、「规则」页只剩一条 `MATCH` 时,先打开「订阅」页的「全局扩展覆写配置」卡片和这个订阅的「扩展覆写配置」,看有没有顶层的 rules 列表。\n- **「全局模式也会按我加的规则分流」**:不会。全局模式下所有连接都走 `GLOBAL` 组选中的那一项。分流走错的其它情况见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)。\n\n## 这些结论是怎么核对的\n\n在 macOS 上的 Clash Verge Rev 2.5.2 实机跑过,但用直接改写界面保存的文件代替点界面,结果从内核控制接口读;报错原文与规则顺序另用命令行 mihomo v1.19.31 复核。2.5.6 与 2.5.5 逐文件对比过,本条引用的文件里有三处改动,影响本条步骤的只有「规则内容」输入框不再自动把首字母转成大写(更新日志列在 macOS 下);另两处(提示处理与前端命令文件)改的不是本条引用的那几行。按内核源码,域名后缀规则里的字母会被转成小写,进程名规则比较时不分大小写,所以旧版的这个问题不影响这两类规则。\n\n- 界面步骤(右键菜单、编辑器的下拉和按钮、各种提示、「连接」页各列)按 2.5.2、2.5.5、2.5.6 的源码和官方文档写,没有实际点过。\n- Windows、Linux 和 TUN 模式都没有实测。\n\n## 步骤\n1. 先在「代理」页顶部确认模式是**「规则」**;不是「规则」的,点顶部的「规则」切过去,再往下做。自定义规则只在「规则」模式下起作用:「全局」模式下所有连接都走 `GLOBAL` 组选中的那一项,「直连」模式下全部直连,内核根本不看规则。这一点本机在内核层实测过(模式是经内核控制接口切到全局的,没有在界面上点):切到全局后,前置的「localhost → DIRECT」不再起作用,连接走了 `GLOBAL` 里选的节点。你本来就想全部走代理或全部直连,就不需要加规则。\n 失败时 → 取证 misroute-mode-is-rule(见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute))\n2. 趁那个网站或软件正在连的时候打开「连接」页,找到它的连接,记下两列:**「主机」**(是域名还是只有 IP)和**「进程」**(发起连接的程序名)。「主机」是域名,下面就按域名加规则;只有 IP 加端口,就按 IP 加;想让整个软件走同一个出口,就按进程名加。**「进程」一栏多半是空的**(配置里没有按进程名的规则时,内核不去查进程):这时先照你猜的名字加一条进程名前置规则并保存,之后新建的连接「进程」列就会显示名字,再照着改正,见正文「按软件加规则」。**连接页里怎么都找不到它**,说明它的流量没交给 Clash Verge Rev,加规则管不到它,转到 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute):第一问(是不是规则模式)你已经答过,直接往下看「连接页里能不能找到它」。\n 失败时 → 取证 misroute-mode-is-rule(见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute))\n3. 到「订阅」页,**右键正在使用的那个订阅**,选「编辑规则」。官方文档写明,这里编辑的规则不会随订阅更新而失效。菜单里「编辑规则」是灰的,说明这个订阅还没有配套的规则文件(新导入的远程和本地订阅都会自动建一份)。按源码,远程订阅**更新一次**时会补建这份文件,本地订阅要重新导入;这一点本条没有实测。更新前注意:更新会用新下载的内容重写订阅文件,你用「编辑文件」直接改过的内容会没了(实测,见正文「更新订阅后,规则还在吗」),先把改过的规则抄下来,等「编辑规则」能点了,再在那里重新加。更新或重新导入后还是灰的,到官方仓库反馈。\n 失败时 → escalate\n4. 选「规则类型」、填「规则内容」:**网站**选「匹配域名后缀 (DOMAIN-SUFFIX)」,网址是 `www.example.com` 就填 `example.com`,它本身和所有子域名都会命中;**只有 IP** 选「匹配 IP 地址范围 (IP-CIDR)」,填 `IP/32`(要带斜杠和前缀长度,否则提示「无效规则」),并打开「跳过 DNS 解析」开关;**某个软件**选「匹配进程名称 (PROCESS-NAME)」,填「连接」页「进程」列显示的名字,Windows 上带 `.exe`。编辑器提示「无效规则」多半是格式不对,照上面改。\n 失败时 → escalate\n5. 选「代理策略」:要直连选 `DIRECT`,要走代理选订阅里的某个策略组,要屏蔽选 `REJECT`。按源码,下拉里只有内置策略和策略组,**没有单个节点**;想让这条规则固定走某一个节点,点编辑器右上角切到「高级」,在前置规则(prepend)列表里直接写「类型,内容,节点名」。内核接受节点名,本机实测过(直接改规则文件代替了界面操作,没有在「高级」里点过)。无论写组名还是节点名,都要和订阅里的**逐字一致**,差一个字符整份配置都会被拒。\n 失败时 → escalate\n6. 点**「添加前置规则」**(不是「添加后置规则」),再点保存。后置规则排在订阅末尾的兜底 `MATCH` 后面;订阅以 `MATCH` 结尾时(绝大多数如此),前面没接住的连接全被它接走,后置规则轮不到。这一点本机实测过(直接改规则文件代替了界面操作)。保存后,正在使用的订阅会立即重新生成配置;给没在使用的订阅加的规则,要等切换到那个订阅时才生效。按源码,保存时新配置被内核拒绝(报 `proxy [名称] not found`),会弹出「订阅配置校验失败,请检查订阅配置文件,变更已撤销,错误详情:」加报错原文,**编辑器随即关闭,刚加的规则不会留下**(本条没有在界面上看到)。重新打开「编辑规则」再加一次:组名从下拉里选;在「高级」里手写的组名或节点名,到「代理」页逐字核对。\n 失败时 → escalate\n\n## 验证\n- **custom-rule-hit-in-connections**(人):让那个网站或软件重新连一次:网页关掉重开,软件退出再打开(作者建议:本条没有核实保存规则后已经建立的连接会不会被关掉,重开一次最稳)。然后在「连接」页找到它的新连接。看不到「规则」「链路」两列时,点页面上方的视图切换按钮切回表格视图(按源码,默认就是表格视图)。\n 预期:「规则」列是你刚加的那条,例如 `DomainSuffix(example.com)`、`IPCIDR(…/32)`、`ProcessName(…)`;「链路」列是你要的出口:直连是 `DIRECT`,走策略组是「组名 / 节点名」,规则里直接写了节点名时只显示那个节点名。「规则」列显示 `Match` 或别的规则,说明你的规则没接住它,到 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute) 接着查。\n 通过 → resolved;失败 → misroute-mode-is-rule(见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute));无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n\n## 来源\n- cvr-guide-rules:https://www.clashverge.dev/guide/rules.html(1. 编辑订阅规则(此处编辑的规则不会随着订阅更新而失效);3. 规则类型说明(从上到下匹配、DOMAIN-SUFFIX、IP-CIDR、PROCESS-NAME 示例 Telegram.exe、MATCH 必须放在最后);4. 代理策略选择;5. 规则插入位置(推荐前置规则);常用配置示例:应用分流(steam.exe))\n- cvr-guide-extend:https://www.clashverge.dev/guide/extend.html(Changelog(v1.7.x 起 prepend/append 移到订阅右键的编辑规则,扩展配置仅用于覆写/合并);扩展分类(执行链路);扩展配置示例(订阅 A 的扩展配置把进程匹配模式改为 always))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(规则 / 全局 / 直连模式;系统代理 / Tun 模式)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(优先级(从上到下匹配);DOMAIN-SUFFIX(google.com 匹配子域、不匹配 content-google.com);PROCESS-NAME;no-resolve)\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(rule / global / direct);进程匹配模式(always / strict 默认 / off))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go(L351-L377 查进程只在被调用时做一次,进程名取可执行文件路径的 basename;L393-L399 always 先查、off 不查、strict 交给规则;L400-L407 direct 与 global 模式不走规则;L654-L690 match 命中第一条即返回);rules/common/process.go L32-L53(匹配走到进程类规则时才查进程;PROCESS-NAME 不区分大小写完全比较);rules/common/domain_suffix.go L35(规则里的后缀转成小写)、L19-L22 与 constant/metadata.go L270-L276(域名类规则比对的是 RuleHost,开了嗅探时取嗅探到的域名);config/config.go L1096-L1112(策略名不存在报 proxy not found)与 L501(默认 strict))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/enhance/seq.rs L33-L77(前置 + 订阅规则 + 后置);src-tauri/src/enhance/mod.rs L918-L959(先并入编辑规则,再执行全局与订阅扩展)与 merge.rs L4-L32(列表整体替换);src-tauri/src/config/prfitem.rs L452-L464、L376-L380、L131(规则文件 r*.yaml,远程订阅缺规则文件时从链接生成就补建,更新时沿用或补上);src-tauri/src/feat/profile.rs L104-L124(更新订阅)与 L199-L222(更新后应用失败记「[订阅更新] 更新失败」并弹提示);src-tauri/src/config/profiles.rs L278-L310(更新只重写订阅文件、沿用规则文件)与 L335-L347(删除订阅连带删规则文件);src-tauri/src/config/config.rs L140-L177(启动时校验失败退回默认配置,并发出启动校验失败的提示);src/pages/_layout/utils/notification-handlers.ts L121-L122;src-tauri/src/cmd/save_profile.rs(保存后应用失败则撤回并提示);src-tauri/src/cmd/validate.rs L38-L52;src/services/cmds.ts L42-L51;src/pages/profiles.tsx L934-L937(只有当前订阅保存后重新生成);src/components/profile/profile-item.tsx L468-L472(编辑规则灰显条件:订阅没有规则文件);src/components/profile/rules-editor-viewer.tsx(L113-L124 IP-CIDR 与 IP-CIDR6 的校验、L236 内置策略、L533-L570 策略下拉与规则拼接、L571-L585 保存被拒时重新读取文件并关闭编辑器、L736-L737 新加的前置规则插在列表最前、L329-L360 前置 / 后置规则互相移动,移过去的排在另一边列表的最后);src/components/profile/rule-item.tsx L89-L98(前置规则右边是置底图标,后置规则右边是置顶图标);src/utils/network.ts L74-L86(IP 段必须带斜杠);src/components/profile/profile-more.tsx(全局扩展覆写配置卡片);src/components/connection/connection-row-view.ts L42-L48(链路倒序以「 / 」连接)与 L65-L73(规则、进程列);src/hooks/use-connection-setting.ts L3(默认表格视图);src/pages/connections.tsx L191-L207(表格 / 列表视图切换);全仓没有设置 find-process-mode 的代码;src/locales/zh/rules.json、profiles.json、connections.json、shared.json L109-L110(界面文案))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)逐文件对比:本条引用的 src-tauri/src/enhance/(seq.rs、mod.rs、merge.rs)、config/prfitem.rs、config/profiles.rs、config/config.rs、feat/profile.rs、cmd/save_profile.rs、cmd/validate.rs,以及 src/pages/profiles.tsx、profile-item.tsx、profile-more.tsx、connection-row-view.ts、use-connection-setting.ts、connections.tsx、utils/network.ts 都没改;src/components/profile/rules-editor-viewer.tsx 只在 L684-L690 给「规则内容」输入框关掉了自动大写、自动更正与拼写检查(其后行号顺延 7 行,新加的前置规则插在最前是 L743-L744),L329-L360 是前置 / 后置规则互相移动(移过去的排在另一边列表的最后);src/components/profile/rule-item.tsx L89-L98(前置规则右边是向下的置底图标,后置规则右边是向上的置顶图标);src/pages/_layout/utils/notification-handlers.ts 有改动(新增内核启动失败与服务相关的提示),本条引用的启动校验失败提示移到 L191-L192、内容与 v2.5.5 的 L121-L122 相同;src/services/cmds.ts 有改动(都在 L193 及以后),本条引用的 L42-L51 未变;Changelog.md L18(macOS 修复「规则内容」首字母被自动转为大写))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/enhance/seq.rs(与 v2.5.5 逐字相同);src-tauri/src/enhance/mod.rs L717 与 L748;src-tauri/src/config/prfitem.rs L141、L405-L407;src-tauri/src/config/profiles.rs update_item;src-tauri/src/feat/profile.rs L218-L223;src-tauri/src/config/config.rs L133 与 L162(启动校验失败退回默认配置);src/pages/_layout/utils/notification-handlers.ts L39-L40;src-tauri/src/cmd/save_profile.rs L155-L195(保存后应用失败则撤回);src/pages/profiles.tsx L1012;src/components/profile/rule-item.tsx L3(只引入删除与撤销两个图标,列表项没有前置 / 后置互相移动的按钮);src/components/profile/rules-editor-viewer.tsx L242、L545(策略下拉)、L581-L590(保存被拒时关闭编辑器)、L749(前置规则插在最前);src/locales/zh/shared.json L99-L100)\n- exp-cvr-add-custom-rule-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-add-custom-rule-cli-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:67a0422 2026-09-28\n"},"cvr-core-communication-error":{"id":"cvr-core-communication-error","type":"troubleshoot","title":"Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败","aliases":["Clash Verge 内核通信错误","内核通信错误,请重启电脑再试","Clash Verge 代理页空白 不显示节点","Clash Verge 代理界面不显示任何内容","Clash Verge 代理菜单空白","Clash Verge 内核暂不可用","无法从内核获取代理信息","Clash Verge 首页 内核未运行","Clash Verge 启动内核失败","Clash Verge 重启内核失败","Mihomo API did not become ready","Mihomo API did not become ready: error sending request for url client error (Connect) Connection refused","Clash Verge 升级后 内核未运行","Clash Verge 升级后 代理页面空白","Clash Verge 开机后节点为空 重开就好","Clash Verge 内核挂了 不会自动重启","Clash Verge 延迟全部 Error 重启内核","External controller listen error","Clash Verge 外部控制端口 9097 被占用","Clash Verge 外部控制 API 访问密钥 中文","验证进程被终止","failed to start sidecar core \"verge-mihomo\"","Clash Verge 内核文件被杀毒软件删除","Clash Verge 重启内核后 未获取到代理信息","启动内核失败 端口已被占用 本次运行改用","不是有效的 Win32 应用程序。 (os error 193)"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n**先看首页最下面「系统信息」卡片的「运行模式」(2.5.5 起才有这个状态)。显示「内核未运行」,就是内核(真正连节点的那个程序)停了,不会自己起来:到「设置」→「Clash 内核」右边的齿轮 →「重启内核」,弹出「已重启 Clash 内核」、「代理」页重新列出节点才算好。** 「代理」页写着「内核暂不可用」的,点页面里的「重启内核」也行。2.5.4 及更早(含 2.5.2)看不出内核停没停:直接重启内核,再升级到 2.5.6(版本号在「设置」→「Verge 高级设置」)。\n\n按你看到的提示对照(Clash Verge Rev 2.5.6 的原文):\n\n- **启动时弹红色「启动内核失败 Mihomo API did not become ready …」**:界面连不上内核,先点「重启内核」。一起弹的蓝色「端口 7897 已被占用,本次运行改用 …」,实测里是它自己刚结束的内核占着端口。\n- **「验证进程被终止,请检查是否有安全软件阻止了内核运行…」加「启动内核失败 failed to start sidecar core … (os error 2)」**:内核程序文件没了或坏了(坏了时结尾是 Windows 上的 `(os error 193)` 或 macOS、Linux 上的 `(os error 8)`),放回后要「重新激活订阅」或退出重开。\n- **「服务运行的内核意外停止」**:服务模式的问题,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **「代理」页节点还在,延迟全是 Error、网页打不开**:先看「运行模式」,内核停了界面也会一直留着旧列表;用服务模式的,服务被停掉时这一行仍显示「服务模式」,先完全退出再打开,重开时弹「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 处理(Windows 上实测);没弹这个对话框、2.5.5 起的版本、运行模式正常的,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n- **首页写「内核通信错误,请重启电脑再试」**:2.5.6 上很少出现,先重启内核;2.5.1 及更早的版本先升级。\n- **「尚未导入订阅」「尚未激活订阅」「直连模式」**:不是内核故障。没导入的按 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup) 导入;没激活的到「订阅」页点一下要用的那张卡片;直连模式的在首页「代理模式」卡片点「规则」。\n- **「未获取到代理信息」**:刚找回内核文件的,到「订阅」页点右上角火焰图标「重新激活订阅」;其他情况是正在用的配置里没有能显示的节点,见下面「本来就没东西可显示」一条。\n\n官方 FAQ 里有两条相关的办法。「外部控制端口 9097 被占用、密钥含中文导致代理页空白」:2.5.6 的界面不经这个端口连内核(按源码;Linux、Windows 上实测,打开外部控制也一样)。「关掉再开 Windows 防火墙」:界面走的是本机命名管道、不是网络端口,Windows 上实测用防火墙拦住内核时代理页照样列出节点;「关掉再开」这个动作本身没有试。下面有说明。\n\n## 界面是怎么连内核的:为什么和 9097 端口无关\n\nClash Verge Rev 的窗口(界面)自己不连节点,它要向内核取节点列表、延迟、模式。2.5.6 里这条路是本机的一个连接点,不是网络端口。用户模式下,Linux、Mac 上是一个本地套接字文件(Linux 在数据目录下的 `verge-mihomo.sock`,Mac 在每个用户自己的临时目录下),Windows 上是一个名字以 `verge-mihomo-sidecar-` 开头的命名管道(Windows 上实测);服务模式下换成服务提供的另一个本机连接点,同样不经 9097。界面走这条路时不带「API 访问密钥」。\n\n「设置」→「Clash 设置」→「外部控制」里的 9097 端口(外部控制器)是给网页面板这类别的程序用的,2.5.6 默认关着,关着时根本不监听。打开了、端口又被别的程序占着时,内核只在日志里记一行 `External controller listen error`,照常运行。实测(Linux;Windows 上测了打开外部控制、端口被占这一种,结果相同):打开外部控制、端口被占、密钥里有中文,界面的代理页、首页、延迟测试都照常,保存中文密钥也没有报错;只启动内核的命令行实验结果相同。\n\n- **官方 FAQ「代理界面异常,不显示任何内容」**:它把原因写成外部控制端口被占或密钥含中文,办法是改端口后重启。**这对你意味着**:在 2.5.6 上,这不是代理页空白的原因,改 9097 不会让节点回来;代理页空着时中间会写明原因,按页首的列表对照。用网页面板经这个端口连内核、面板连不上的,才需要按官方 FAQ 换一个没被占的端口:按源码,端口被占时内核就不在这个端口上监听(网页面板本条没有实测)。2.5.2 的默认配置同样不开 TCP 控制口,控制走本地套接字(macOS 实测,那一版的界面是不是也走它没有核对)。从哪个版本起界面改走本机连接点,只知道 2.4.0 的更新说明写了「统一使用新的内核通信方式」,没有逐版核对。\n- **官方 FAQ(Windows)「代理菜单空白」**:原因写「内核通信失败」,办法是把 Windows 防火墙全部关闭再开启,没写版本和原理。2.5.6 在 Windows 上走的是本机命名管道、不是网络端口;Windows 上实测用防火墙规则把内核的入站、出站都拦住再重启内核,代理页照常列出节点,只是延迟全是 Error,所以防火墙管不到界面和内核之间这条路;「全部关闭再开启」这个动作本身没有试。**作者建议**:不要为此关防火墙,先按上面的步骤重启内核。\n\n## 各种情况是怎么回事\n\n- **内核退出了**(ccerr-core-exited):用户模式下内核进程退出后,Clash Verge Rev 只在日志里记下、把状态标成未运行,不重新拉起,也不弹提示。实测强杀内核后等了 10 分钟也没有新的内核进程,混合端口没人监听,网页打不开;首页「运行模式」变成「内核未运行」,但「代理」页 10 分钟里一直列着旧节点(停着不动、切页回来都一样),没有变成「内核暂不可用」,点延迟测试全是 `Error`;Windows 上实测相同。所以判断内核还在不在,要看「运行模式」,不能看代理页有没有节点。另外,在「订阅」页更新订阅会顺带把内核重新拉起来(实测):应用新配置失败时,它会重启内核。服务模式不一样,由服务负责重启内核:Windows 上实测结束内核后约 2 秒就被服务拉起,界面不提示,「运行模式」一直是「服务模式」;服务判定失败时才弹「服务运行的内核意外停止」(按源码,没有造出来)。**旧版本看不出来**:按源码,2.5.2 的内核退出后「运行模式」仍显示「用户模式」,内核没起来时显示成「服务模式」,2.5.4 的预发布版同样没有「内核未运行」;2.5.5 的更新说明写了「修复内核未运行时首页仍显示服务模式」。\n- **界面取不到内核的数据**(ccerr-core-unreachable):代理列表渲染出来是空的,而且内核没在运行、或者读代理信息出错时,「代理」页显示「内核暂不可用」。实测在内核控制接口起不来、内核文件缺失时都出现了它。控制接口那种,排除原因后点「重启内核」就恢复;内核文件那种,放回文件后还要「重新激活订阅」或重开应用,见下下条。\n- **控制接口没就绪**(ccerr-controller-not-ready):启动时 Clash Verge Rev 会反复探测内核的控制接口,一轮最多 30 次(每次最多等 0.4 秒,间隔 0.1 秒);没等到,而且探测发现混合端口确实被占着,才换一个端口再来一轮,最多 3 次,放弃后弹「启动内核失败」加原因。**这对你意味着**:实测从打开到弹出提示约 16 秒,这段时间里窗口看着正常、节点却出不来,等提示出来再按上面处理。实测里的完整原文是 `Mihomo API did not become ready: error sending request for url (…): client error (Connect): Connection refused (os error 111)`(括号里是界面向内核要版本号的地址),同时弹出「端口 … 已被占用,本次运行改用 …」;实测里占着端口的是它自己刚结束的那个内核,换一种触发方式会不会也这样没有测。\n- **内核文件缺失或损坏**(ccerr-core-file-missing):启动时要先用内核校验配置,内核跑不起来,就弹「验证进程被终止……」,改用一份不带订阅的基础配置,再弹「启动内核失败 failed to start sidecar core …」。实测文件缺失时结尾是 `(os error 2)`(Linux 上前面是 `No such file or directory`,中文 Windows 上是「系统找不到指定的文件。」);0 字节时 Linux 上是 `Exec format error (os error 8)`,Windows 上是「%1 不是有效的 Win32 应用程序。 (os error 193)」;首页「内核未运行」,代理页「内核暂不可用」。「重启内核」沿用内存里那份基础配置、不重新生成,所以文件放回后要「重新激活订阅」或重开应用。第一条提示说的「安全软件」「CPU/运行环境」是它的猜测;实测触发它的是文件缺失与 0 字节,杀毒软件隔离的情况没有测。\n- **首页「内核通信错误,请重启电脑再试」**(ccerr-mode-card-comm-error):首页「代理模式」卡片读不到内核里的模式时,会退回读已保存的模式和运行配置,三处都读不到才显示这句;这套回退从 2.5.2 起才有,2.5.2 的更新说明写的是「修复首页代理卡片可能错误显示通信异常的问题」。实测做了七组情况,这句一次也没出现。\n- **本来就没东西可显示**(ccerr-not-a-core-fault):「代理」页先看模式是不是直连,再看有没有订阅、有没有激活,最后列表为空时才区分「内核暂不可用」和「未获取到代理信息」。实测「尚未导入订阅」「直连模式」两种提示都不提内核,也没有「重启内核」按钮;「尚未激活订阅」只有「前往订阅」一个按钮,点要用的订阅卡片后节点就回来了(这个状态是改数据文件造出来的)。「未获取到代理信息」会建议重启内核,但它说的是正在用的配置里没有能显示的节点,不是连不上内核:实测用一份空的本地配置就能造出它,另一种是上面说的找回内核文件后只点了重启。\n- **其他启动失败**(ccerr-start-failed-other):2.5.6 的启动失败提示会带上具体原因,窗口最小化时没弹的,窗口恢复后补弹。和服务有关的归 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n\n## 刚升级完、刚开机时出现\n\n- **刚升级完**:2.5.4 到 2.5.6 的更新说明里修过一串「内核起不来」:Windows 上 GEO 规则多时首次启动内核失败、Mac 上内核更新失败后无法启动,重新安装服务后内核缺失、Linux 装或修复服务后仍然起不来、内核未运行时首页仍显示服务模式,Windows 上没装服务以普通权限运行时内核无法启动、Windows 服务已停止时要等约两分钟才出窗口。**这对你意味着**:升级后遇到这类问题,第一步是确认已经是 2.5.6。已是 2.5.6 仍然起不来的,按页首的提示原文对照;提示里说到服务的,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。升级后订阅没了、版本没变、弹「需要更新系统服务」或虚拟网卡模式被关的,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。代理页的「内核暂不可用」这类排查提示,2.5.4 的预发布版才加上,正式版从 2.5.5 起有;2.5.2 及更早的版本,代理页空着时不会告诉你原因。\n- **开机后第一次打开节点为空、重开就好**:旧版本的更新说明里有几条可能相关:2.4.2 修过「启动阶段可能导致的无法连接内核」,2.4.6、2.4.7 修过首次启动时代理信息、节点信息刷新慢,是不是就是这个现象没有核对。2.5.6 上没有测这种时序问题,还遇到的先升级到 2.5.6。设了「静默启动」、开机后窗口没出来的,启动失败的红色提示要等你打开窗口才会补弹(按源码);打开后看右上角和「代理」页中间的字,按页首对照。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.6 的源码与官方文档逐条核对,并在 Linux 虚拟机(Ubuntu arm64,官方 2.5.6 deb,用户模式)上做出了内核被强杀、控制接口起不来、内核文件缺失与 0 字节、外部控制端口被占且密钥含中文、没有订阅与直连模式这几种情况;在一台 Windows 11 实机上(官方 2.5.6 安装包)做出了内核被结束(用户模式与服务模式)、服务被停、内核文件缺失与 0 字节、外部控制端口被占、用防火墙拦住内核这几种情况。\n\n- Mac 没有实机核对;杀毒软件隔离内核、「服务运行的内核意外停止」「内核通信错误,请重启电脑再试」和开机时序问题都没有在实测里出现,只按源码与文档写;2.5.5 以前的版本只按源码核对。\n- 官方 FAQ 的「关掉再开 Windows 防火墙」只测了防火墙拦住内核时代理页照常,没有试关开本身;托盘菜单里的「重启 Clash 内核」没有测。\n\n## 取证\n- **ccerr-red-notice**:打开 Clash Verge Rev 时,或者点「重启内核」之后,窗口右上角弹过以「启动内核失败」「重启内核失败」或「服务运行的内核意外停止」开头的红色提示吗?(提示约 8 秒后会自己消失。没看清的,完全退出 Clash Verge Rev 再打开一次,盯着右上角看;托盘菜单和「设置」→「Verge 高级设置」里都有「退出」;服务被停掉时这两处都关不掉,要到任务管理器结束「Clash Verge」(「详细信息」页叫 clash-verge.exe)再重开(Windows 上实测)。重开以后节点能测出延迟、网页也能打开的,就是重开已经解决了;过一阵又坏的,按本页「重启内核」那一组的第 4 步查)\n pass → ccerr-validation-killed;fail → ccerr-running-mode;unknown → ccerr-running-mode\n- **ccerr-validation-killed**:和它一起还弹了「验证进程被终止,请检查是否有安全软件阻止了内核运行……」吗?红色提示里「启动内核失败」或「重启内核失败」后面是 `failed to start sidecar core` 开头、结尾是 `(os error 2)`、`(os error 193)`(Windows)或 `(os error 8)`(macOS、Linux)的,也算是。结尾括号前面那句系统报错随系统和语言不同(中文 Windows 上实测是「系统找不到指定的文件。」「%1 不是有效的 Win32 应用程序。」,Linux 上实测是 `No such file or directory`、`Exec format error`),按括号里的错误码认,同时要看到 `failed to start sidecar core` 这个开头\n pass → ccerr-core-file-missing;fail → ccerr-api-not-ready;unknown → ccerr-api-not-ready\n- **ccerr-api-not-ready**:红色提示里「启动内核失败」或「重启内核失败」后面接的是 `Mihomo API did not become ready` 吗?(后面通常还有 `error sending request for url (…)`。结尾的系统报错各系统不同:Linux 上实测是 `Connection refused (os error 111)`;Windows 上界面经命名管道连内核,管道还没建起来时结尾可能是 `(os error 2)`,只要前面是 `Mihomo API did not become ready` 就选「是」,这不是内核文件缺失(按源码推断,没有在 Windows 上实测))\n pass → ccerr-controller-not-ready;fail → ccerr-start-failed-other;unknown → ccerr-start-failed-other\n- **ccerr-running-mode**:首页最下面「系统信息」卡片里,「运行模式」这一行显示「内核未运行」吗?(正常时是「用户模式」「服务模式」「管理员模式」这类。**用服务模式的**:服务被停掉时,这一行仍显示「服务模式」,界面也没有提示,看不出来(Windows 上实测)。上不了网而界面一切照旧的,先完全退出再打开(「退出」关不掉的,到任务管理器结束「Clash Verge」):重开时弹出「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用(服务被停掉,或者服务目录的权限出了问题,Windows 上两种都实测过),点「修复服务」,详见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)「对话框『需要更新系统服务』」一节里「右边是『修复服务』」那一条;重开后没弹这个对话框的,再回来答这一问。这个状态 2.5.5 起才有:2.5.4 及更早的版本(含 2.5.2 和 2.5.4 预发布版),内核停了这一行照样显示「用户模式」,或者显示成「服务模式」,看不出来,选「无法判断」。版本号在「设置」→「Verge 高级设置」→「Verge 版本」。首页没有这张卡的,也选「无法判断」)\n pass → ccerr-core-exited;fail → ccerr-proxy-page-core-unavailable;unknown → ccerr-proxy-page-core-unavailable\n- **ccerr-proxy-page-core-unavailable**:「代理」页中间写着「内核暂不可用」吗?(下面带「重启内核」「打开日志目录」两个按钮。写的是「尚未导入订阅」「尚未激活订阅」「直连模式」或「未获取到代理信息」的,选「否」)\n pass → ccerr-core-unreachable;fail → ccerr-home-comm-error;unknown → ccerr-home-comm-error\n- **ccerr-home-comm-error**:首页「代理模式」卡片里(规则 / 全局 / 直连三个按钮下面)写着「内核通信错误,请重启电脑再试」吗?\n pass → ccerr-mode-card-comm-error;fail → ccerr-empty-state-not-core;unknown → ccerr-empty-state-not-core\n- **ccerr-empty-state-not-core**:「代理」页中间写的是「尚未导入订阅」「尚未激活订阅」「直连模式」或「未获取到代理信息」其中之一吗?\n pass → ccerr-not-a-core-fault;fail → ccerr-nodes-listed;unknown → ccerr-nodes-listed\n- **ccerr-nodes-listed**:下面三条都对吗:「Verge 版本」是 2.5.5 或更新(在「设置」→「Verge 高级设置」里看);首页「运行模式」不是「内核未运行」;「代理」页列着你订阅里的节点。(节点都在、只是延迟全是 `Timeout` / `Error` 的,选「是」)\n pass → all-nodes-failing(见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout));fail → ccerr-old-version-or-unclear;unknown → ccerr-old-version-or-unclear\n\n## 原因\n- **ccerr-core-file-missing**(可能性 medium)→ 修复 ccerr-restore-core-file\n- **ccerr-controller-not-ready**(可能性 low)→ 修复 ccerr-fix-controller\n- **ccerr-start-failed-other**(可能性 medium)→ 修复 ccerr-read-start-reason\n- **ccerr-core-exited**(可能性 high)→ 修复 ccerr-restart-core\n- **ccerr-core-unreachable**(可能性 medium)→ 修复 ccerr-restart-core\n- **ccerr-mode-card-comm-error**(可能性 low)→ 修复 ccerr-comm-error-steps\n- **ccerr-not-a-core-fault**(可能性 medium)→ 修复 ccerr-fix-empty-state\n- **ccerr-old-version-or-unclear**(可能性 medium)→ 修复 ccerr-restart-then-upgrade\n\n## 修复\n### ccerr-restart-core\n1. 到「设置」页「Clash 设置」卡片里的「Clash 内核」这一行,点右边的齿轮,在弹出的「Clash 内核」窗口右上角点「重启内核」。右上角弹出绿色的「已重启 Clash 内核」,是重启这一下成功了(2.5.6 实测);**还要「代理」页重新列出你订阅里的节点,才算好了**。「代理」页正显示「内核暂不可用」时,点页面里的「重启内核」也一样,只是它成功时不弹提示,几秒后代理页列出节点就算成了(实测)。托盘菜单里也有「重启 Clash 内核」(按源码,没有实测)。\n2. 回「代理」页再点一次延迟测试。内核停着时测出来的 `Error` 不会自己消失,重启以后要重新测一遍才出数字(实测)。\n3. 弹出红色「重启内核失败」的,看它后面的原因:是 `Mihomo API did not become ready` 的,按本页「控制接口没就绪」那一组(ccerr-fix-controller)做;是 `failed to start sidecar core`、结尾 `(os error 2)`、`(os error 193)`(Windows)或 `(os error 8)`(macOS、Linux)的,是内核程序文件没了或坏了,按「内核文件缺失」那一组(ccerr-restore-core-file)做(按源码,重启走的是同一个启动过程;重启时的确切原文没有实测);其他原因按「看启动失败的原因」那一组(ccerr-read-start-reason)。重启后「代理」页变成「未获取到代理信息」的,到「订阅」页点右上角火焰图标「重新激活订阅」(实测)。\n4. 重启好了、过一阵又变回「内核未运行」的,是内核自己退出了。Clash Verge Rev 这时不弹提示:内核日志最后一行是 `Process terminated by signal` 或 `Process terminated with code`,Clash Verge Rev 自己的日志(日志目录下的 `latest.log`)记一行 `Core running mode changed: Sidecar -> NotRunning`(按源码,实测相同)。**作者建议**:内核因为出错退出的,内核日志里退出前的几行通常能看出原因,拿原文去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查;被强行结束的,前面不会留下原因。日志找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)(用户模式下内核日志是 `logs/sidecar/sidecar_latest.log`)。用的是服务模式的,内核由服务负责重启,内核日志在服务自己目录里的 `service_latest.log`,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里「服务运行的内核意外停止」那一小节处理。\n验证:ccerr-core-back\n\n### ccerr-restore-core-file\n1. 先把内核程序找回来。它是跟着 Clash Verge Rev 一起装的 `verge-mihomo`(Windows 上是 `verge-mihomo.exe`),和主程序在同一个文件夹:在「设置」页「Verge 高级设置」里点「内核目录」就能打开(Windows 上实测,打开的是 `C:\\Program Files\\Clash Verge`;Linux 上是 `/usr/bin`)。实测文件被挪走、变成 0 字节时是这两条提示;被杀毒软件隔离的情况没有测,按源码,文件不在或运行不了,启动都会失败,只是结尾的系统报错可能不同。被杀毒软件拦下的,官方 FAQ 的办法是把文件从隔离区手动恢复、加进白名单。**作者建议**:不要从隔离区恢复原来那一份(安装包没问题,说明不了被隔离的那一份在你电脑上没被换过),先按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对安装包,一致就用它重装一遍,重装会把内核一起写回来;杀毒软件再拦,只给重装后新写出的这个文件加白名单,不要整个关掉杀毒软件。安装包已经删了或核对不一致的,从官方发布页重新下载(最好装 2.5.6),核对后再装,选文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)。装过系统服务、用虚拟网卡模式(TUN)的,重装可能把服务一起卸掉:Linux 用 deb、rpm 重装(包括同一版本)会卸掉;Windows 上装的版本和已装的不同时,安装器默认选「安装前卸载」,也会卸掉,同一版本重装默认不卸载(Windows 上实测;Linux 上用 deb 同一版本覆盖安装卸掉服务另有实测)。装完虚拟网卡模式被关了的,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。2.5.4 以前的版本(更新说明里点名的是 macOS)升级内核失败后可能起不来,同样重装或升级到 2.5.6;2.5.6 上升级内核在替换中途失败时,会尽量退回原来的内核,但有前提(按源码,条件与做法见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core))。\n2. 文件放回以后,**光点「重启内核」不够**:实测内核能起来,但「代理」页变成「未获取到代理信息」,网页虽然打得开,走的却是直连、没经过节点,再点一次重启也一样。要到「订阅」页点右上角的「重新激活订阅」(火焰图标),或者完全退出 Clash Verge Rev 再打开,两种做法都实测能把节点带回来(实测的退出是直接结束进程,从托盘菜单或「Verge 高级设置」里点「退出」没有测)。\n验证:ccerr-core-back\n\n### ccerr-fix-controller\n1. 同时弹出的蓝色提示「端口 7897 已被占用,本次运行改用 <另一个端口>。设置未更改,下次启动会重新尝试 7897。」(数字按你的设置;改用的端口可能比原来大好几个,实测从 19197 一路试到了 19200):实测里占着那个端口的,是 Clash Verge Rev 自己刚结束掉的那个内核。按源码,只有探测确认端口真被占着才会换端口,所以也不能排除真有别的程序占着。**作者建议**:先不管它,按下一步重启内核;退出重开后还是提示同一个端口被占,再按第 4 步查是哪个程序占着。\n2. 点「代理」页的「重启内核」,或者「设置」里「Clash 内核」窗口的「重启内核」。重启成功后,这一次运行里混合端口可能还停在改用的那个端口上,浏览器或别的软件里手动填了原端口的会连不上;完全退出 Clash Verge Rev 再打开,就回到原来的端口(实测是结束进程后重新打开;从托盘菜单点「退出」没有测)。\n3. 重启还是失败的,先看「设置」页「Verge 高级设置」里的「Verge 版本」,不是 2.5.6 的先升级(应用内更新不成的按 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed) 手动装):2.5.4 到 2.5.6 的更新说明里修过好几处「内核起不来」。\n4. 已是 2.5.6、还是「重启内核失败 Mihomo API did not become ready」的,点「代理」页的「打开日志目录」,看 `sidecar` 文件夹里内核日志最后几行(装了服务、平时首页是「服务模式」的,内核日志不在这里,在服务自己目录里的 `service_latest.log`,位置见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。有 `External controller unix listen error` 的,是界面连内核用的那个本地连接点建不起来(实测里是被一个同名的文件夹占住);是别的报错的,拿原文去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查。**作者建议**:完全退出 Clash Verge Rev,确认后台没有残留的 `verge-mihomo` 进程(Windows 在任务管理器的「详细信息」里找,Mac 在「活动监视器」里搜),也没有开着别的 Clash 类代理程序,再打开;还不行,带着这几行日志去求助,贴出去之前遮掉订阅链接和服务器地址(做法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。\n验证:ccerr-core-back\n\n### ccerr-read-start-reason\n1. 看红字后面的原因。是 `failed to start sidecar core`、结尾 `(os error 2)`、`(os error 193)`(Windows)或 `(os error 8)`(macOS、Linux)的,是内核程序文件没了或坏了,按本页「内核文件缺失」那一组(ccerr-restore-core-file)做。\n2. 是「服务运行的内核意外停止」,或者原因里说到服务(服务模式、service、「已切换到普通模式(Sidecar)」「已降级为 Sidecar 模式运行」)的,是服务模式那边的问题,先按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里对应这句提示的那一小节处理。已经按那一条重启过内核、重启仍然失败的,不用再转回去:服务模式下内核日志不在数据目录的 `sidecar` 文件夹里,而在服务自己目录里的 `service_latest.log`(位置见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)),把它最后几行连同红字原文一起拿去求助,贴出去之前遮掉订阅链接和服务器地址(作者建议)。\n3. 看「设置」页「Verge 高级设置」里的「Verge 版本」。不是 2.5.6 的先升级(应用内更新不成的按 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed) 手动装):2.5.4 到 2.5.6 的更新说明里修过好几处「内核起不来」,例如 Windows 上配置里 GEO 规则多时首次启动内核失败、Windows 上没装服务以普通权限运行时内核无法启动、Linux 装或修复服务后仍然起不来。\n4. 其他原因:点「代理」页的「打开日志目录」,或按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志。内核根本没起来时,`sidecar` 文件夹里的内核日志没有新内容(实测),要看日志目录下 Clash Verge Rev 自己的 `latest.log` 里带 `ERROR` 的行;内核起来过又退出的,看内核日志最后几行。拿报错原文去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查。查不到的,带着红字原文和这几行日志去求助;贴出去之前遮掉订阅链接和服务器地址(做法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。\n验证:ccerr-core-back\n\n### ccerr-comm-error-steps\n1. 先看「设置」页「Verge 高级设置」里的「Verge 版本」。2.5.1 及更早的版本,这句话可能是误报(2.5.2 的更新说明写了修复),先升到 2.5.6,见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)、`Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)。\n2. 按本页「重启内核」那一组(ccerr-restart-core)重启内核。**作者建议**:还是这句话的,完全退出 Clash Verge Rev 再打开;提示里说的「重启电脑」放在最后,它有没有用本条没有核对。\n验证:ccerr-core-back\n\n### ccerr-fix-empty-state\n1. 这几种提示都不是内核故障(2.5.6 实测):「尚未导入订阅」,按 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup) 导入订阅;「尚未激活订阅」,点提示里的「前往订阅」,在「订阅」页点一下要用的那张订阅卡片;「直连模式」,是模式选成了直连,在首页「代理模式」卡片点「规则」,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。\n2. 「未获取到代理信息」:刚找回内核文件、只点了「重启内核」的,到「订阅」页点「重新激活订阅」(实测)。其他情况是正在用的配置里没有能显示的代理组或节点(提示里虽然也建议重启内核,实测用一份空配置就能造出它),按 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup) 第三步的说明查(订阅引用了不存在的名字见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found))。\n验证:ccerr-core-back\n\n### ccerr-restart-then-upgrade\n1. 先重启一次内核:到「设置」页「Clash 内核」那一行点齿轮,在弹出的窗口里点「重启内核」(2.5.6 实测)。2.5.2 也有重启内核(语言包里有「已重启 Clash 内核」这句提示,按源码),入口位置没有在旧版本上核对。重启后「代理」页列出节点、延迟测试出数字,就好了。\n2. 看「设置」页「Verge 高级设置」里的「Verge 版本」。低于 2.5.6 的升级到 2.5.6(应用内更新不成的按 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed) 手动装,最新版本见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)):2.5.5 以前首页不会显示「内核未运行」,2.5.4 预发布版以前「代理」页空着时不说原因;升级后再遇到,按本页开头的提示对照就能分出是哪一种。\n3. 已经是 2.5.6、本页的几种提示都对不上的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,把出错时刻前后带 `ERROR` 的几行和你看到的界面原文一起拿去求助;贴出去之前遮掉订阅链接和服务器地址。\n验证:ccerr-core-back\n\n## 验证\n- **ccerr-core-back**(人):到「代理」页点一次延迟测试,再用浏览器打开一个平时要经过代理的网站;2.5.5 及更新的版本,再看首页「系统信息」卡片的「运行模式」。\n 预期:「代理」页列出订阅里的节点组,延迟测试出数字,网页能打开;2.5.5 及更新的版本,「运行模式」是「用户模式」「服务模式」这类、不是「内核未运行」(更早的版本这一行看不出内核停没停,不用看)。代理页是「未获取到代理信息」的,到「订阅」页点「重新激活订阅」。运行模式正常、节点都列着,但延迟全是 `Timeout` / `Error` 的,按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 区分测速地址、本机网络和节点;节点和延迟都正常、网页还是打不开的,是另一类问题,见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/lib.rs L65-L68(界面经 tauri-plugin-mihomo 以 LocalSocket 连内核,路径即 -ext-ctl-unix / -ext-ctl-pipe);Cargo.lock L7376-L7378(tauri-plugin-mihomo 锁在 ba8434c);src-tauri/src/config/verge.rs L393(外部控制开关默认关闭);src-tauri/src/enhance/mod.rs L645-L653(外部控制关着时 external-controller 写成空串);src-tauri/src/core/manager/state.rs L186-L197(Windows 用 -ext-ctl-pipe,其他用 -ext-ctl-unix)、L35 与 L89-L123(每轮探测控制接口最多 30 次,每次最多等 400 毫秒、间隔 100 毫秒,报错前缀 Mihomo API did not become ready)、L276-L283(每次探测套 400 毫秒超时)、L255-L270 与 L386-L397(内核退出只记 Process terminated 一行、标成未运行,不重新拉起)、L174、L341-L347(服务模式下界面的连接点换成服务的 IPC 路径);src-tauri/src/core/manager/mod.rs L199-L205(内核停下时 CVR 日志记 Core running mode changed: … -> NotRunning)、L279-L327(控制接口起不来时,只有混合端口确认被占才换端口重试,最多 3 次);src-tauri/src/config/port.rs L38-L90(只有探测结果为 Conflict 才换端口,空闲或判断不了就放弃)、L177-L188(record_fallback:通知里写最后一次改用的端口);src-tauri/src/utils/dirs.rs L195-L198(Linux 套接字在数据目录下 verge-mihomo.sock)、L200-L237(macOS 在每个用户的临时目录下)、L239-L251(Windows 命名管道 verge-mihomo-sidecar-…);src-tauri/src/utils/resolve/mod.rs L219-L229(放弃后记 core manager initialization failed 并发启动内核失败);src-tauri/src/core/manager/lifecycle.rs L727-L754(重启内核走 start_core_inner,不重新生成运行配置);src-tauri/src/config/config.rs L178-L184 与 src-tauri/src/core/manager/config.rs L132-L150(校验用的内核跑不起来时改用不带订阅的基础配置)、L373-L395(应用新配置经控制接口失败就重启内核);src-tauri/src/core/validate.rs L89、L394(验证进程被终止);src-tauri/src/core/service.rs L774(Windows 上内核文件带 .exe)、L1589-L1611(服务模式由服务重启内核,判定失败后报服务运行的内核意外停止);src-tauri/src/cmd/app.rs L13-L17(「内核目录」打开主程序所在文件夹);src-tauri/src/feat/core_upgrade.rs L77-L80 与 L112-L117(升级内核失败时用 .rollback 恢复原文件);src/components/proxy/proxy-empty-state-model.ts L40、L46-L57、L63-L73(代理页空状态的判断顺序);src/components/proxy/proxy-empty-state.tsx L24-L35(代理页的重启内核只在失败时提示);src/components/home/clash-mode-card.tsx L66-L86(模式卡片三处都读不到模式才显示内核通信错误);src/hooks/use-clash.ts L69-L85;src/providers/app-data-provider.tsx L56-L67(代理列表每 15 秒重取);src-tauri/src/cmd/proxy.rs L54-L68;src/pages/_layout/utils/notification-handlers.ts L50-L84(启动失败提示只在窗口可见时弹、窗口恢复后补弹);src/services/notice-service.ts L55-L60(红色提示默认 8 秒);src/locales/zh/home.json L58、L66、L69、L142;src/locales/zh/proxies.json L45-L68;src/locales/zh/settings.json L19 与 L23(静默启动)、L183(Verge 高级设置)、L200(内核目录)、L205(退出)、L207(Verge 版本)、L295、L656-L658、L679;crates/clash-verge-i18n/locales/zh.yml L77、L82、L83、L86(托盘菜单的内核目录、重启 Clash 内核、重启应用、退出);src/locales/zh/shared.json L112;src/locales/zh/profiles.json L6(重新激活订阅);src-tauri/packages/linux/pre-remove.sh L2 与 src-tauri/tauri.linux.conf.json L14、L24(deb、rpm 的卸载前脚本不分卸载还是升级,都运行服务卸载程序);src-tauri/packages/windows/installer.nsi L222-L243 与 L279-L280、L314-L331(已装同一版本时默认选第一项、不卸载旧版;版本不同时第一项是「安装前卸载」,默认选中)、L334-L347 与 L1105(卸载旧版时运行旧版卸载程序,删除 clash_verge_service 服务))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/locales/zh/home.json L58(有「运行模式」)、L66-L68(只有管理员模式、服务模式、用户模式,没有 notRunning「内核未运行」;v2.5.4-rc(c7ffb21)、v2.5.4-rc.2(13676d3)同样没有,v2.5.5(22e3f1a)的 home.json L66 才有);src/components/home/system-info-card.tsx L182-L193(getModeText 只分管理员、用户模式、其他三种,不是用户模式就显示服务模式;v2.5.4-rc.2 的同一函数 L176-L187 写法相同);src/hooks/use-system-state.ts L59(运行模式不是 Sidecar 就不算用户模式);src-tauri/src/core/manager/state.rs L108-L118(内核进程退出时只记 Process terminated 一行,不改运行模式)、L96(内核进程起来后才标成 Sidecar)、L131 与 L203(停内核时标成 NotRunning);src-tauri/src/core/manager/mod.rs L66(运行模式初始为 NotRunning);src/locales/zh/settings.json L622(已重启 Clash 内核))\n- tauri-plugin-mihomo-ba8434c:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/ba8434c08c869916b8041d707ad66599bb5230b2(src/mihomo.rs L252-L263(generate_req_headers:只有协议为 Http 时才加 Authorization: Bearer 密钥,LocalSocket 不带密钥)、L207-L225(LocalSocket 在 Windows 上用命名管道、在 Unix 上用套接字);src/stream.rs L155-L171(Windows 上打开命名管道失败时原样带出系统错误))\n- mihomo-v1-19-31:https://github.com/MetaCubeX/mihomo/blob/ab405bad5beeeac8b003bb01f60f134f6df54471/hub/route/server.go(L92-L99(TCP、TLS、unix、命名管道四种控制监听各起一个 goroutine);L170-L176(TCP 控制口监听失败只记 External controller listen error 后返回,这个口就不再监听);L120-L122(密钥不为空才挂鉴权))\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(小节「代理界面异常,不显示任何内容」(#_6):代理界面一片空白、不显示任何节点信息而代理运行正常;日志 External controller listen error(监听 9097 端口时 bind 失败,所引原文是 Windows 的报错);原因写为外部控制端口被其他程序占用,或外部控制访问密钥含有中文字符;办法是 Clash 设置 → 外部控制 → 修改外部控制监听地址中的端口并保存,退出并重启程序;小节「找不到系统文件 os error」:原因之二是内核文件被杀毒软件删除或加进隔离列表,办法之二是被杀毒软件误伤时把文件手动恢复并添加到白名单(站点源文件 clash-verge-rev/clash-verge-rev.github.io@be157f4 docs/faq/other.md L1-L12))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(小节「代理菜单空白」(#_1):问题原因 内核通信失败;解决方案 打开 Windows 防火墙设置,全部关闭,再开启)\n- cvr-changelog-md-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/blob/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b/Changelog.md(L10(修复 Windows 部分未安装服务的用户以普通权限运行时内核无法启动)、L13(修复 Windows 服务已停止时启动要等约两分钟才显示窗口)、L29(优化内核启动失败和服务模式内核意外停止的提示:显示具体原因,并在窗口恢复后提示尚未解决的错误))\n- cvr-changelog-md-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/blob/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576/Changelog.md(L12(修复重新安装服务后内核缺失)、L13(修复内核未运行时首页仍显示服务模式)、L23(Linux 修复安装或修复服务后仍无法启动内核))\n- cvr-changelog-md-v2-5-4-rc-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/13676d3335b4242a8342541bdd510295502268c1/Changelog.md(L33(修复 Windows 配置中 GEO 规则较多时首次启动内核失败)、L37(修复 macOS 内核更新失败后无法启动)、L63(新增代理页排查提示,方便检查订阅和内核状态)、L65(新增启动失败提示,显示原因并保存启动日志);同样两条新增在 v2.5.4-rc(c7ffb21)的 Changelog.md L63、L65 已有;对应提交 ece3c71(feat(proxies): add empty-state troubleshooting guidance),GitHub compare 核对:不在 v2.5.2、在 v2.5.4-rc,也在正式版 v2.5.5(22e3f1a)里(ece3c71...v2.5.5 为 ahead,behind 0))\n- cvr-changelog-md-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/28f2efc504059b1dc75c793618b775c8e1b2a5f1/Changelog.md(L12(修复首页代理卡片可能错误显示通信异常的问题)、L64(更健壮的 Mihomo API 通信机制);首页模式卡片的回退来自提交 f763fcb(fallback clash mode from runtime config)与 5a96fdd(harden home clash-mode card against /configs read failures),GitHub compare 核对:两者都不在 v2.5.1、都在 v2.5.2)\n- cvr-updatelog-v2-4-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/5dca724017278d441cad567da19bff9862a5b868/UPDATELOG.md(L23(v2.4.2 修复启动阶段可能导致的无法连接内核)、L122(v2.4.0 统一使用新的内核通信方式))\n- cvr-changelog-md-v2-4-6:https://github.com/clash-verge-rev/clash-verge-rev/blob/d77d655897f514ed3efc5cf47800ba18191c6e2a/Changelog.md(L8(修复首次启动时代理信息刷新缓慢))\n- cvr-changelog-md-v2-4-7:https://github.com/clash-verge-rev/clash-verge-rev/blob/520a7ed83fda06b6507c46e51e16f737c58c7ddc/Changelog.md(L30(优化首次启动节点信息刷新))\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-macos-cvr-singbox-2026-09-22:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-firewall-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n\n最后修订:7621aec 2026-09-30\n"},"cvr-extend-config":{"id":"cvr-extend-config","type":"howto","title":"Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动","aliases":["Clash Verge 扩展覆写配置","Clash Verge 全局扩展覆写配置","Clash Verge 扩展脚本","Clash Verge 全局扩展脚本","Clash Verge 全局脚本 不生效","Clash Verge 全局脚本 联网 网络IO 查出口IP","Clash Verge 覆写脚本 function main","Clash Verge 扩展脚本 profileName","Clash Verge Merge 配置 Script 配置","Clash Verge 扩展脚本不生效","Clash Verge 扩展覆写配置不生效","扩展配置 prepend-rules 不生效","prepend-proxy-groups 不生效","Clash Verge 更新订阅后自定义分组没了","机场订阅里改的规则和分组 更新后没了","扩展配置 rules 覆盖了订阅规则","扩展配置 proxy-groups 把订阅分组替换了","扩展配置改 mixed-port 不生效","Clash Verge DNS 覆写 扩展配置 dns 被丢弃","扩展配置或脚本写入了由应用设置接管的字段,这些值已被丢弃","覆写文件语法错误,变更已撤销","脚本语法错误,变更已撤销","脚本错误,变更已撤销","Script execution error: expected value at line 1 column 1. Script name","Script execution error: EOF while parsing a value at line 1 column 0. Script name","Script execution failed","Clash Verge 自建分组节点被删空 use or proxies missing","Clash Verge 脚本控制台输出 exception","Clash Verge 查看运行时订阅","Clash Verge 按地区自动选择 策略组","Clash Verge 整套现成配置 懒人配置"],"primary_topic":"clash-verge-rev","topics":["clash-verge-rev","routing-rules"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动\n\n主题:`客户端` › `Clash Verge Rev`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 有两种「扩展」,都能给订阅统一加改动,而且**更新订阅后不丢**:**扩展覆写配置**(YAML,按名字覆写 `tcp-concurrent`、`dns` 这类配置项)和**扩展脚本**(JavaScript,在 `function main(config, profileName)` 里改配置,最后 `return config`;脚本不能联网)。两种都分全局和单个订阅:「订阅」页底部的「全局扩展覆写配置」「全局扩展脚本」卡片对所有订阅生效,右键某个订阅里的「扩展覆写配置」「扩展脚本」只对它生效。改完点「查看运行时订阅」核对。\n\n最常见的几种「不生效」,和该怎么办:\n\n- 扩展覆写配置里写 `prepend-rules`、`prepend-proxy-groups`:旧版写法,现在不报错也不生效。改用订阅右键的「编辑规则」「编辑代理组」,见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)。\n- 扩展覆写配置里写顶层 `rules`、`proxy-groups`:整份替换订阅的,不是追加。删掉它们,规则和分组用上面两个编辑器加。\n- 脚本运行时出错或忘了 `return`:这次脚本的改动整个作废,不弹提示。去应用日志搜 `Script execution error`,见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)。\n- 在扩展里改端口、`mode`、`allow-lan`,或在 2.5.5 起的版本里改 TUN、当前订阅开着「DNS 覆写」时覆写页填了值的 DNS 项:由应用接管,被丢弃。到「设置」页改(`mode` 在「代理」页顶部切换)。\n\n怎么选:只改配置项,用扩展覆写配置;加几条规则、增删分组(包括按地区自动选择的分组)或节点,用「编辑规则」「编辑代理组」「编辑节点」;要按条件批量改,比如给所有订阅加同一批规则,才写扩展脚本。\n\n## 更新订阅后,改动还在吗\n\n在。每个订阅导入时都会配一份自己的扩展覆写配置文件和扩展脚本文件;更新订阅时,Clash Verge Rev 沿用这两个文件,只重写订阅本身那个文件。本机实测(2.5.2):一次定时更新把订阅文件整个重写了,扩展覆写配置、扩展脚本和「编辑规则」这三个文件一个字节都没变,它们带来的规则、分组和配置项在更新后照样在。\n\n所以「更新后自定义分组没了」,多半是另外两种情况:一是改的是订阅文件本身(比如右键订阅选「编辑文件」;全局扩展卡片上的「编辑文件」改的是扩展文件,更新时不动),这个文件每次更新都会被重写;二是扩展或脚本里**写死了节点名**,订阅改了节点名以后,组里要么少了这些节点,要么(名字全失效时)整份新配置被内核拒绝、更新失败(见下文「扩展脚本怎么写」)。另外,删除订阅会连同它的扩展文件一起删。\n\n## 执行顺序:谁覆盖谁\n\n官方文档写明,几种扩展同时生效,按这个顺序改配置:订阅原文 → 应用设置 → 全局扩展覆写配置 → 全局扩展脚本 → 订阅扩展覆写配置 → 订阅扩展脚本 → 应用设置回写。按源码,「编辑规则」「编辑节点」「编辑代理组」在应用设置之前就并进去了,最后还会清理代理组里不存在的成员。这对你意味着:\n\n- **同一个配置项全局和订阅都写了,订阅的赢**,因为它后执行。比如全局写 `find-process-mode: strict`、某个订阅的扩展覆写配置写 `always`,这个订阅用的就是 `always`。例外是下文「写了也不生效的字段」里那些,两处写的都会被丢弃。\n- **脚本看到的配置里已经有「编辑规则」加的规则。**本机实测:脚本接到规则列表最前面的那条,排在「编辑规则」的前置规则之前。\n- **扩展整份替换规则列表时,「编辑规则」加的也一起没了**,因为它们早就在那份列表里了。\n\n## 扩展覆写配置怎么写\n\n写顶层的配置项和值,和订阅里的同名项合并。「顶层」就是从行首写起、不缩进的那一级;冒号后面留一个空格,子项另起一行、缩进两个空格:\n\n```yaml\ntcp-concurrent: true\nfind-process-mode: always\n```\n\n这两项的意思:`tcp-concurrent` 打开后,一个域名解析出多个地址时同时去连,用先连上的那个;`find-process-mode: always` 让每条连接都查是哪个程序发起的,本机实测连接记录里带上了程序名 `curl`。\n\n按源码,合并方式分几种:\n\n- **单个值**(开关、数字、字符串):换成你写的值。本机实测上面两项都生效了。\n- **带子项的**(比如 `sniffer`):逐个子项合并,没写到的子项保留。\n- **列表**(规则、代理组、节点):**整份替换**。本机实测:在全局扩展覆写配置里写一个只有一个组的 `proxy-groups`,订阅原有的组全被换掉;订阅的规则还在引用原来的组名,于是新配置被内核拒绝(`proxy [PROXY] not found`),应用日志记「[订阅更新] 更新失败」,内核继续跑旧配置。\n- **`dns` 与 `hosts`**:2.5.5 起把你写到的 `dns` 子项整个换掉,比如写了 `nameserver-policy`,订阅原来的 `nameserver-policy` 条目一条不留,其它子项不动;`hosts` 整体替换。全局和订阅两层扩展配置之间也一样:两层都写了 `nameserver-policy`,最后只剩订阅那层的条目;两边的都要,就全写进订阅扩展配置,或者在订阅扩展脚本里逐条追加(官方文档的例子)。2.5.2 是逐层深合并:`nameserver-policy`、`fallback-filter` 里你没写到的旧条目会保留下来;官方更新日志把这一点列为 2.5.5 修复的问题。`nameserver` 这类列表两个版本都是整份替换。\n- 「设置」页「Clash 设置」里的「DNS 覆写」对当前订阅开着时,`dns` 另有限制;2.5.5 起这个开关按订阅分别保存,还可能被自动关掉,见下文「写了也不生效的字段」。\n\n## 扩展脚本怎么写\n\n官方文档:脚本是 JavaScript,入口是 `main`。第一个参数是配置(YAML 转成的对象),改完必须把它返回;第二个参数 `profileName` 是当前处理的订阅名(v1.7.3 起),在全局扩展脚本里用 `if (profileName === \"订阅名\")` 就能只改某一个订阅。脚本里**不能联网、不能读写文件**。\n\n- **加前置规则**:`config.rules = [\"DOMAIN-SUFFIX,example.com,DIRECT\"].concat(config.rules)`,再 `return config`(官方示例的写法)。本机实测这样加的规则排在最前面,访问流量也按它走了。\n- **加一个分组**:往 `config[\"proxy-groups\"]` 里 `push` 一个组(名字、类型、成员)。本机实测加了一个手动选择组,内核里出现了这个组,也被加进了全局组 `GLOBAL`。新组只是多了一个可选项,流量不会自己走它:要加一条规则指向它(见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)),或把它加进订阅主选择组的成员、再在「代理」页选中。实测里是另加了一条规则,流量才走了这个组。\n- **按地区自动选择**:不用写脚本。按源码,「编辑代理组」就能做:右键订阅 →「编辑代理组」,「代理组类型」选「根据 URL 测试延迟选择代理」(`url-test`),打开「引入所有出站代理」,「过滤节点」填地区关键字,点「添加前置代理组」,保存。官方示例 1 的「ChatGPT」组也是这种写法(`include-all` 加 `filter`)。按内核源码,这种组在运行时按名字筛节点,订阅改了节点名也跟得上;一个都筛不出来时也不会让整份配置被拒。同样要加规则指向它。这一套本条没有实测。\n- **组成员写了不存在的节点名**:Clash Verge Rev 在交给内核之前会把这个名字从组里悄悄删掉,不报错。本机实测:脚本加的组里,不存在的那个名字没了,存在的留下了。类似的配置(组成员含不存在的节点名)直接交给命令行内核,会被整份拒绝。但**组里的名字全被删光时**,组本身还留着、成员是空的,内核会拒绝整份配置,报 `` `use` or `proxies` missing ``,这次更新失败(按源码,没有实测)。对你意味着:别在脚本里写死节点名。**作者建议**:自己用脚本按名字筛节点建组时,筛出来是空的就跳过这个组;订阅用代理集合(`proxy-providers`)下发节点时,`config.proxies` 里没有集合里的节点,按名字筛不到它们。**规则**里引用不存在的组名则不会被删,整份配置会被拒绝,见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)。\n- **想用远程规则集**:脚本自己不能下载。官方示例 1 的做法是在配置里写 `rule-providers`(规则集的地址),脚本只负责把它写进配置。\n\n## 脚本出错时:静悄悄地不生效\n\n按源码,保存时的检查不调用 `main`;`main` 要到重新生成配置时才运行。这时 `main` 抛错、忘了 `return`、返回的不是对象,或者超时(2.5.5、2.5.6 源码里是 5 秒),都不会弹「变更已撤销」:这次脚本的改动整个作废,配置按没有这个脚本往下走。\n\n本机实测(2.5.2):脚本抛 TypeError、脚本没有 `return` 两种情况,规则和分组都和没有脚本时一样,内核照常运行。应用日志里各有一行 `Script execution error: …. Script name: <订阅名>`,搜这几个字就能找到。冒号后面**不是你脚本里的错误**,而是一句解析提示:抛异常时是 `expected value at line 1 column 1`,没有 `return` 时是 `EOF while parsing a value at line 1 column 0`。看到它只能说明脚本这次没生效,错在哪要自己排查。按源码,`Script name` 后面总是当前订阅的名字,出错的是全局脚本也一样;超时不会留下这一行。应用日志在哪见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)。\n\n按源码,界面上的「脚本控制台输出」只有「全局扩展脚本」卡片能打开:卡片上那个列表样的小图标,鼠标停上去显示这个名字,脚本出过错时它变红、带红点。里面记的是 `Script execution failed` 或超时之类的笼统原因,以及你在 `main` 里用 `console.log(…)` 打印的内容(出错时也保留)。订阅自己的扩展脚本出错,界面上没有地方显示。这几处界面本条没有看到。**作者建议**:调试时先把脚本放进全局扩展脚本,用 `profileName` 限定订阅,在 `main` 里用 `try { … } catch (e) { console.log(String(e)) }` 把原始错误打印出来(`console.log` 会把参数转成 JSON,直接传错误对象只会显示 `{}`);调好了再挪回订阅。别忘了全局卡片保存被拒时文件不会自动撤回。\n\n## 写了也不生效的字段\n\n官方文档:下列字段由应用接管,扩展写入的值会在最后被丢弃:\n\n- 顶层的 `external-controller`、`external-controller-cors`、`secret`、`mixed-port`、`socks-port`、`port`、`redir-port`、`tproxy-port`、`mode`、`allow-lan`、`log-level`、`ipv6`、`unified-delay`。按源码有平台差异:`redir-port` 在 Windows 上、`tproxy-port` 在 Linux 以外不归应用管;清单外的 `external-controller-unix`(macOS、Linux)和 `external-controller-pipe`(Windows)也会被写回。\n- `tun.enable`,以及在 TUN 设置里保存过的那些 TUN 字段:这条是 **2.5.5 起**才有的。按 2.5.2 源码,扩展之后只写回上面那些顶层字段和 `dns.ipv6`,扩展里写的 `tun` 字段会进入运行配置(本条没有实测)。不管哪个版本,都别在扩展里写 `tun`,到设置里开关。\n- **当前订阅「DNS 覆写」开着时的 DNS**:2.5.5 起,覆写页里**填了值**的 `dns` 子项和 `hosts` 都以覆写页为准,扩展写的会被丢弃;覆写页留空的子项仍由扩展决定。2.5.2 只接管 `dns.ipv6`,其余 `dns` 字段扩展能改。官方文档「与应用设置的优先级」一节写的是「扩展写入的 dns 字段都照常生效,dns.ipv6 除外」(2026-09-27 仍是这样),与 2.5.5、2.5.6 的源码和 2.5.5 的更新日志(「修复 DNS 覆写中已填写的字段被 Merge 或 Script 覆盖的问题,空字段继续使用扩展配置」)不一致,本条以后两者为准。**要在扩展里改 DNS,先关掉当前订阅的「DNS 覆写」,或者直接在覆写页里改。**\n - **这个开关按订阅算**(2.5.5、2.5.6 源码):开关旁的提示写着「DNS 覆写开关按订阅独立保存,仅对对应订阅生效。」覆写页里填的内容所有订阅共用一份,生不生效看当前订阅的开关,所以换了订阅要回「设置」页看一眼。官方更新日志把「按订阅独立记忆,自动关闭仅影响当前订阅」列为 2.5.5 的改进;2.5.2 是一个全局开关。\n - **可能被自动关掉**(同上,按源码):当前订阅**原文**的 `dns` 里写了非空的 `nameserver-policy`、`proxy-server-nameserver` 或 `proxy-server-nameserver-policy`(扩展里写的不算)时,应用会关掉这个订阅的 DNS 覆写,并提示「检测到当前订阅包含自定义 DNS 配置,已自动关闭 DNS 覆写。」这时手动打开,会先问「是否开启 DNS 覆写?」,点「仍然开启」只管到这次退出应用,下次启动又会被关掉;订阅更新后这几项变了也会再关。被关掉时覆写页整个不生效,扩展写的 `dns` 全部照常生效。\n\n本机实测(2.5.2):扩展覆写配置里写 `mixed-port: 7899`,运行中的端口仍是设置里的 7897,7899 从没监听过;应用日志里没有相关记录。界面上有没有提示没有观察到,按 2.5.2 源码没有这类提示。按官方更新日志与源码,2.5.5 起会弹出「扩展配置或脚本写入了由应用设置接管的字段 …,这些值已被丢弃」,并在那个扩展的日志里记一条;日志同样只有全局扩展脚本卡片能打开,其他扩展只看得到弹窗(2.5.5 没有实测)。\n\n改到哪(按 2.5.5、2.5.6 源码的界面文案):「设置」页的「Clash 设置」里有「端口设置」(`mixed-port` 等端口)、「局域网连接」(`allow-lan`,让手机等设备走电脑代理的用法见 `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy))、「IPv6」(`ipv6`)、「统一延迟」(`unified-delay`)、「日志等级」(`log-level`)、「外部控制」和「DNS 覆写」;规则 / 全局 / 直连(`mode`)在「代理」页顶部切换。\n\n## 有没有能直接套的整套配置\n\n官方「自定义脚本」页自带一份整套示例(示例 1)。它把 DNS、代理组、规则集和规则**整个换掉**,规则集指向第三方仓库、经 CDN 下载。套用之后,订阅原有的分组和规则全部被替换。本条不背书这份示例,也不推荐任何第三方的整套配置。**作者建议**:只想加几条规则、一两个分组,就在原有配置上加,出了问题容易看出是哪一条。\n\n## 几条流传的说法\n\n- **「扩展覆写配置里写 prepend-rules、prepend-proxy-groups 就能追加」**:这是 v1.7.x 以前的写法。官方文档写明,前置 / 后置规则已经移到订阅右键的可视化编辑器,扩展配置只用来覆写或合并配置项。本机实测(2.5.2):这两个键原样留在运行配置里,但规则和分组都没变化,应用日志里也没有任何报错;内核不认识的顶层键直接忽略,不报错。`append-rules` 这类同类键名没有逐个试。\n- **「更新订阅会把扩展冲掉」**:不会,见上文。\n- **「脚本保存没报错就说明生效了」**:不一定,保存时不运行 `main`,见上文。\n- **「改完扩展必须点火苗(重新激活订阅)」**:按源码,保存正在使用的订阅自己的扩展、或全局的两张卡片,都会立即重新生成配置。本条实测时的重新生成是重启和定时更新触发的,编辑器保存这一步没有在界面上验证。**作者建议**:「查看运行时订阅」里看不到改动时,点一次「重新激活订阅」再看。\n- **「脚本可以联网拉节点、查出口 IP」**:不能,官方文档写明不支持网络和文件读写。\n\n## 这些结论是怎么核对的\n\n在 macOS 上用 Clash Verge Rev 2.5.2 实机跑过配置生成的行为(导入、定时更新、扩展生效与脚本出错),结果从内核控制接口和应用日志读;旧键名与不存在的节点名另用命令行 mihomo 对照。其余按 2.5.2、2.5.5 源码和官方文档核对;2.5.6 与 2.5.5 逐文件对比过,本条引用的文件里有改动的只是新增了服务与内核启动相关的提示,本条依赖的那几段都没改。\n\n- 界面没有实际操作过:菜单、编辑器、各种提示、脚本控制台输出、「编辑代理组」的做法都按源码写。\n- 2.5.5、2.5.6、Windows、Linux 没有实测;全局扩展脚本、语法错误与超时、TUN 与「DNS 覆写」相关的写法、组被删空的情况也没有实测。\n\n## 步骤\n1. 先想清楚要改什么,选对工具。**只改配置项**(比如 `tcp-concurrent`、`find-process-mode`,或当前订阅没开「DNS 覆写」时的 `dns`):用**扩展覆写配置**。**加几条规则、增删分组或节点,包括按地区自动选择的分组**:用订阅右键菜单里的「编辑规则」「编辑代理组」「编辑节点」,加规则的做法见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule);它们同样不随订阅更新丢失。**按条件批量改**(比如给所有订阅加同一批规则,或在全局脚本里按订阅名分别处理):才写**扩展脚本**。**端口、代理模式(规则 / 全局 / 直连)、允许局域网、TUN,以及当前订阅开着「DNS 覆写」时的 DNS**(2.5.5 起这个开关按订阅分别保存,还可能被自动关掉):不要写进扩展,到应用里改(代理模式在「代理」页顶部切换,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes);其余在「设置」页);2.5.5 起会把这些写入丢弃(DNS 只丢覆写页里填了值的那几项),2.5.2 对 TUN 和 DNS 不拦(`dns.ipv6` 除外;见正文「写了也不生效的字段」)。\n 失败时 → escalate\n2. 打开编辑器。**对所有订阅生效**:在「订阅」页最下方找到「全局扩展覆写配置」「全局扩展脚本」两张卡片,右键卡片选「编辑文件」。**只对某一个订阅生效**:右键那个订阅,选「扩展覆写配置」或「扩展脚本」。几种扩展同时生效,顺序是 全局扩展覆写配置 → 全局扩展脚本 → 订阅扩展覆写配置 → 订阅扩展脚本,同一个配置项后写的赢。菜单里这两项是灰的,说明这个订阅还没有配套的扩展文件:远程订阅导入时会自动建好(2.5.2 实测),按源码本地导入时也会建、远程订阅更新一次时会补建(更新前先把右键订阅「编辑文件」直接改过的内容抄下来,更新会把它们冲掉);实在没有就先用全局的那两张卡片,但注意全局卡片保存被拒时文件不会自动撤回(见下一步)。菜单名按 2.5.2、2.5.5、2.5.6 的源码写,界面没有实际点过。\n 失败时 → escalate\n3. 写改动。**扩展覆写配置**:只写你要改的顶层配置项(从行首写起、不缩进的那一级)和值,一行一项,比如 `tcp-concurrent: true`(冒号后面留一个空格;带子项的,子项另起一行、缩进两个空格)。**不要**在这里写顶层的 `rules`、`proxy-groups`、`proxies`:列表是整份替换,不是追加,订阅原有的会全部被换掉;也不要写 `prepend-rules`、`prepend-proxy-groups`,这是旧版写法,现在不报错也不生效(`proxy-groups` 被整份替换、这两个旧键名失效,都实测过)。**扩展脚本**:保留模板里的 `function main(config, profileName)`,在里面改 `config`,最后一定要 `return config`。加前置规则的写法是 `config.rules = [\"DOMAIN-SUFFIX,example.com,DIRECT\"].concat(config.rules)`(照官方示例)。脚本不能联网、不能读写文件。\n 失败时 → escalate\n4. 保存。按源码,保存时的检查**不运行 `main`**:扩展覆写配置只查 YAML 语法(出错提示「覆写文件语法错误,变更已撤销」);扩展脚本会把 `main` 以外的顶层代码执行一遍,再按文字查有没有 `function main`、`const main` 或 `let main`(写成 `var main = …` 会被当成没有 `main`),出错提示「脚本语法错误,变更已撤销」或「脚本错误,变更已撤销」。照提示改完再存。`main` 要到随后重新生成配置时才运行,那时出错不会弹提示,见正文「脚本出错时」。**正在使用的订阅自己的扩展**:保存后立即重新生成配置交给内核校验,被拒会弹「订阅配置校验失败,请检查订阅配置文件,变更已撤销,错误详情:」加报错原文,文件也撤回。**全局的两张卡片**:同样会重新生成,被拒时弹同一句提示,但按源码文件**并没有撤回**(只有当前订阅缺自己的扩展文件时例外):要马上重新打开那张卡片,把刚加的内容删掉再保存,否则之后每次更新订阅都会失败。报错原文里有 `proxy [名称] not found`,说明规则引用了不存在的组名,转 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)。给没在使用的订阅保存,要等切换到它才生效。这些提示本条都没有在界面上看到。\n 失败时 → escalate\n\n## 验证\n- **ext-check-runtime**(人):先确认你改的是正在使用的那个订阅(或全局的两张卡片);改的是别的订阅,先记下现在用的是哪个,再点它的卡片切过去,确认它变成选中(高亮)的样子——切换失败会还原成原来那个(见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)),这时看到的是原来那个订阅的配置。然后点「订阅」页顶部那排图标里的第三个(一页纸的样子,鼠标停上去显示「查看运行时订阅」;第四个火焰图标是「重新激活订阅」),它显示最终交给内核的配置,只读。找你改的那几项。更新前注意:更新会用新下载的内容重写订阅文件(实测,见正文「更新订阅后,改动还在吗」),你右键订阅用「编辑文件」直接改过的内容会没了,先把它们抄下来,挪进扩展或「编辑规则」「编辑代理组」「编辑节点」再更新。然后右键这个订阅点「更新」,更新成功后再看一次(作者建议:第一次改扩展后都这样核对一遍)。两次都核对完、想用回原来那个订阅的,最后再切回去。\n 预期:你写的配置项、规则、分组都在,更新前后一样;改的是别的订阅的,两次看的时候它都是选中的那张。端口、模式这类由应用接管的字段仍是应用里设的值(端口看「设置」页,模式看「代理」页顶部),这是正常的。脚本的改动一样都没出现,多半是脚本运行时出错被跳过了:按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 打开应用日志,搜 `Script execution error`;它后面跟的是一句解析提示,不是你脚本里的错误,只能说明脚本这次没生效(超时不会留下这一行)。日志里没有这一行,却有「[订阅更新] 更新失败」或 `not found`,说明内核拒绝了新配置、还在用旧的,转 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n\n## 来源\n- cvr-guide-extend:https://www.clashverge.dev/guide/extend.html(Changelog(v1.7.x 起 Merge 配置改名扩展配置、prepend/append 移到订阅右键的可视化编辑器、扩展配置仅用于覆写或合并;Script 配置改名扩展脚本;v2.5.5 起扩展配置写出的 dns 字段和 hosts 整体替换原有的值);扩展分类(全局扩展与订阅扩展同时生效,执行链路 订阅原文 → 应用设置 → 全局扩展配置 → 全局扩展脚本 → 订阅扩展配置 → 订阅扩展脚本 → 应用设置回写);扩展配置的合并规则(列表和普通值整体替换、其他嵌套对象逐项合并、dns 下写出的字段与顶层 hosts 整体替换,没写的 dns 字段保留;订阅扩展配置写了 dns.nameserver-policy 时全局那份被整个换掉的示例);与应用设置的优先级(由应用接管、会被丢弃的字段清单;「两种情况下扩展写入的 dns 字段都照常生效,dns.ipv6 除外」,这句与 v2.5.5 源码和更新日志不一致);扩展教程 › 扩展配置(全局与订阅 A、C 的示例))\n- cvr-guide-script:https://www.clashverge.dev/guide/script.html(通过全局扩展脚本(prependRule.concat 加前置规则);为不同配置文件启用不同的脚本(profileName);脚本说明(javascript、boa_engine、main 必须返回修改后的参数,v1.7.3 起 profileName);支持的 API(不支持网络 IO、文件 IO);脚本示例 1. 自定义规则(集)(整体替换 dns、proxy-groups、rule-providers、rules,规则集地址指向第三方仓库经 CDN;「延迟选优」为 url-test 组;「ChatGPT」组用 include-all 加 filter 按名字筛节点))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/enhance/mod.rs L918-L967(先并入编辑规则 / 节点 / 代理组,再合并应用设置、TUN 与 DNS 覆写,依次执行全局与订阅扩展,最后写回接管字段、cleanup_proxy_groups)、L938(AuthoritativeFields 的 capture 在扩展之前记下接管字段)、L830-L858(merge_dns_config:DNS 覆写页里非空的 dns 子项与 hosts 记为接管)、L347-L360(enforce:全部扩展之后写回控制面、TUN 与这些 dns 子项、hosts)、L254-L280 与 L558-L584(每级先扩展配置后扩展脚本)、L307-L327(CONTROL_PLANE_KEYS,redir-port 非 Windows、tproxy-port 仅 Linux、external-controller-unix / -pipe 按平台)、L404-L441(被丢弃字段的提示与扩展日志)、L706-L785(只删组成员里不存在的名字,组被删空也保留)、L199 与 L270(profileName 取当前订阅名,全局脚本也用它);src-tauri/src/enhance/merge.rs L4-L32(映射逐键合并、列表与标量整体替换、dns 按子项替换、hosts 整体替换、键名转小写);src-tauri/src/enhance/script.rs L12-L65(5 秒超时,出错记 exception 并原样返回配置,超时只记进脚本输出)、L122-L131(console 各方法把参数 JSON.stringify 后记进脚本输出)、L149-L185(main 的异常被包成字符串,按 JSON 解析失败时应用日志记 Script execution error 加解析错误,脚本输出记 Script execution failed);src-tauri/src/core/validate.rs L247-L297 与 L316-L319(保存时脚本执行一遍顶层代码并按文字查 main,扩展配置只查语法);src-tauri/src/cmd/save_profile.rs L101-L180(profile_affects_runtime 只把当前订阅自己的扩展算作影响运行配置,被拒时撤回文件);src-tauri/src/cmd/profile.rs L42-L63(enhance_profiles 被拒时只提示,不还原文件);src-tauri/src/cmd/validate.rs L38-L52;src-tauri/src/config/prfitem.rs L182-L196、L366-L375、L417-L448 与 src-tauri/src/utils/tmpl.rs L10-L25(导入时建扩展文件,脚本模板);src-tauri/src/feat/profile.rs L104-L124 与 src-tauri/src/config/profiles.rs L278-L311、L335-L347(更新沿用扩展文件,只重写订阅文件;删除订阅连带删除);src/pages/profiles.tsx L716-L753(顶部图标依次为批量、全部更新、查看运行时订阅、重新激活订阅)与 L958-L980(全局两张卡片保存后调 onEnhance(false),只有全局扩展脚本卡片传入脚本日志);src/components/profile/profile-more.tsx L72、L150-L173(只有 id 为 Script 的卡片有「脚本控制台输出」图标,有 exception 时标红);src/components/profile/profile-item.tsx L483-L492(扩展覆写配置 / 扩展脚本菜单,没有文件时灰显);src/components/profile/groups-editor-viewer.tsx(代理组类型、过滤节点、引入所有出站代理、添加前置代理组);src/components/setting/mods/config-viewer.tsx(运行时配置只读显示);src/locales/zh/profiles.json、proxies.json L107-L113、settings.json L100-L109、shared.json(界面文案))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)逐文件对比:本条引用的 src-tauri/src/enhance/(mod.rs、merge.rs、script.rs 等整个目录)、core/validate.rs、cmd/save_profile.rs、cmd/profile.rs、config/prfitem.rs、src/pages/profiles.tsx、profile-more.tsx、profile-item.tsx、groups-editor-viewer.tsx 与 src/locales/zh/profiles.json 都没改(执行顺序、合并方式、接管字段、脚本出错与 5 秒超时、保存时的校验与撤回都与 v2.5.5 相同);src/locales/zh/settings.json 只新增了服务与内核启动相关的提示;src/pages/_layout/utils/notification-handlers.ts 新增的是内核启动失败与服务相关的提示,被丢弃字段与 DNS 覆写的提示照旧。DNS 覆写按订阅保存与自动关闭(以下文件与 v2.5.5 相同):src-tauri/src/config/verge.rs L83-L87(enable_dns_settings 只作没有单独设置的订阅的初始值,profile_dns_settings 按订阅记开关);src-tauri/src/config/dns.rs L18-L54(订阅原文 dns 里非空的 proxy-server-nameserver、proxy-server-nameserver-policy、nameserver-policy 算作订阅自带 DNS)、L65-L75(有这几项且没有本次会话的确认时不启用)、L111-L113(确认不写盘,重启失效)、L117-L125、L143-L146(自动关闭时发出提示);src-tauri/src/enhance/mod.rs L861-L874(覆写页内容是数据目录下同一份 dns_config.yaml,开关关着时不并入)、L899-L905(按当前订阅原文判断);src-tauri/src/feat/dns.rs L24-L81(手动打开时要确认);src/components/setting/setting-clash.tsx L84-L143 与 L171-L192(确认对话框、开关与提示图标);src/locales/zh/settings.json L511(DNS 覆写开关按订阅独立保存,仅对对应订阅生效。)、L515-L519(是否开启 DNS 覆写?、仍然开启、保持关闭、检测到当前订阅包含自定义 DNS 配置,已自动关闭 DNS 覆写。))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/enhance/mod.rs L685-L768(执行顺序与 v2.5.5 相同)、L118-L128(DNS 覆写开关只有全局一个 enable_dns_settings,没有按订阅的设置)、L735(use_tun 在扩展之前)、L740-L745(DNS 页开启时只记下 dns.ipv6,其余 DNS 字段扩展可改)、L763-L764(扩展之后只写回 CONTROL_PLANE_KEYS 与 dns.ipv6,不写回 tun)、L310-L330(CONTROL_PLANE_KEYS)、L244-L271 与 L413-L440(脚本出错保留原配置)、L544 起(cleanup_proxy_groups);src-tauri/src/enhance/merge.rs L6-L35(所有映射含 dns、hosts 都逐层深合并,列表整体替换);src-tauri/src/enhance/script.rs L102-L140;src-tauri/src/core/validate.rs L245-L275(保存时执行脚本并按文字查 main);src-tauri/src/cmd/save_profile.rs L109-L128(profile_affects_runtime 与 v2.5.5 相同);src/pages/profiles.tsx L1040-L1060(全局两张卡片保存后调 onEnhance(false));src/components/profile/groups-editor-viewer.tsx 与 src/locales/zh/profiles.json L133-L163(编辑代理组的过滤节点、引入所有出站代理、添加前置代理组);src/locales/zh/profiles.json L68-L69、L76-L77(菜单名);src/locales/zh/shared.json L99、L105-L106、L118(保存提示文案))\n- cvr-changelog-md-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/blob/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576/Changelog.md(v2.5.5 修复问题 L9(DNS 覆写中已填写的字段被 Merge 或 Script 覆盖,空字段继续使用扩展配置)、L10(Merge 覆写 DNS 策略、过滤条件和 hosts 时旧条目仍被保留);优化改进 L30(编辑窗口提示作用范围、执行顺序与应用设置优先级)、L31(DNS 覆写开关按订阅独立记忆,自动关闭仅影响当前订阅,并提示作用范围)、L34(写入应用接管字段时弹出提示并在扩展日志中记录已丢弃))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(config/config.go L606-L618(UnmarshalRawConfig 用非严格的 yaml.Unmarshal,未知顶层键忽略);adapter/outboundgroup/parser.go L21(`use` or `proxies` missing)、L95-L118(include-all-proxies 加 filter 在运行时按名字筛节点,筛不出时放入 empty-fallback;proxies 与 use 都为空的组报错);component/dialer/dialer.go L58-L73(tcp-concurrent 打开时对解析出的所有地址并发拨号))\n- exp-cvr-extend-config-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-cvr-extend-config-cli-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:24177ea 2026-09-29\n"},"cvr-service-mode":{"id":"cvr-service-mode","type":"faq","title":"Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载","aliases":["Clash Verge 服务模式","Clash Verge 服务模式 要不要装","Clash Verge 服务模式 安全性","clash-verge-service","clash_verge_service","Clash Verge Service 系统服务","TUN 模式需要系统服务","Clash Verge 服务装不上","Clash Verge 修复服务失败","Clash Verge 服务模式卸载","Clash Verge 卸载服务","Clash Verge 卸载服务失败","Clash Verge 切回用户模式","clash-verge-service-uninstall","uninstall-service.exe 找不到","Clash Verge /bin/uninstall-service 找不到","clash-verge-service 退出 Clash Verge 后还在后台运行","Linux 重启后 Clash Verge 服务模式 要重装","Linux deb 升级后 Clash Verge 服务模式没了","Clash Verge Linux 没有 pkexec 服务装不上","sudo: a terminal is required to read the password","Clash Verge 以管理员身份运行 不装服务","C 盘 Everyone 权限 Clash Verge 服务装不上","服务内核未通过安全检查 Sidecar","Clash Verge 服务无法确认内核及所在目录是否安全 已拒绝高权限运行","Clash Verge 服务拒绝启动内核 应用数据目录的所有者不是当前账户","Clash Verge 系统服务当前不可用 继续使用 Sidecar","core path is writable by group or other","core path is not owned by root","has an untrusted write ACE","is writable by an account other than SYSTEM, Administrators or TrustedInstaller","is owned by an account other than SYSTEM, Administrators or TrustedInstaller","clash-verge-service.service systemd","服务无法启动内核 已降级为 Sidecar 模式运行","Clash Verge 服务运行的内核意外停止","Clash Verge 服务 dangerous=0x00010000","Clash Verge 装服务 installation finished without satisfying the requested service and cores","Clash Verge 服务 icacls C 盘 Everyone"],"primary_topic":"tun-and-service","topics":["tun-and-service","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-30","freshness":"current","markdown":"# Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载\n\n主题:`客户端` › `TUN 与服务模式`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-30\n\n**问:** 打开虚拟网卡模式时要求装系统服务(服务模式):这个服务的用途、安全性与位置,服务装不上、修复服务也不成功或被切回 Sidecar 时的处理,以及卸载服务、切回用户模式的方法。\n\n**答:** 服务模式是装进系统、以最高权限常驻的后台服务 clash-verge-service,好让你不用以管理员身份运行也能用虚拟网卡模式;只用系统代理、不开虚拟网卡模式,一般用不着它(Mac 上系统代理被系统拒绝时例外)。点「虚拟网卡模式」开关装好后,首页「运行模式」显示「服务模式」。不想装的 Windows 用户可以改为每次都右键「以管理员身份运行」。修复服务就是把服务重装一遍,会顺带重置服务自己目录的权限;问题出在别处(比如 C 盘根目录的权限)时,反复修复没用。刚升级完软件服务就失效的(Windows 应用内更新后出现「已降级为 Sidecar 模式运行」,Mac 上弹「需要更新系统服务」,Linux 上服务直接被卸掉),重装一次服务。卸载点「虚拟网卡模式」那一行的垃圾桶图标,或运行 clash-verge-service-uninstall(Linux 上没有 pkexec 时界面卸载不成功,要用 sudo 运行这个命令);普通方式重开软件后回到「用户模式」。\n点「虚拟网卡模式」开关弹出「TUN 模式需要系统服务」时:要开虚拟网卡模式(TUN)就点「安装服务」;不想装常驻服务的 Windows 用户,可以改为右键「以管理员身份运行」,同样能开 TUN,只是以后每次都要这样启动。Mac、Linux 上以最高权限运行整个软件不是常规用法,不想装服务就只用系统代理(作者建议),两者的区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。按你遇到的情况看对应的一节:\n\n- 服务是什么、安不安全、装在哪:「它是什么、安不安全」「装在哪」两节。\n- 升级或覆盖安装软件后服务没了、虚拟网卡模式被关掉(旧版上是开关又灰了):「升级、覆盖安装软件后服务还在吗」。\n- 提示「安装服务失败」「修复服务失败」「已切换到普通模式(Sidecar)」「已降级为 Sidecar 模式运行」「需要更新系统服务」「服务运行的内核意外停止」:「装不上、修复也失败、被切回 Sidecar」,按提示原文找小节。\n- 想卸载服务、切回用户模式:「怎么卸载、切回用户模式」。\n\n## 它是什么、安不安全\n\n服务模式装的是一个以最高权限常驻的后台服务 `clash-verge-service`(Windows 上以 SYSTEM 身份运行,Mac 和 Linux 上以 root 运行),由它替你启动内核(Clash Verge Rev 里真正处理流量的程序 verge-mihomo,见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept))。官方的解释:服务以管理员身份安装并启动后,由它「拉起」内核,内核作为它的子进程也就有了管理员权限,所以服务模式的用途是「能够以非管理员身份启动 TUN 模式」。源码里 TUN 能不能开只看两件事:Clash Verge Rev 本身以管理员身份运行,或者服务可用,满足一个就行。\n\n几件和安全有关的事实:\n\n- **它一直以最高权限运行,退出软件也不会停。** 官方说退出 Clash Verge Rev 后 `clash-verge-service` 会继续在后台运行,这是设计如此,不是没退干净。Linux 版上实测:退出后服务还在,但内核跟着停了,虚拟网卡也没了,不再代理任何流量。不想让它常驻,就按「怎么卸载、切回用户模式」一节卸载。\n- **开机自动启动。** 按源码三个平台都这样装(Windows 一项另经实测):Windows 服务是自动启动,Mac 的 launchd 配置是开机加载、常驻,Linux 是 `systemctl enable`。Linux 版上实测重启一次后服务还在,打开软件直接就是「服务模式」,不用重装;只是在打开软件之前,内核和虚拟网卡都还没起来。\n- **它只运行自己那份内核,而且先查权限。** 服务不直接运行安装目录里的内核,而是运行复制到它自己目录里的那一份。运行前会检查这份内核和它的上级文件夹:所有者必须是系统账户(Windows 上是 SYSTEM、Administrators 或 TrustedInstaller,Mac、Linux 上是 root),普通账户也不能改动它们(Windows 上看的是能不能删除、替换或改权限);Windows、Linux 一直查到磁盘根目录,Mac 查到服务自己的状态目录为止。不合格就拒绝用高权限运行。官方说这是为了防止别的程序借此拿到系统权限。\n\n这对你意味着:服务模式是「用一个常驻的高权限服务,换不用每次以管理员身份启动」。能不能接受由你决定;决定装的话,只装从 GitHub 发布页下载、核对过的安装包(见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)),不开 TUN 的时候也可以不装或卸掉(作者建议)。\n\nMac 上还有一种会让你看到装服务提示的情况:改系统代理时弹出「无法设置系统代理」,对话框说「macOS 以权限不足为由拒绝了这次修改」,装好 Clash Verge 系统服务后改由服务以管理员身份去设置。优先点对话框里的「安装服务」;对话框提到的另一种办法(在系统设置 → 隐私与安全性 → 高级中,关闭「访问系统范围设置需要管理员密码」)关掉后修改系统范围设置不再要求管理员密码、削弱这项保护,本站不把它当作排障步骤(作者建议)。\n\n## 怎么装、装好是什么样\n\n有两个入口(Linux 版上实测,第一个在 Windows 上也实测过):\n\n1. **「设置」→「虚拟网卡模式」开关**:服务没装时点开关,弹出「TUN 模式需要系统服务」,按钮是「稍后再说」「安装服务」。点「安装服务」并完成系统授权,装好后 TUN 自动打开。右上角的提示会说「刚才的系统代理改动已重新应用」,你改的其实是 TUN,这句不用管。\n2. **「首页」→「系统信息」卡片里带下划线的「用户模式」**:点一下就直接安装,没有确认框;这样装**不会**顺带打开 TUN,要用的话再去点开关。\n\n**设置页里没有叫「服务模式」的设置项。** 官方 Windows FAQ 写的是「设置 → 服务模式」,但在 Windows、Linux 版 2.5.6 的设置页里都没有这一项,简体中文语言包里也没有这个设置项名;和服务有关的只有「虚拟网卡模式」那一行上的图标:没装时是警告图标,装好后是垃圾桶图标。\n\n授权方式按源码:Windows 弹出用户账户控制(UAC)窗口,管理员账户点「是」(这半句 Windows 上实测),标准账户会要求输入管理员账户的密码(这半句没有在 Windows 上核对);Mac 弹管理员密码框,提示「安装 Clash Verge 服务需要管理员权限」;Linux 先用 pkexec 弹系统认证窗口,没有 pkexec 时改用 sudo。Linux 版上实测:装了 pkexec 和认证代理 lxpolkit 时,弹出的窗口标题是「认证」(别的桌面的认证窗口标题不一样),输入密码后一两秒装好。实测用的账户本身有管理员权限,输的是自己的登录密码;账户没有管理员权限的,要输入管理员的密码(没有实测)。没有 pkexec、sudo 又要密码时,从界面装服务会直接失败,处理见「装不上」一节。\n\n装好后首页「运行模式」可能显示:「服务模式」、「管理员 + 服务模式」(以管理员身份运行,内核由服务拉起)、「管理员模式」(以管理员身份运行,内核由软件自己拉起:没装服务,或者服务装着但用不了)、「用户模式」(普通权限运行,即 Sidecar,开不了 TUN)、「内核未运行」。\n\n## 装在哪\n\n按源码(Windows、Linux 两行另经实测):\n\n- **Windows**:服务名 `clash_verge_service`,显示名「Clash Verge Service」;程序在 `%ProgramData%\\clash-verge-service\\bin\\`(通常就是 `C:\\ProgramData\\clash-verge-service\\bin\\`),内核副本在同一处的 `cores\\`。安装包每次运行时,不论装不装服务,都会把自带内核复制到 `cores\\`,并给这两份副本各加一条入站允许规则(「Clash Verge Service core (verge-mihomo.exe)」和「Clash Verge Service core (verge-mihomo-alpha.exe)」),加不上只打印警告(Windows 上实测,加不上的情况按源码)。这两条规则只指向 ProgramData 下的副本,只管服务模式,安装包也不给安装目录里的内核加放行规则;以管理员身份运行、不装服务时,内核从安装目录启动,所以官方术语页「使用 TUN 要自己在防火墙里放行内核」的提醒仍然适用(按源码与官方文档;不放行时能不能用,Windows 上没有测到)。\n- **Mac**:launchd 服务 `io.github.clash-verge-rev.clash-verge-rev.service`;配置在 `/Library/LaunchDaemons/`,程序在 `/Library/PrivilegedHelperTools/` 下同名的 `.bundle` 里,内核副本和状态在 `/Library/Application Support/clash-verge-service/`。\n- **Linux**:systemd 单元 `/etc/systemd/system/clash-verge-service.service`;程序、内核副本和状态都在 `/var/lib/clash-verge-service/`。\n\n## 升级、覆盖安装软件后服务还在吗\n\n重启电脑不会让服务消失(Windows、Linux 版上各实测重启一次)。用安装包更新软件时,各平台不一样:\n\n- **Linux:会被卸掉,每次更新后都要重装服务。** deb、rpm 安装包升级或覆盖安装时,会运行旧版安装包里的卸载前脚本,这个脚本不管是卸载还是升级,都会运行服务卸载程序;2.5.2、2.5.5、2.5.6 的这份脚本都一样。Linux 版上实测:用 deb 覆盖安装同一版本、从 2.5.5 升级到 2.5.6,服务都被卸掉,重开软件回到「用户模式」,虚拟网卡模式被自动关掉,而且没有任何提示;rpm 包按源码也会这样,没有实测。Linux 上的应用内更新装的也是同样的 deb、rpm 包,按源码也会卸掉服务,没有实测。这对你意味着:更新后重新装一次服务,从「虚拟网卡模式」开关装的话,装好后它会自动打开。不确定服务在不在,就在终端运行 `systemctl show --property=LoadState --value clash-verge-service.service`:输出 `not-found` 说明服务不在了(Linux 版上实测卸掉后就是这样);输出 `loaded` 说明服务还在,这时仍然反复要重装的,带着这条命令的输出去求助。\n- **Windows:看怎么更新。** 应用内更新时安装器跳过卸载旧版这一步,服务保留:按源码,安装包会先结束正在运行的服务进程,把新版内核放进服务目录,再重新启动服务,服务注册不删;服务程序本身安装包不替换。新版软件要求的服务版本变了时,打开软件会看到「服务无法启动内核,已降级为 Sidecar 模式运行」的黄色提示,按下文「Windows:黄色提示」那一小节重装一次服务。手动运行新版安装器时则不同:「已安装」页默认选「安装前卸载」,会先运行旧版的卸载程序,它会停掉并删除 `clash_verge_service` 这个服务注册,装完服务就不在了,开着的虚拟网卡模式会被悄悄关掉,重新装一次服务即可;在那一页选「请勿卸载」的,服务留着,但打开软件时弹「需要更新系统服务」,右边按钮是「重新安装服务」,点它重装即可。手动运行安装器这两种情况是 Windows 上实测;应用内更新这条路没有在 Windows 上实测,升级后的其他情况见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n- **Mac:** 没有找到安装新版时怎样处理服务的来源。更新后弹「需要更新系统服务」的,按下文对应小节处理。\n\n## 装不上、修复也失败、被切回 Sidecar\n\n**先记住:「修复服务」「重新安装服务」和「安装服务」做的是同一件事,把服务重装一遍**。重装时还会把服务自己的目录(Windows 上是 `C:\\ProgramData\\clash-verge-service` 和里面的 `bin`、`cores`)重设成只有系统账户能改、不继承上级的权限(按源码;Windows 上实测 cores 和服务目录会被这样重设);Linux 版上实测,把服务的内核目录改成组可写后点「修复服务」,权限变回了原样。所以问题出在服务自己的目录时,重装有用;出在它的上级文件夹(`C:\\ProgramData`、C 盘根目录)或别的原因时,反复点修复、卸了重装都没用。下面按你看到的提示原文找对应的小节。\n\n### Windows:黄色提示「服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用。」\n\n这对你意味着:服务没能把内核拉起来,软件改由自己运行内核(用户模式,Sidecar),这次运行开不了 TUN。Windows 上实测,服务停着或被禁用时,打开软件先弹「需要更新系统服务」,点了「继续使用 SIDECAR」才出这条提示,同时还有一条红色「自动关闭 TUN 模式失败」;应用内更新后服务版本和新版对不上时,按源码是只出这条提示、一般不弹那个对话框(Windows 上没有实测)。\n\n第一步:「需要更新系统服务」对话框还在的(点了「继续使用 SIDECAR」后它会停在「正在确认系统服务状态及当前运行模式,请稍候……」),点里面的「修复服务」(Windows 上实测);对话框已经关了的,到「设置」点「虚拟网卡模式」开关,在弹出的「TUN 模式需要系统服务」里点「安装服务」,把服务重装一遍(按源码)。重装后换成下一小节那条「服务无法确认内核文件……」警告的,按下一小节处理;还是这条提示的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,带着它去求助;不想折腾的,可以以管理员身份运行(做法见下一小节)。\n\n### Windows:警告「服务无法确认内核文件及所在目录是否安全,已拒绝高权限运行。」\n\n完整提示后面还有「已切换到普通模式(Sidecar),普通权限下无法使用 TUN。……」,不会自己消失,下面带「查看修复方法」链接。这对你意味着:服务其实装上了,但它的权限检查没通过,拒绝用高权限运行内核,软件退回普通模式。官方给了两条路:\n\n**不想或不会修:以管理员身份运行。** 在托盘图标菜单里退出 Clash Verge Rev(只关窗口不算退出;服务被停掉时「退出」关不掉,到任务管理器结束「Clash Verge」),右键它的快捷方式或 `clash-verge.exe`,选「以管理员身份运行」并允许授权;再出现安装或修复服务的提示时选「继续使用 Sidecar」(对话框里没有这个按钮的,点「稍后再说」),进去后「虚拟网卡模式」没开着的再打开(Windows 上实测,点完「继续使用 SIDECAR」它可能已经开着)。以后每次都要这样启动,首页会显示「管理员模式」。这几个字带下划线,点一下会直接装服务、没有确认框,不想装就别点(按源码)。这时服务其实还装着,仍以 SYSTEM 身份开机常驻;决定长期这样用的,可以按「怎么卸载、切回用户模式」一节用命令把它卸掉(作者建议)。\n\n**要修:先看报错里的路径。** 右键这条通知复制原始报错,粘贴到记事本里找 `core path` 后面的路径,那就是没通过检查的文件或文件夹(这条通知与它的原文按源码写,Windows 上没有见到);Windows 上实测把 `cores` 改成普通用户也能写时,没出这条通知,启动时直接弹「需要更新系统服务」、右边是「修复服务」,`core path` 只写在日志里、指向 `cores` 里的内核文件,这种直接点「修复服务」就好;写成 `\"\\\\\\\\?\\\\C:\\\\\"` 这样一串反斜杠的,就是 C 盘根目录 `C:\\`。按 2.5.6 的源码和 Windows 上的实测,被检查的是服务在 `C:\\ProgramData\\clash-verge-service\\cores` 里的那份内核,所以这个路径应当是它自己、它的上级(`C:\\ProgramData\\clash-verge-service`、`C:\\ProgramData`)或 `C:\\`,不会是软件的安装目录。按路径分开处理:\n\n- **路径是 `C:\\ProgramData\\clash-verge-service` 或它下面的 `bin`、`cores`**:这是服务自己的目录,按上面说的,重装服务会把它们的权限重设好。直接按本小节末尾重装一次服务(Windows 上实测的是点对话框里的「修复服务」,它会强制重装服务,权限随之重设)。\n- **路径是 `C:\\ProgramData`**:在资源管理器里找到它,右键 →「属性」→「安全」→「高级」,看所有者和权限条目。所有者应为 SYSTEM、Administrators 或 TrustedInstaller,普通账户不应有修改、删除、改权限的权限;官方说,如果权限来自继承(条目的「继承于」一栏有值),要去检查对应的上级目录。\n- **路径是 `C:\\`、后面有 `has an untrusted write ACE`**:是 C 盘根目录本身的权限条目出了问题。报错里的 `sid=S-1-1-0` 是 Everyone,`S-1-5-11` 是 Authenticated Users,`S-1-5-32-545` 是 Users。官方给的对照:Windows 默认只允许 Authenticated Users 在根目录本身创建文件夹,它的「修改」权限只应用于「仅子文件夹和文件」。检查位置是「此电脑 → 本地磁盘 (C:) → 属性 → 安全 → 高级」:找这个用户组的、「应用于」为「只有该文件夹」或以「此文件夹」开头的条目,看它是否允许删除子文件夹及文件、更改权限、取得所有权或完全控制。找到和默认不符的,请懂的人结合系统原来的设置改回默认;自己不会改的,改用以管理员身份运行(作者建议)。这张清单是官方按新版服务写的,2.5.6 上还要再看「删除」这一项,见下一条。\n- **报错里带 `dangerous=0x00010000`**:官方说这只涉及「删除」,通常是根目录本身带有「修改」权限,新版服务不再因卷根目录的「删除」权限拦截,更新后重装服务即可。**对 2.5.6 这还不成立**:这项改动是 2026-09-27 才合进服务组件的,2.5.6 用的是之前的版本(按源码,没有在 Windows 上核对)。在 2.5.6 上要找的,是作用于根目录本身(「应用于」为「只有该文件夹」或以「此文件夹」开头)、允许「删除」的条目,它通常来自一条「修改」权限。眼下更省事的是先以管理员身份运行,等包含这项改动的新版发布后再更新、重装服务(作者建议)。\n- **带 `is owned by an account other than SYSTEM, Administrators or TrustedInstaller`**:是所有者不对。官方提醒不要一律当成「普通账户可写」处理,保留完整报错去求助。\n\n不熟悉 Windows 权限的,请懂的人按上面的位置看,或者直接用以管理员身份运行代替。修好后重新装服务:点「虚拟网卡模式」开关,在弹窗里点「安装服务」,或者点首页的「用户模式」(见「怎么装」一节);垃圾桶图标还在的,先点它卸载再装。官方 FAQ 写的「设置 → 服务模式」在 2.5.6 里没有这一项。\n\n**官方的警告**:不要对整个 C 盘递归执行权限重置、接管所有权或删除用户组权限;不要勾选「使用可从此对象继承的权限项目替换所有子对象的权限项目」,这些操作可能破坏 Windows 和其他软件的权限;普通账户正常的读取权限,以及只允许在根目录创建文件夹的权限,不用删。网上流传的对 C 盘执行的 icacls、takeown 命令(比如 `icacls C:\\ /remove Everyone` 这种删掉用户组权限的写法),就属于官方说的这类操作,不要照抄(作者建议)。\n\n**官方 FAQ 还建议,装在下载目录、桌面这类地方的,重装到默认的 `C:\\Program Files\\Clash Verge`**。照做前知道:手动运行安装器重装时,装的版本和已装的不同,安装器默认选「安装前卸载」(同一版本默认不卸载),服务会随之被删、开着的虚拟网卡模式会被关掉,装完要重新装一次服务(Windows 上实测,见上面「升级、覆盖安装软件后服务还在吗」一节)。另外按 2.5.6 的源码,装服务时软件带着校验值把内核复制过去,服务运行和检查的都是 `%ProgramData%` 下它自己那份,所以只换安装目录多半解决不了(Windows 上实测,装在下载目录再装服务也没有出现这条警告)。\n\n### Windows:对话框「修复服务」\n\n正文说系统服务的安装路径或目录权限未通过安全检查,按钮「稍后再说」「重新安装服务」:点「重新安装服务」(按源码)。重装后变成上面那条警告的,按上面处理。Windows 上没有见到这个对话框:服务自己的目录被改成普通用户可写时,实测弹的是「需要更新系统服务」(按钮「继续使用 SIDECAR」「修复服务」),界面不写原因,点「修复服务」就恢复。\n\n### 对话框「需要更新系统服务」\n\n左边按钮是「继续使用 Sidecar」(Windows、Linux 版上看到的都是大写的 SIDECAR)。Windows 上也会弹:服务停着或被禁用、服务目录被改成普通用户可写、用安装包手动覆盖时选了「请勿卸载」、以管理员身份运行而没装服务(上次退出时虚拟网卡开着)时,都实测弹过;只有应用内更新后,按源码一般不弹、只出上面那条黄色提示(Windows 上没有实测)。按右边按钮分三种(按源码,三种 Windows 上都见过):\n\n- 右边是「修复服务」、正文说系统服务「当前不可用」:Linux 版上实测有两种情况会弹它。一是软件开着时服务被卸掉(比如用命令卸载),十几秒后首页先变成「内核未运行」,再弹这个;二是服务那份内核没通过权限检查,重开软件时弹。后一种点「修复服务」能恢复;前一种本来就想卸服务的,点「继续使用 Sidecar」即可。Windows 上实测:服务停着或被禁用、服务的 cores 目录被改成普通用户可写时,重开软件就弹它,点「修复服务」、在 UAC 里点「是」即回到服务模式。软件开着时服务被停掉,Windows 上 70 秒内界面没有提示、首页仍显示「服务模式」,「退出」也关不掉:到任务管理器结束「Clash Verge」(「详细信息」页里叫 clash-verge.exe),再重开就会弹它。\n- 右边是「重新安装服务」、正文说服务版本「与当前应用要求不符」:多半是刚升级了软件,服务要跟着升级,点它重装即可。当时右上角还提示「端口 7897 已被占用,本次运行改用 7900。设置未更改,下次启动会重新尝试 7897。」的(旧服务的内核还占着 7897),重装后服务拉起的内核先沿用 7900,重开一次软件就回到 7897(Windows 上实测)。\n- 右边是「安装服务」:服务没装,点它安装。以管理员身份运行、打算不装服务的,点「继续使用 Sidecar」:Linux 上以 root 运行、没装服务时实测会弹这一种,点「继续使用 Sidecar」后 TUN 能用,每次运行要点一次。Mac、Linux 上以管理员身份运行不是常规用法,本站不把它当作办法推荐(同 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working))。\n\n「继续使用 Sidecar」只在这次运行期间有效(界面原文「仅在本次会话」),而且普通权限运行时会把 TUN 关掉,服务修好后要自己再打开(按源码,Linux 版上实测;Windows 上实测这次关 TUN 失败,修好服务后虚拟网卡自己回来了)。\n\n### 红色「安装服务失败」「修复服务失败」,后面跟着英文原因\n\n- **Windows**:先确认 UAC 窗口里点的是「是」;还在用 2.5.5 或更早版本的,先升级到 2.5.6 再装,2.5.6 的更新日志修了几种 Windows 服务装不上、用不了的情况(这两步是作者建议);还不行,复制提示原文去求助,其余原因本条覆盖不到。\n- **Linux,原因里有 `sudo: a terminal is required to read the password` 或 `sudo: a password is required`**,结尾是 `elevated installer failed with exit status: 1`(前面有时还有一句 `Not authorized`):软件没能用 pkexec 弹出认证窗口,改用了 sudo,而 sudo 没有地方让你输密码,服务就没装上(实测)。分三种:\n - 刚才在认证窗口点了取消:重新点「安装服务」,在认证窗口输入密码。\n - 系统里没有 pkexec(终端运行 `command -v pkexec` 没有输出):装上 pkexec 和一个图形认证代理。\n - 有 pkexec 却没弹认证窗口:认证代理没在你当前登录的会话里运行(没有实测这种情况)。\n\n 后两种装好后,都要让认证代理在当前登录会话里运行起来(实测是在同一个会话里手动启动 `lxpolkit`),再打开 Clash Verge Rev 重试(作者建议)。实测只在 Ubuntu 24.04 上用过 `pkexec`、`polkitd`、`lxpolkit` 这三个包;其他发行版包名不同,GNOME、KDE 等桌面自带的认证代理没有测。\n- **Mac、Linux,原因里有 `installation finished without satisfying the requested service and cores`**:安装程序最后自检,发现服务或内核没有到位,后面用分号接着每个内核的情况(按源码):\n - `rejected: core path … is not owned by root` 或 `… is writable by group or other`:权限检查没通过。从内核往上,每一级都要属于 root、组和其他用户不能写,Mac 查到 `/Library/Application Support/clash-verge-service` 为止。按报错里的路径检查;不熟悉的话交给懂系统的人。\n - `missing`(内核没装进去)或 `digest mismatch`(装进去的内核和软件带的那份校验值对不上):本条没有对应的处理办法,复制完整提示去求助。\n\n### Mac、Linux:「服务拒绝启动内核:磁盘上应用数据目录的所有者不是当前账户……」\n\n常见于用户目录位于外置磁盘,下面附一条终端命令。这是启动内核时的提示,不是安装失败;提示里写明修复服务解决不了,按它说的在终端运行那条命令,再重启软件(按源码,没有实测)。\n\n### 红色提示「服务运行的内核意外停止」\n\n后面跟着一串英文(服务状态、重启次数、最后一次退出原因)。这对你意味着:服务模式下的内核自己退出了,不是服务没装上(按源码)。先重启内核:「设置」页「Clash 设置」卡片里「Clash 内核」这一行点右边的齿轮,在弹出的窗口右上角点「重启内核」。重启后弹出「需要更新系统服务」、或首页「运行模式」变成「用户模式」的,是服务本身出了问题,按本节上面对应的小节处理。重启失败、报别的错,或者这条提示反复出现的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到服务目录里的 `service_latest.log`,连同这条提示后面的英文和重启时的报错原文一起去求助(作者建议)。\n\n装上了、首页也是「服务模式」,TUN 还是开不了或一开就断网的,转到 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n\n## 怎么卸载、切回用户模式\n\n切回用户模式就是把服务卸掉。卸载后用普通方式重开软件,首页显示「用户模式」,TUN 会被自动关掉(Windows、Linux 版上实测);以管理员身份运行的,显示「管理员模式」,TUN 仍然能用(Windows 上实测)。Linux 上以 root 运行、不装服务时实测还要多一步:每次运行都要在弹出的「需要更新系统服务」里点一次「继续使用 Sidecar」(TUN 关着时是第一次点开关时弹,点完再点一次开关;开着时一启动就弹),TUN 才开得了;Windows 上实测不一样:TUN 关着时点开关不弹框,开着时一启动就弹,点完「继续使用 SIDECAR」虚拟网卡直接就位,不用再点一次开关。Mac、Linux 上本站不推荐以管理员身份运行来代替装服务。\n\n**在界面里卸载**:「设置」→「虚拟网卡模式」那一行的垃圾桶图标(鼠标移上去提示「卸载服务」),点它并完成授权。这个图标只在服务可用时出现:服务还装着却看不到它的(比如被切回 Sidecar、弹过「需要更新系统服务」之后),直接用下面的命令卸载。\n\n**Linux 上要注意**:界面卸载靠 pkexec 弹认证窗口。装了 pkexec 和认证代理的,点垃圾桶会弹「认证」窗口,输入密码后提示「已成功卸载服务」(实测)。在没有 pkexec 的系统上,点垃圾桶会报「卸载服务失败 uninstall service failed: failed to uninstall service with status 1」,服务还在,内核却已经被停掉,首页显示「内核未运行」(实测);原因是界面卸载在找不到 pkexec 时拼出的 sudo 命令带了一个 sudo 不认的参数。在认证窗口点了取消、而 sudo 要密码时,也是同样的报错和状态;反过来,sudo 不要密码的系统上点了取消,服务照样会被卸掉(都是实测)。在终端运行 `command -v pkexec` 没有输出的,或者遇到上面的报错的,直接用下面的命令卸载。\n\n**用命令卸载**:最好先从托盘菜单彻底退出 Clash Verge Rev 再运行命令。软件开着时运行的,十几秒后首页会变成「内核未运行」,接着弹出挡住操作的「需要更新系统服务」,点「继续使用 Sidecar」就回到用户模式(Linux 版上实测)。Windows 上软件开着时卸掉服务,之后「退出」关不掉软件,要到任务管理器结束「Clash Verge」(「详细信息」页里叫 clash-verge.exe)(实测)。官方卸载页写的是旧文件名。Linux 的 `/bin/uninstall-service` 和 Mac 的 `resources/uninstall-service` 在 2.5.6 的安装包里都没有(Linux 实测,Mac 列过安装包里的文件);Windows 的 `uninstall-service.exe` 也已改名为 `clash-verge-service-uninstall.exe`(Windows 安装包里核对过)。2.5.6 的命令:\n\n- **Linux**(deb、rpm 包都装在 `/usr/bin`,rpm 按源码):`sudo /usr/bin/clash-verge-service-uninstall`。实测退出码 0,服务注册全部撤掉。\n- **Mac**:`cd / && sudo \"/Applications/Clash Verge.app/Contents/Resources/resources/clash-verge-service-uninstall\"`(软件自己卸载时也是先 `cd /` 再运行它;文件名按 2.5.6 安装包核对过,命令没有在 Mac 上运行过)。软件装在个人「应用程序」文件夹(按源码,2.5.6 允许从这两处运行)的,改用这一条:`cd / && sudo \"$HOME/Applications/Clash Verge.app/Contents/Resources/resources/clash-verge-service-uninstall\"`(路径放在双引号里时 `~` 不会展开,所以写 `$HOME`)。按源码,它会停掉服务,删掉 LaunchDaemons 里的配置、PrivilegedHelperTools 里的 `.bundle` 和内核副本;官方卸载页 Mac「方法 1」的手动命令只停服务、删 `.bundle`,配置和内核副本还留着。所以优先用这个卸载程序(作者建议)。\n- **Windows**:在资源管理器里打开安装目录下的 `resources` 文件夹(默认是 `C:\\Program Files\\Clash Verge\\resources`),右键 `clash-verge-service-uninstall.exe` →「以管理员身份运行」;或者在以管理员身份打开的命令提示符里运行 `\"C:\\Program Files\\Clash Verge\\resources\\clash-verge-service-uninstall.exe\"`(Windows 上实测)。\n\n**卸载后会留下什么**:Linux 上实测,`/var/lib/clash-verge-service/` 这个目录会留着,里面有服务模式下的日志、运行时配置和 geo 数据,服务程序和内核副本已经删了;它们不会再运行。服务模式下内核的日志也在这里,不在软件数据目录的 `logs/service/` 里(实测)。它不影响以后重新装服务:实测不删这个目录、直接从首页重装,照样进入服务模式,虚拟网卡模式也能打开;想清干净的,确认服务已卸载后手动删掉它,之后也照样能装上(都是实测)。Windows 上实测(运行服务卸载程序):服务注册、`bin\\` 里的服务程序 `clash-verge-service.exe`、整个 `cores\\` 目录和那两条防火墙规则被删;`bin\\` 目录本身、状态文件,以及 `users\\<哈希>\\runtime\\config.yaml` 这份含订阅内容的运行时配置留在 `C:\\ProgramData\\clash-verge-service\\`。按源码:Mac 上会删掉 LaunchDaemons 里的配置、`.bundle` 和内核副本,`/Library/Application Support/clash-verge-service/` 里其余文件留着。\n\n**卸载整个软件时**(按源码,Windows 一条另经实测):\n\n- **Windows** 的卸载程序只停止并删除 `clash_verge_service` 这个服务注册,`%ProgramData%\\clash-verge-service\\` 里的服务程序、内核副本和那两条防火墙规则会留着。想卸干净的,先在界面里点垃圾桶或运行 `clash-verge-service-uninstall.exe`,再卸软件;卸完服务后 `C:\\ProgramData\\clash-verge-service` 目录还在(里面有含订阅内容的运行时配置),确认服务已卸掉后手动删掉它(作者建议)。\n- **Linux** 的 deb、rpm 包在卸载和升级时都会自动运行 `clash-verge-service-uninstall`,所以卸载软件时服务会一并撤掉(升级的情况见「升级、覆盖安装软件后服务还在吗」一节;卸载软件没有实测)。\n- **Mac** 上没有找到删除 app 时顺带撤掉服务的机制,所以先卸服务再删 app(作者建议)。已经删了 app 的:装回同一版本的 app,再运行上面的卸载命令(作者建议);或者按官方卸载页 Mac「方法 1」停掉服务、删掉 `.bundle`,再手动删掉 `/Library/LaunchDaemons/io.github.clash-verge-rev.clash-verge-rev.service.plist` 和 `/Library/Application Support/clash-verge-service/`(按源码,没有在 Mac 上跑过)。\n\n## 验证说明\n\n在 Linux 虚拟机(Ubuntu 24.04、官方 2.5.6 deb)和一台 Windows 11 实体机上实测了装卸服务、服务停止或权限被改后的修复、重启后的状态、用安装包覆盖安装后服务的去留;Mac 只按源码与官方文档核对。限制:\n\n- Mac 没有实机操作;Windows 上标准账户授权、C 盘根目录权限导致的警告没有测,「服务运行的内核意外停止」这条提示没有造出来。\n- Linux 的认证窗口只试了 lxpolkit,跑在没有窗口管理器的虚拟显示器上;GNOME、KDE 等桌面自带的认证代理没有测。\n- 以 2.5.6 为主(Windows 上另用 2.5.2、2.5.5 安装包测了升级与降级),Linux、Windows 各重启一次;rpm 包和应用内更新按源码写。\n\n## 验证\n- **cvr-service-mode-installed**(人):装完服务后,在 Clash Verge Rev「首页」的「系统信息」卡片里看「运行模式」这一行。\n 预期:显示「服务模式」或「管理员 + 服务模式」,设置页「虚拟网卡模式」那一行出现垃圾桶图标(鼠标移上去提示「卸载服务」)。从「虚拟网卡模式」开关装的,开关会自动打开;从首页点「用户模式」装的,TUN 要自己再打开(Linux 版上实测)。仍显示「用户模式」、弹出「安装服务失败」「需要更新系统服务」,或出现带「已切换到普通模式(Sidecar)」「已降级为 Sidecar 模式运行」的提示,算没通过:先回到本条「装不上、修复也失败、被切回 Sidecar」一节,按你看到的提示处理;那一节解决不了,或者装上了但 TUN 仍然不行的,再转到 TUN 开不了那一条。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **cvr-service-mode-removed**(人):卸载服务后,从托盘菜单彻底退出 Clash Verge Rev 再重新打开(Windows 上用命令卸载的,「退出」可能关不掉,到任务管理器结束「Clash Verge」,「详细信息」页里叫 clash-verge.exe),看首页「系统信息」卡片的「运行模式」。Linux 上还可以在终端运行 systemctl show --property=LoadState --value clash-verge-service.service。\n 预期:普通方式打开时,「运行模式」显示「用户模式」,「虚拟网卡模式」开关已关、旁边是警告图标;Linux 那条命令输出 not-found(界面在 Windows、Linux 版上实测,命令只在 Linux 上实测)。以管理员身份打开的,显示「管理员模式」、开关旁没有警告图标,也算卸载成功(Windows 上以管理员身份、Linux 上以 root 打开实测如此);以管理员身份打开时弹出「需要更新系统服务」、右边按钮是「安装服务」的,也说明服务已经不在了,点「继续使用 Sidecar」再看。还显示「服务模式」、垃圾桶图标还在,或命令输出 loaded,说明服务没卸掉:刚才用的是界面卸载的,先按正文用命令卸载再核对一次;用命令卸载后仍是这样的,带着命令输出去求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(「服务模式」一节:服务进程以管理员身份拉起内核,用途是以非管理员身份启动 TUN;clash-verge-service 独立于 CVR,退出 CVR 后继续在后台运行;使用 TUN 需自行放行内核(站点源文件 clash-verge-rev.github.io@be157f4 docs/guide/term.md L20-L26))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(「服务内核未通过安全检查,已切换到普通模式(Sidecar)」(#service-core-permissions):为什么会出现(检查内核文件和各级目录的所有者与访问权限);不想或不会修复:以管理员身份运行的三步;修复权限:右键通知复制原始报错、找 core path、第 2 步重装到默认目录 C:\\Program Files\\Clash Verge、第 3 步「属性 → 安全 → 高级」检查所有者与权限条目;报错指向 C:\\ 时:反斜杠转义、sid 对照、dangerous=0x00010000「新版服务不再因卷根目录的删除权限拦截」、「此电脑 → 本地磁盘 (C:) → 属性 → 安全 → 高级」检查作用于根目录本身的条目;不要对整个 C 盘递归重置权限;仍然无法恢复:is owned by 不要一律按可写处理(站点源文件 clash-verge-rev.github.io@be157f4 docs/faq/windows.md L203-L247))\n- cvr-uninstall:https://www.clashverge.dev/uninstall.html(「卸载说明」:Windows / Linux 方法 1 在虚拟网卡旁边点删除图标;方法 2 写的 uninstall-service.exe、resources/uninstall-service、/bin/uninstall-service 是旧文件名;macOS 方法 1 手动 launchctl 与删除 .bundle(站点源文件 clash-verge-rev.github.io@be157f4 docs/uninstall.md L5-L34))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/core/runstate/health.rs L66-L69(tun_capable = is_admin || service_usable);src/components/shared/proxy-control-switches.tsx(L141-L142 服务可用时才显示卸载图标;L158-L168 服务不可用时点 TUN 开关弹安装引导;L200-L226 警告图标只在 TUN 不可用时显示、卸载图标);src/components/home/system-info-card.tsx(L88-L92、L119-L128 运行模式文字带下划线、点了直接安装服务,条件是内核以 Sidecar 运行,以管理员身份运行时同样成立;L186-L199 运行模式文字按是否管理员与内核由谁运行判断);src/hooks/use-system-state.ts L48-L50(isSidecarMode = mode 为 Sidecar);src-tauri/src/core/manager/lifecycle.rs L597-L683(Windows 上服务不可用或版本不符时直接改用 Sidecar 启动内核,成功后发出降级提示);src-tauri/src/core/runstate/health.rs L73-L87(已接受 Sidecar 时不再要求用户处理服务);src/pages/_layout/utils/notification-handlers.ts L50-L83(「服务运行的内核意外停止」以错误提示显示、附详情)、L118-L125(降级提示以警告显示);src-tauri/src/core/service.rs L47-L50、L1601-L1611(内核意外停止的详情:服务状态、重启次数、最后一次退出原因);src/locales/zh/settings.json L658、L693;src/components/layout/service-migration-dialog.tsx L39-L46、L186-L209(「需要更新系统服务」按服务状态显示安装 / 修复 / 重新安装);src/components/layout/sysproxy-privilege-dialog.tsx L29-L50、L157-L170(确认按钮按请求原因而定:点 TUN 开关弹的安装引导固定是「安装服务」;Windows 安装位置未通过检查时标题「修复服务」、按钮「重新安装服务」;服务已就绪而内核仍以 Sidecar 运行时是「切换到服务模式」);src-tauri/src/core/manager/lifecycle.rs L367-L400(继续使用 Sidecar:本次会话允许 Sidecar,不能带 TUN 时关掉 TUN 并保存);src-tauri/src/cmd/service.rs L36-L105(Windows 上服务拒绝内核时回退 Sidecar;repair_service = ForceReinstallRequired);src-tauri/src/core/service.rs L553-L563(Windows 卸载程序 clash-verge-service-uninstall.exe 在服务程序同目录)、L586-L635(Linux 卸载的提权命令)、L646-L680(macOS 卸载先 cd / 再运行卸载程序)、L682-L695(装服务时把每个内核交给安装程序)、L719-L732(修复即重装)、L884-L891(应用数据目录所有者不符的提示不限平台);scripts/prebuild.mjs L548-L552(服务程序只有 clash-verge-service / -install / -uninstall 三种名字);src-tauri/src/utils/help.rs L272-L289;src-tauri/src/utils/dirs.rs L118-L127;src/components/layout/notice-manager.tsx L24-L29、L56-L110;src/locales/zh/home.json L65-L71、layout.json L23-L51、settings.json L36-L40、L662-L665、L686-L694;crates/clash-verge-i18n/locales/zh.yml L38-L39;src-tauri/packages/windows/installer.nsi L222-L308(已装旧版时默认选「安装前卸载」,L305-L308 更新模式跳过卸载)、L334-L347(安装前卸载运行旧版卸载程序)、L552-L567 与 L905(安装时结束正在运行的服务进程)、L634-L657 与 L964-L982(把新内核用 --install-core 放进服务目录,服务注册还在就重新启动它)、L660-L695、L1097-L1105(卸载软件时只停止并删除 clash_verge_service 服务注册);src-tauri/packages/linux/pre-remove.sh L2(不看参数就运行服务卸载程序);src-tauri/tauri.linux.conf.json L13-L14、L24(deb 与 rpm 共用 pre-remove.sh)、L27-L33(externalBin);src-tauri/src/utils/macos_launch_guard.rs L23-L24、L160-L165(允许从 /Applications 或 ~/Applications 运行);src-tauri/ 与 installer.nsi 里没有直接添加防火墙规则的 netsh 命令(installer.nsi 里和 netsh 有关的只有 L902 的 netsh int tcp res,是重置 TCP 设置),但 installer.nsi L964-L980 复制完文件后不论装不装服务,都对两个自带内核各运行一次 clash-verge-service-install.exe --install-core <路径> --sha256 <摘要>,服务安装程序每放一个内核就加一条入站允许规则(见 cvr-service-ipc-v2-7-4 的 install_service.rs L340-L365、L392-L405))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/packages/linux/pre-remove.sh L2(同样不看参数就运行 /usr/bin/clash-verge-service-uninstall:从 2.5.5 升级时运行的是这份旧脚本))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/packages/linux/pre-remove.sh L2(与 2.5.5、2.5.6 相同))\n- tauri-updater-2-12-0:https://github.com/tauri-apps/plugins-workspace/tree/5baf71a47292d8490f0ba3d53f15224e55c48327(plugins/updater/src/updater.rs L892-L893(Windows 应用内更新给安装器加 /UPDATE)、L1126-L1141(Linux 上应用内更新用 dpkg -i 装 deb、rpm -U 装 rpm,与手动用安装包升级走同一套安装脚本))\n- cvr-changelog-md-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/blob/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b/Changelog.md(v2.5.6 L1-L31:Windows 修复系统隔离权限被误判导致服务模式和 TUN 无法使用、旧版服务状态残留导致无法重装,优化服务安全检查失败提示;macOS 修复部分账户安装或修复服务时无法解析用户组而失败、残留的服务进程导致内核无法启动,优化用户目录在外置磁盘时的提示)\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/channel.rs L11-L19(服务名);src/management.rs L150-L205(每个内核带 --install-core 与 --sha256)、L329-L387(提权:pkexec 或 sudo、osascript、PowerShell -Verb RunAs);src/management.rs L25-L45(installation finished without satisfying the requested service and cores,后接 missing / digest mismatch / rejected 三种结尾);src/bin/install_service.rs L248-L300(只带 --install-core 时只放内核、不重装服务)、L336-L365(Windows 防火墙入站规则)、L367-L381(带 sha256 时不检查内核来源位置)、L392-L406(每个内核各加一条防火墙规则)、L759-L826(macOS)、L828-L879(Linux)、L909-L1035(Windows,AutoStart);src/bin/uninstall_service.rs L15-L87(删内核副本;Windows 另删防火墙规则)、L107-L150(macOS)、L151-L185(Linux)、L187-L269(Windows:删服务注册;L258-L264 只删 bin\\clash-verge-service.exe 与它的 .displaced 副本,bin 目录留着;再删内核副本);src/core/installation.rs L25-L81(只检查服务自己 cores 目录里的内核);src/core/paths.rs L58-L66、L140-L166(装服务时重新设置状态根目录、bin、cores 的权限)、L185-L205(状态目录与 bin、cores);src/core/windows_security.rs L34(安装程序给这些目录设的权限:只有 SYSTEM 与 Administrators 完全控制、不继承上级);src/core/paths/windows.rs L12-L44(状态目录 = ProgramData\\clash-verge-service);src/core/trusted_core_location.rs L25-L103(Linux 查到根目录、macOS 查到服务状态目录为止,要求 root 所有且组和其他用户不可写)、L159-L288(Windows 从内核查到卷根目录,所有者须为 SYSTEM / Administrators / TrustedInstaller,拒绝删除、改权限、取得所有权等权限);resources/systemd_service_unit.tmpl)\n- cvr-service-ipc-root-delete-fix:https://github.com/clash-verge-rev/clash-verge-service-ipc/commit/e8f527942ec8aa19f09f0d666b78c934314e34a3(fix(core): treat DELETE on a Windows volume root as inert)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-tun-mode-not-working-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-broken-after-client-update-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-firewall-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n\n最后修订:51f7ce4 2026-10-02\n"},"cvr-update-failed":{"id":"cvr-update-failed","type":"troubleshoot","title":"Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版","aliases":["Clash Verge 检查更新 失败","Clash Verge 检查更新没反应","Clash Verge 检查更新一直转圈","Clash Verge 应用内更新 失败","Download request failed with status: 404 Not Found","Clash Verge 更新 404","Clash Verge 最新版本 404","Could not fetch a valid release JSON from the remote","Clash Verge 检查更新 updater/update.json 报错","Clash Verge 检查更新 error decoding response body","The signature verification failed","Invalid encoding in minisign data","Clash Verge 更新 签名校验失败","Clash Verge Linux arm64 armhf 应用内更新 失败","Clash Verge 内置 WebView2 版 应用内更新 失败","Clash Verge 更新进度条不动","Clash Verge 更新卡住","Clash Verge 更新下载卡住 无法取消","Clash Verge 点更新没反应","Clash Verge 更新窗口 新版本 v 没有版本号","Clash Verge 后台下载的更新包 存放位置","update_cache pending_update.bin","Clash Verge 新版本已下载完成 是否立即安装","此版本为重大更新 不支持应用内更新","Clash Verge 两台电脑看到的新版本不一样","The signature was created with a different key than the one provided","Clash Verge 更新 Failed to install package","Clash Verge 更新 Failed to move the new app into place","Clash Verge 应用内更新后装到了 C 盘默认目录","Clash Verge 应用内更新后仍然是旧版本","Clash Verge 发布页下载链接 404","Clash Verge 滚动更新版 autobuild 下载链接 404","Clash Verge 前往发布页 vundefined 404"],"primary_topic":"troubleshooting","topics":["troubleshooting","updates","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n**Clash Verge Rev 应用内更新不成,直接去官方发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases> 下载标着 Latest 的那一版手动装上,不必先把应用内更新修好。** 选哪个文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file),下完按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对 sha256。发布页打不开的,Windows、Mac 先在 Clash Verge Rev 首页打开「系统代理」(节点要能用)再用浏览器打开(作者建议)。这里说的是 Clash Verge Rev 软件本身;订阅导入、刷新出错见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed),内核要单独换新见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core),装上了新版却用不了见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n\n想知道原因、能不能在应用里修好,按提示原文对照:\n\n- **「检查更新」弹出 `Could not fetch a valid release JSON from the remote`、`error sending request for url (…)`,或者一直转圈**:连不上更新地址。先完全退出再开,再让更新走代理(Windows、Mac 开「系统代理」,Linux 见下)试一次,不行就手动装。\n- **更新窗口标题只有「新版本 v」,点「更新」没反应**:窗口缺了版本信息,多半是关着「自动检查更新」,打开它再查。\n- **红字 `Download request failed with status: 404 Not Found`**:多半是那一版的文件不在那个地址了,先退出重开再试。\n- **红字 `The signature verification failed` 或 `Invalid encoding in minisign data`**:签名校验不过,不会安装。去发布页手动装,别想办法绕过校验。更新到 2.5.6 时,Linux arm64 上实测一定是这样;armhf 的签名同样是空的,按源码也会这样。\n- **「此版本为重大更新,不支持应用内更新」**:照提示卸载后手动装。\n- **进度条停住几分钟不动**:下载卡在半路,不会超时,要完全退出再开。进度条在走但很慢、几分钟后弹出报错停下的(Windows 上直连实测),先让更新走代理再试,不行就手动装。\n- **发布页或别人转来的下载链接 404**:先点发布说明里你那个系统的链接,打不开再从下方 Assets 列表下同名文件;滚动更新版(autobuild)的旧链接每次重新构建后都会失效。\n\n内置 WebView2 版(Windows)同样适用。上面应用里的提示都在 Linux arm64 上实测过,下载链接 404 是在命令行查的;Windows 上实测了 2.5.5 的更新窗口、进度条很慢和中途报错,报错原文没有记下;Mac 用的是同一个更新组件,按源码文字应当相同,没有实机核对。提示颜色和几句界面文字按 2.5.4-rc 及以后写,2.5.2 上不同,见「还在用 2.5.2 的」一节。\n\n## 应用内更新从哪里取新版\n\n- **按顺序试三个地址,拿到一个就停**:先试两个第三方 GitHub 镜像(项目自己的隐私说明称之为 third-party GitHub mirrors,用来在受限网络里保证能连上),最后才试 github.com;前一个拿到了版本信息,后面的就不再请求(实测)。例外是某个地址回了「成功」、内容却根本不是 JSON(比如一个网页):这时整轮检查直接报错,不再试后面的,按源码报错大概是 `error decoding response body`(没有实测);回的是 JSON、只是不是版本信息的格式,照样换下一个地址,后面的地址也都回错误状态时,最后弹出的是解析那份内容的英文报错(按源码)。从镜像拿到的版本信息里,下载地址也走第一个镜像,第二个镜像给的也是这样。**这对你意味着**:「打不开 GitHub 就更新不了」「能打开 GitHub 就一定能更新」都不对。\n- **不设超时**:Clash Verge Rev 没给检查和下载设超时,更新组件也就不设。第一个镜像连得上却一直不回应时,整轮检查就卡在那里、不会换下一个,实测转圈 5 分钟都不报错,直到退出才停;下载停在半路也一样。\n- **走不走代理**:更新组件读的是系统层面的代理设置。Linux 上只认启动时的环境变量,Clash Verge Rev 的「系统代理」开关对它不起作用(实测);Windows、Mac 上还会读系统代理设置,所以开着「系统代理」、没开「使用 PAC 模式」时,更新请求应当经过 Clash Verge Rev;开了 PAC 模式,写进系统的只有自动配置地址,更新组件不读它(Windows 上实测:开着「系统代理」时重开后的自动检查经过了 Clash Verge Rev,开了 PAC 就不经过;Mac 按源码,没有实机核对)。\n- **内置 WebView2 版(Windows)用另一套更新地址**,只有第一个镜像和 github.com 两个。\n\n## 各种失败是怎么回事\n\n- **连不上更新地址**(upd-endpoints-unreachable):三个地址都回错误状态时提示 `Could not fetch a valid release JSON from the remote`;连接出错时提示 `error sending request for url (…)`,括号里是最后一个连不上的地址,三个都连不上时就是 github.com 那个(实测)。按源码,只有镜像连不上、github.com 回了错误状态时,括号里会是镜像的地址。第一个镜像不回应时一直转圈(实测)。检查失败的提示在 2.5.4-rc 及以后是黄色,2.5.2 上是红色。\n- **更新窗口没拿到自动检查的结果**(upd-dialog-missing-info):更新窗口里的版本号、说明和下载入口,取的是自动检查留下的结果;设置里的「检查更新」自己查一次,但不更新这份结果。关掉自动检查时这份结果不存在,手动检查到新版时窗口标题只剩「新版本 v」,点「更新」什么都不做、也不发请求;这时点「前往发布页」,打开的地址末尾是 `vundefined`,GitHub 上没有这个页面,打开是 404(都实测,开着自动检查的对照打开的是带版本号的页面)。v2.5.4-rc 的更新日志写了「修复关闭自动检查更新后,手动检查更新无效的问题」,对应的提交只改了首页「系统信息」卡片里「最后检查更新」这一处:此前关着自动检查点它,不真的去查,直接说已是最新。2.5.6 里关着自动检查点它,会提示「有可用更新」并跳到设置页,但侧栏不出现 `NEW`,设置页的更新窗口照样是「新版本 v」(实测)。**这对你意味着**:关着自动检查,2.5.6 在应用里完成不了更新;打开「自动检查更新」并保存就行,不用重启(实测)。开着自动检查也可能这样(按源码,没有实测):启动后那次自动检查没查成,或者查的时候还没有这一版,而这份结果不是每次打开窗口都重查(1 小时内不重查,定时每 24 小时刷新一次)。同一个原因,窗口里的版本信息也可能是早先查的,那一版在这期间被撤了,点「更新」就会拿旧地址去下载(按源码)。\n- **重大更新**(upd-break-change):更新说明里写了 break change 的版本,点「更新」直接被拦下,不下载(实测)。后台也不会替你下载;它会发出一条英文通知 `New version v… contains breaking changes. Please update manually.`,但 2.5.6 的界面不显示这类通知(按源码),实测界面上也没看到。\n- **下载地址回了错误**(upd-download-url-error):更新组件照版本信息里的地址下载,服务器回的不是成功就报 `Download request failed with status:` 加状态码,提示两头的反引号是原文的一部分。404 多半是那一版的文件已经不在那个地址了;也可能是镜像没取到文件,或者更新窗口用的是早先那次检查的结果(后两种按源码推断)。有过一个实例:v2.5.4 在 2026-09-20 按正式版发布,应用内更新的版本信息随之指向 `releases/download/v2.5.4/…` 下的文件;后来发布页上只剩预发布 v2.5.4-rc.2,没有 v2.5.4 了(什么时候、怎么变的查不到),旧地址 2026-09-27 查是 404;09-21 13:22Z(UTC)官方手动重新生成了版本信息,改回 v2.5.2。当时点「更新」会不会 404,要看发布页的变动在改回版本信息之前还是之后,这查不到,也没有观察到。现在 v2.5.4 的页面还打得开,但上面没有安装包,只有 GitHub 自动附带的两个源码压缩包;v2.5.4-rc.2 里的文件名仍是 2.5.4(2026-09-27 查)。官方在 2026-09-21 还把版本信息的生成改为跟随发布页上标 Latest 的正式版;这项修改在官方的发布流程里,不在应用里,不用先升级就生效。**这对你意味着**:遇到 404,先完全退出、重开 Clash Verge Rev 再检查一次,还是 404 就手动装 Latest 那一版;一般不是你电脑的问题(作者建议)。其他状态码(例如 502、503)多半是那台下载服务器临时出错,过一阵再试或者手动装(作者建议)。\n- **签名校验不过**(upd-signature-rejected):下载的安装包要用应用内置的公钥核对签名,对不上就不装;整个包下完才核对,所以先下载一阵才报错,实测也没有进入安装。几句报错意思不同:`Invalid encoding in minisign data`(按源码还有 `The signature … could not be decoded`)是版本信息里的签名本身是空的或坏的,跟你下到的文件无关;`The signature verification failed` 是下到的文件和签名对不上(两句都实测过);`The signature was created with a different key than the one provided` 是版本信息里的签名与这个应用内置的公钥对不上(按源码),仅凭这句报错判断不了你装的包是不是被重新打包过;拿不准手上这一版来源的,按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对(作者建议)。**更新到 2.5.6 时,Linux ARM 上会是第一种**:2.5.6 的发布页上 arm64、armhf 的 deb 和 rpm 旁边都没有签名文件(.sig),版本信息里这几项的签名是空的,发版脚本只从这些 .sig 取 ARM 的签名;arm64 上实测从 2.5.5 更新到 2.5.6 报 `Invalid encoding in minisign data`,armhf 没有测。以后的版本,看发布页上 ARM 安装包旁边有没有对应的 .sig。后两种报错正是签名校验要拦的情况:不要找办法绕过,去发布页下载并核对 sha256(作者建议)。\n- **下载停在半路**(upd-download-stalled):实测进度条停在约 1% 处 5 分钟不动、没有提示;再点「更新」没反应,「取消」后重新打开窗口,进度条还在原处,直到退出 Clash Verge Rev 连接才断开。实测里连接一直没断、只是不再来数据;连接真断开的情况没有测。\n- **下载完了但没装上**(upd-install-step-failed):以下按源码。Linux 的 deb、rpm 先弹系统的输密码框,不成再换别的方式要密码(最后是终端里的 sudo),都不成就报 `Failed to install package`;Mac 替换旧的 app 没有权限时请求管理员授权,授权不成报 `Failed to move the new app into place`。Windows 上应用先收起自己的窗口和托盘图标,再启动安装包,由安装器完成;安装包要管理员权限,会先弹「用户账户控制」,点了「否」就不安装,而 Clash Verge Rev 的窗口和托盘图标已经收起,看上去像是退出了,其实进程还在,报错也显示在看不见的窗口里(没有在 Windows 上核对)。**这对你意味着**:这时先在任务管理器里结束 Clash Verge,再打开它或者手动装。官方 FAQ 另说:Windows 上从很旧的版本应用内更新,可能装到 C 盘默认目录,或者更新后仍是旧版本。\n\n## 发布页或别人转来的下载链接 404\n\n- **发布说明里的链接写错了**:v2.5.4-rc.2 的发布说明里,12 个下载链接都写成了 `releases/download/v2.5.4/…`,2026-09-27 实测全部 404;同名文件就在这一版的 Assets 列表里,都能下。标 Latest 的 2.5.6 说明里的 12 个链接当天实测都能用。**这对你意味着**:先点说明里你那个系统的链接;打不开不代表文件不在,展开这一版下方的 Assets 列表,下同名的文件。\n- **滚动更新版(autobuild)的旧链接必然失效**:autobuild 每天 10:00、22:00(UTC,即北京时间 18:00、06:00)检查一次,应用代码有新提交才重新构建;构建一开始就删掉上一版的全部文件,和构建同时进行,不等新文件传上来。2026-09-27 22:00 UTC 那次构建实测:开跑约 2 分钟后旧链接变成 404,之后约 16 分钟里一个安装包都没有,arm64 deb 与 Windows x64 安装包空了约 18 分钟,内置 WebView2 版约 27 分钟。**这对你意味着**:别人转来的 autobuild 链接过了一次构建就打不开;赶上构建时去下,可能一个安装包都没有,过半小时再看。**作者建议**:要稳定就装标着 Latest 的正式版(见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version))。\n- **更新窗口「前往发布页」打开的页面 404**:地址末尾是 `vundefined` 的,是窗口没拿到版本信息,见上面「更新窗口没拿到自动检查的结果」。\n\n## 后台自动下载、「已下载完成」弹窗与安装包位置\n\n「自动检查更新」在「设置 → Verge 基础设置 → 杂项设置」里,默认开着。开着时,启动约 10 秒后后台检查一次,之后每 24 小时一次;有新版就悄悄下载,通过签名校验后放在数据目录的 `update_cache` 文件夹里:`pending_update.bin` 的内容就是更新包(Windows 上是 setup.exe),只是扩展名是 .bin、双击打不开,`pending_update.json` 记着版本号。数据目录可以从「设置 → Verge 高级设置 → 配置目录」直接打开;按源码它在:Windows `%APPDATA%\\io.github.clash-verge-rev.clash-verge-rev`,Mac `~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev`,Linux `~/.local/share/io.github.clash-verge-rev.clash-verge-rev`(Windows、Linux 这两处在 2.5.6 上实测过)。2.5.2 还支持便携方式,用便携方式的,数据目录在程序所在文件夹里(见「还在用 2.5.2 的」)。\n\n- **后台下载失败时界面上不提示**,原因只写在应用日志 `latest.log` 里 `Silent updater: cycle error:` 那一行(实测;日志在哪见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。Linux ARM 更新到 2.5.6 时就是这样:下载完签名校验失败,日志写 `Silent updater: cycle error: Invalid encoding in minisign data`,不留 `update_cache`(arm64 实测;armhf 按同样缺签名文件推断)。侧栏的 `NEW` 按钮只说明前端那次检查发现了新版,跟后台下载成没成无关;关着自动检查时它不会出现。\n- **留下了 `update_cache`、而且里面的版本比正在用的新,下次启动才会问「新版本 (v…) 已下载完成,是否立即安装?」**;没留下的(例如上面 Linux ARM 那种),重启也不会问,直接去发布页手动装;已经手动装上了那一版或更新的版本的,下次启动会把旧缓存悄悄删掉,也不会问(按源码;Windows 上看到过这一步,那次新版是怎么装上的没记清)。点「稍后」照常启动,缓存保留,下次启动再问(实测)。点「立即安装」后会先向服务器再核对一次:服务器上的版本和缓存的不一样(比如那一版被撤下了),就删掉缓存、不装、照常启动;超过 30 秒还没装完,Clash Verge Rev 就不再等、照常启动,安装进程并没有被取消(按源码)。\n- **`update_cache` 能不能删**:能删,删的是还没装的更新包,已经装着的这一版不受影响。按源码,删掉以后下次启动不再问;「自动检查更新」开着的,下次启动约 10 秒后会重新下载一份。**作者建议**先完全退出再删。以上没有实测。\n\n**两台电脑提示的新版本不一样**,按源码有这几种可能:前端的检查结果会保留 1 小时、每 24 小时刷新,后台也是 24 小时查一次,两台电脑查的时间不同,看到的就可能不同;已经下载好的旧版本在启动时先问、之后才向服务器核对;内置 WebView2 版用的是另一套版本信息;版本号带 `+autobuild` 这类后缀的测试版,遇到同号的正式版也会提示更新。2026-09-27 观测时三个更新地址给出的是同一份 v2.5.6 版本信息,没看到镜像比 GitHub 旧(只代表那一刻)。以发布页上标 Latest 的为准。\n\n## 还在用 2.5.2 的\n\n上面的界面描述按 2.5.4-rc 及以后的代码写(2.5.6 实测)。点「检查更新」「更新」时跑的是你手上这个旧版本的代码,2.5.2 上有这几处不同(除便携方式那一条 Windows 上实测过,都按源码,没有实测;更早的版本没有逐一核对):\n\n- 「检查更新」失败也是**红色**提示,所以不能靠颜色区分检查失败和下载失败,要看原文。\n- 更新窗口没有说明时,正文是英文 `New Version is available`,不是「有新版本可用」。\n- 关着「自动检查更新」时点首页「最后检查更新」,会直接说「当前已是最新版本」,其实没有去查。\n- Windows 上两条安装路径都不带语言参数,安装器可能都弹选语言的小窗(见上面修复步骤里点「更新」那一步)。\n- 支持便携方式:程序所在文件夹里有 `.config/PORTABLE` 时,数据目录是程序所在文件夹下的 `.config/io.github.clash-verge-rev.clash-verge-rev`,不在上面列的位置。\n\n更新组件报错的原文(`Could not fetch…`、`Download request failed with status`、签名那几句、`Failed to install package`)与 2.5.6 用的版本相同。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.6 的源码、它用的更新组件的源码和官方文档核对,旧版的差别对照了 2.5.2、2.5.4-rc 的源码;在 Linux 虚拟机(Ubuntu arm64,官方 2.5.6 deb)上用假的更新服务逐项做出了上面各种失败,并实测了关着自动检查、「前往发布页」和代理的影响;发布页链接、三个更新地址和滚动更新版的清理,用只读的网络请求实测;在 Windows 11 实机上实测了 2.5.5 的检查更新与下载、后台下载、系统代理与 PAC 的影响,以及手动运行安装包。\n\n- Linux 只测了 arm64 的 deb 包;Mac 没有实机核对;Windows 上应用内更新运行安装器那一段(选语言的小窗、用户账户控制点「否」)没有实测,只按源码写。\n- 没有走到真正装好的那一步,「立即安装」之后的流程只按源码。\n- 链接状态、三个地址内容一致、autobuild 的空档都只代表 2026-09-27 观测那一刻,autobuild 只在线看了一次构建。\n\n## 取证\n- **upd-check-shows-dialog**:在「设置」页「Verge 高级设置」里点「检查更新」,弹出标题为「新版本 v…」的更新窗口了吗?(弹出了,选「通过」。弹出的提示里有 `Could not fetch a valid release JSON from the remote` 或 `error sending request for url (…)`,或者「检查更新」那一行一直转圈、过了几分钟也不报错,选「失败」;提示的颜色各版本不同,按原文认。提示「当前已是最新版本」、而发布页上标 Latest 的版本号比「Verge 版本」新的,选「无法判断」,直接手动装;两个版本号一样的不是故障,不用往下答,应用内更新只提示正式版,见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version))\n pass → upd-dialog-has-version;fail → upd-endpoints-unreachable;unknown → upd-manual-install\n- **upd-dialog-has-version**:更新窗口的标题里有版本号吗?(「新版本 v2.5.6」这样的,选「通过」;标题只有「新版本 v」、正文只有一句「有新版本可用」(2.5.2 上是英文 `New Version is available`)的,选「失败」。不管「自动检查更新」开没开,只看窗口标题)\n pass → upd-not-break-change;fail → upd-dialog-missing-info;unknown → upd-not-break-change\n- **upd-not-break-change**:点「更新」以后,没有弹出红色提示「此版本为重大更新,不支持应用内更新,请卸载后手动下载安装」吧?(没有,选「通过」;弹出了,选「失败」)\n pass → upd-download-status-ok;fail → upd-break-change;unknown → upd-download-status-ok\n- **upd-download-status-ok**:弹出的提示里没有 `Download request failed with status` 吧?(后面跟着 `404 Not Found` 这类三位数字,提示两头带反引号。没有,选「通过」;有,选「失败」)\n pass → upd-signature-ok;fail → upd-download-url-error;unknown → upd-signature-ok\n- **upd-signature-ok**:弹出的提示里没有 `The signature verification failed`、`Invalid encoding in minisign data`、`The signature was created with a different key than the one provided`,也没有 `The signature … could not be decoded` 吧?别的写法只要带 signature、signed 或 minisign,也算有。这几句都是先下载一阵才弹出来的。(没有,选「通过」;有,选「失败」)\n pass → upd-progress-moves;fail → upd-signature-rejected;unknown → upd-progress-moves\n- **upd-progress-moves**:更新窗口底部的进度条还在往前走吗?(在走,选「通过」;停在同一个位置超过几分钟、也没有任何提示的,或者走得很慢、几分钟后弹出报错就停了的,选「失败」)\n pass → upd-install-finishes;fail → upd-download-stalled;unknown → upd-install-finishes\n- **upd-install-finishes**:(已经装好、「Verge 高级设置」里的「Verge 版本」是新版本号的,不用答这一问,直接按本页最后的核对确认。)下载完之后,没有出现下面这些没装上的迹象吧:Linux 上提示 `Failed to install package`;Mac 上提示 `Failed to move the new app into place`;Windows 上 Clash Verge Rev 的窗口和托盘图标一起消失、再打开版本号却没变;装完版本号没变,或者装到了别的目录。(都没有、可还是没更新成,选「通过」;出现其中一种,选「失败」)\n pass → escalate;fail → upd-install-step-failed;unknown → escalate\n\n## 原因\n- **upd-endpoints-unreachable**(可能性 high)→ 修复 upd-reach-update-server\n- **upd-dialog-missing-info**(可能性 low)→ 修复 upd-refresh-update-info\n- **upd-break-change**(可能性 low)→ 修复 upd-manual-install\n- **upd-download-url-error**(可能性 medium)→ 修复 upd-restart-download\n- **upd-signature-rejected**(可能性 medium)→ 修复 upd-manual-install\n- **upd-download-stalled**(可能性 medium)→ 修复 upd-restart-download\n- **upd-install-step-failed**(可能性 low)→ 修复 upd-manual-install\n\n## 修复\n### upd-reach-update-server\n1. **作者建议**:先确认这台电脑能正常上网、Clash Verge Rev 里的节点能用(见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet))。应用内更新先试两个第三方 GitHub 镜像、最后才试 github.com,所以打不开 GitHub 不一定更新不了,能打开 GitHub 也不保证能更新。\n2. 「检查更新」一直转圈的,先完全退出 Clash Verge Rev 再打开:从托盘菜单点「退出」(Mac 在菜单栏图标里);没有托盘图标的(有的 Linux 桌面没有托盘),在「设置 → Verge 高级设置」里点「退出」。本页后面说的「完全退出」都是这样做。转圈不会自己停:实测转了 5 分钟都不报错,直到退出,挂住的连接才断开。\n3. 让更新请求经过 Clash Verge Rev 自己的代理再试。**Windows、Mac**:在首页打开「系统代理」,然后完全退出 Clash Verge Rev 再打开,等十几秒再点「检查更新」(重开是作者建议:Windows 上实测,重开后那次自动检查的请求经过了 Clash Verge Rev,不重开直接点「检查更新」那一次没看到请求经过)。开了「使用 PAC 模式」时不会经过 Clash Verge Rev,要先把它关掉(Windows 实测;Mac 按源码,没有实机核对)。**Linux**:「系统代理」开关对应用内更新不起作用(实测),要带着代理环境变量启动。先完全退出 Clash Verge Rev,打开终端,运行 `HTTPS_PROXY=localhost:7897 HTTP_PROXY=localhost:7897 clash-verge`,再在打开的窗口里点「检查更新」。7897 是默认的混合代理端口,改过的换成自己的(在「设置 → Clash 设置 → 端口设置」里看)。用这两个环境变量指向本机的混合端口让更新走代理,是实测过的;这一行的写法没有原样实测:实测时主机写的是本机回环 IP,不带协议头按 http 代理处理只按源码。连不上的,把 localhost 换成本机回环 IP 再试。\n4. 弹出「新版本 v…」的窗口后点「更新」,等它下载、安装、重启。下载失败时按提示原文回到上面的对照;下载完以后安装、重启这一段只按源码写,没有实测。按源码,Windows 上从这里点「更新」,安装器可能先弹一个选语言的小窗,选好语言继续就行。这只是从安装器脚本里「没收到语言参数就显示选语言窗口」那一段推的,安装器会记下上次选的语言,装过一次的还弹不弹没有核对。另外,2.5.4-rc 及以后,启动时点「立即安装」那条路径会带上语言参数、不弹这个小窗;2.5.2 两条路径都不带。以上都没有在 Windows 上核对。\n5. 还是检查不到的,不用再折腾应用内更新:去发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases> 下载标着 Latest 的那一版手动装,选文件、安装的做法见本页「手动装新版」那一组(upd-manual-install)。结果和应用内更新一样,都是装上官方发布的安装包。\n验证:upd-version-updated\n\n### upd-refresh-update-info\n1. 「自动检查更新」关着的:打开「设置 → Verge 基础设置 → 杂项设置」里的「自动检查更新」并保存,等十几秒,再回「Verge 高级设置」点「检查更新」。不用重启:实测保存的同时它就查了一次,之后窗口标题里有版本号,点「更新」会开始下载。重启只影响后台悄悄下载,不重启要等到这次启动满 24 小时那一轮(按源码)。首页「最后检查更新」代替不了这一步:2.5.6 里点它会提示「有可用更新」并跳到设置页,但更新窗口照样是「新版本 v」(实测);2.5.2 里点它会直接说「当前已是最新版本」(按源码)。没改过「应用日志等级」的,这一保存会把它存成 Warn,以后要看日志排错时记得改回 Info(见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version))。开着的跳过这一步。\n2. 「自动检查更新」本来就开着、也出现「新版本 v」的:完全退出 Clash Verge Rev 再打开,等十几秒再点「检查更新」。重开会让自动检查重新查一次。按源码,这种情况是启动后那次自动检查没查成,或者查的时候还没有这一版;没有实测。\n3. 不想开自动检查、或者重开以后还是「新版本 v」的,直接去发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases> 下载 Latest 那一版手动装,做法见本页「手动装新版」那一组(upd-manual-install)。\n验证:upd-version-updated\n\n### upd-restart-download\n1. 完全退出 Clash Verge Rev 再打开(托盘菜单或「设置 → Verge 高级设置」里的「退出」)。进度条卡住的,「取消」只关掉更新窗口,卡住的下载还挂着;再点「更新」也没有反应,重新打开窗口时进度条还停在原处(实测)。报 404 的,重开以后更新窗口会换上重新查到的版本信息,原来那份可能是早先查的、已经过时(按源码)。\n2. 重新打开后等十几秒,再点「检查更新」→「更新」。下载又停在半路的,可以先让更新请求走代理再试(本页「让更新请求能到更新地址」那一组(upd-reach-update-server)里「系统代理」或环境变量那一步)。还是 404、还是卡住的,直接去发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases> 下载 Latest 那一版手动装,做法见本页「手动装新版」那一组(upd-manual-install)。\n验证:upd-version-updated\n\n### upd-manual-install\n1. 打开官方发布页 <https://github.com/clash-verge-rev/clash-verge-rev/releases>,找标着 Latest 的那一版(正式版)。先点这一版发布说明里你那个系统的下载链接(官方按系统分好了,例如「64位(常用)」「Apple M芯片」;2.5.6 的这些链接实测都能用);点开是 404 的,再展开这一版下方的 Assets 列表,下载同名的文件:有过说明里的链接全部 404、同名文件就在 Assets 里的情况(实测,见正文「发布页或别人转来的下载链接 404」)。官方文档写的是 Clash Verge Rev 目前只通过 GitHub Release 发布;官方安装页另外列了 WinGet、Scoop(官方注明是社区维护、出了问题不提供支持)和 Arch 的 AUR,用这些装的用同一个包管理器升级(作者建议)。**作者建议**:别从自称官网的下载站、网盘或「国内镜像」下载。发布页打不开或者下载很慢的,Windows、Mac 可以先在 Clash Verge Rev 首页打开「系统代理」(节点要能用),再用浏览器打开发布页下载(作者建议);实在只能从别处拿到安装包的,按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 拿 GitHub 发布页上同名文件的 sha256 核对,一致再装。\n2. 按系统选安装包(官方发布说明里的分法):**Windows** 一般下 `x64-setup.exe`,ARM 电脑下 `arm64-setup.exe`,带 `fixed_webview2` 的是内置 WebView2 版,官方发布说明写「仅在企业版系统或无法安装webview2时使用」,官方安装页的说法是系统缺 WebView2 又装不上时用、普通版打不开面板也可以试;**Mac** 的 Apple 芯片下 `aarch64.dmg`,Intel 芯片下 `x64.dmg`;**Linux** 下和你的系统、芯片对应的 deb 或 rpm。官方从 1.6.6 起就不再发 AppImage(1.6.5 及更早的官方版本有过),2.5.6 也只有 deb 和 rpm(发布页实测,构建配置也是这样);手里是 2.x 版本号的 AppImage,不是官方发的包,**作者建议**换成官方的 deb 或 rpm。拿不准的见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file);下完按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对 sha256。后台自动下载留下的 `pending_update.bin` 内容就是通过了签名校验的更新包(Windows 上是 setup.exe),只是扩展名是 .bin,双击打不开;**作者建议**不要改名拿它去装,到发布页重新下。\n3. 官方说要先卸载再装的有两种情况:一是提示「此版本为重大更新,不支持应用内更新,请卸载后手动下载安装」;二是 Windows 上应用内更新后装到了 C 盘默认目录、或者更新后仍是旧版本,官方 FAQ 的办法是卸载系统里所有的 Clash Verge Rev,再装最新版。**作者建议**:其他情况直接装新版,不用先卸载。卸载前先备份(作者建议):点「设置 → Verge 高级设置 → 配置目录」打开数据目录,完全退出 Clash Verge Rev,再把这个文件夹整个复制到别处(位置见正文「后台自动下载」一节)。备份里有你的订阅地址,只存在自己的电脑或移动盘上,不要传到公开网盘,也不要发给别人。Windows 卸载界面里的「删除应用程序数据」不要勾:它默认不勾,勾了才会删掉配置目录(Windows 实测)。装过系统服务的,卸载和重装对服务的影响见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n4. 安装。**Windows**:**作者建议**先完全退出正在运行的 Clash Verge Rev,再运行下载的 setup.exe,弹出「用户账户控制」时点「是」(安装包要管理员权限,Windows 上实测;应用内更新运行的也是同一种安装包)。**Mac**:官方 FAQ 说,旧版还开着时安装新版会导致两个都损坏,所以先从菜单栏图标退出 Clash Verge Rev;再打开 dmg,把 Clash Verge 拖进「应用程序」替换旧的(作者建议)。按源码,从 macOS 的临时隔离路径(App Translocation)运行时,Clash Verge Rev 会提示你手动拖到 /Applications 或 ~/Applications;从其他不在「应用程序」里的位置运行时,会问要不要自动移过去并重新启动。**Linux**:**作者建议**先完全退出;官方发布说明写的是 deb 用 `apt ./路径`、rpm 用 `dnf ./路径` 安装,例如 `sudo apt install ./Clash.Verge_2.5.6_amd64.deb`。装过系统服务、用虚拟网卡模式(TUN)的:装完如果虚拟网卡模式被关了,或者一打开就弹「需要更新系统服务」,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n验证:upd-version-updated\n\n## 验证\n- **upd-version-updated**(人):打开 Clash Verge Rev,到「设置」页「Verge 高级设置」看「Verge 版本」。\n 预期:「Verge 版本」就是发布页上标 Latest 的那个版本号,订阅和节点还在;用过虚拟网卡模式(TUN)的,它还能打开(打不开见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update))。这时再点「检查更新」还弹 `Could not fetch…`、`error sending request…` 这类检查失败的提示,是这台电脑连不上更新地址,不影响已经装好的新版。手动卸载过、订阅不见了的:完全退出 Clash Verge Rev,先删掉备份文件夹里的 `singleton-instance.json`、`singleton-instance.lock`(2.5.4 以后的配置目录才有),再把它整个复制回「配置目录」原来的位置、覆盖,然后打开看;不删这两个文件,Windows 上 2.5.6 会起不来,提示 `failed to initialize singleton lock: current-user file DACL is not protected`(实测)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/tauri.conf.json L21(createUpdaterArtifacts)、L33-L43(三个更新地址的顺序:两个第三方镜像、最后 github.com;Windows installMode passive);PRIVACY.md L93-L106(前两个是 third-party GitHub mirrors;下载的更新用内置 Minisign 公钥校验;默认开启,可在杂项设置关掉自动检查更新);src-tauri/src/lib.rs L46-L54(更新插件只自定义了版本比较,没有设超时与代理);src/services/update.ts L72-L75(前端检查调 check(options ?? {}),不给超时);src-tauri/src/core/updater.rs L426-L427(后台检查同样不给超时);src-tauri/Cargo.toml L151(tauri-plugin-updater 2.12.0);scripts/updater.mjs L43-L48(正式版清单取 getLatestRelease)、L89 起(各平台签名缺省为空串)、L213-L245(Linux ARM 各项的签名只从 Release 里对应的 .sig 取)、L258-L267(镜像清单里的下载地址都加第一个镜像的前缀);.github/workflows/release.yml L124-L141(发布说明里的下载分法与 apt ./路径、dnf ./路径;L128 内置Webview2版「体积较大,仅在企业版系统或无法安装webview2时使用」)、L409-L410(Linux ARM 作业配了签名私钥)、L419-L426(Linux ARM 作业只上传 deb 与 rpm,不上传 .sig);src-tauri/webview2.x64.json L24-L33(内置 WebView2 版的另一套清单);src/components/setting/setting-verge-advanced.tsx L17、L46-L61(检查更新直接调 checkUpdateSafe、不写自动检查的缓存;没有新版提示最新、出错弹警告、有新版打开更新窗口)、L104-L106(配置目录);src-tauri/src/cmd/app.rs L7-L10(配置目录打开的是 app_home_dir);src/components/setting/mods/update-viewer.tsx L181(更新窗口的版本信息取自 useUpdate)、L228-L240(break change 拦截)、L235-L236(没有说明时点更新直接返回)、L241(下载中再点直接返回)、L270-L277(出错弹红色提示原文)、L308-L319(标题取 updateInfo.version,前往发布页拼 releases/tag/v 加版本);src/hooks/use-update.ts L22-L43(关掉自动检查时不查询;retry 2;staleTime 1 小时,每 24 小时刷新);src/services/query-client.ts L90-L91(staleTime 用作 SWR 的 dedupingInterval);src/components/layout/update-button.tsx L17-L19(侧栏 NEW 按钮只看前端检查结果);src/components/setting/mods/misc-viewer.tsx L42、L60-L67(应用日志等级没设置时按 warn 显示并随保存写回);src-tauri/src/config/verge.rs L95、L354(proxy_auto_config,默认关)、L375(自动检查更新默认开);src-tauri/src/core/sysopt.rs L440-L462(开了 PAC 模式时只设自动配置、不设全局代理);src-tauri/src/core/updater.rs L44-L63(update_cache/pending_update.bin 与 pending_update.json)、L104-L109(is_build_to_stable)、L152-L186(启动时询问已下载的更新,稍后保留缓存)、L162-L171(缓存版本不高于当前版本就删缓存)、L200-L209(只有启动安装这条路径给 Windows 安装器加 /LANG)、L240-L251(服务器版本与缓存版本不同就删缓存)、L259-L296(安装放在 spawn_blocking 里、只等 30 秒,超时不取消安装)、L442-L455(break change 不下载,只发英文通知)、L458-L475(下载通过签名校验后才写缓存)、L490-L502(启动 10 秒后检查,之后每 24 小时);src-tauri/src/utils/dirs.rs L12、L28-L32(数据目录是系统数据目录下的 io.github.clash-verge-rev.clash-verge-rev);src-tauri/src/constants.rs L11(默认混合代理端口 7897);src-tauri/src/utils/macos_launch_guard.rs L44-L48(App Translocation 路径)、L207-L233(其他位置询问移动并重启)与 crates/clash-verge-i18n/locales/zh.yml L43、L51-L52;src/pages/_layout/utils/notification-handlers.ts L254-L258(未登记的通知类型只记控制台);src-tauri/tauri.linux.conf.json L5、tauri.windows.conf.json L5、L18、tauri.macos.conf.json L6(Linux 只出 deb、rpm;Windows NSIS 按机器安装;macOS app、dmg);src-tauri/packages/windows/installer.nsi L108-L110(按机器安装时 RequestExecutionLevel admin);src/locales/zh/settings.json L160、L178、L183、L193、L199、L202、L207、L282、L411、L437-L444、L464;crates/clash-verge-i18n/locales/zh.yml L32-L36、L86;src/components/home/system-info-card.tsx L100-L116(首页「最后检查更新」查到新版时提示「有可用更新」并跳到设置页,不打开更新窗口)与 src/locales/zh/shared.json L98;src-tauri/tauri.windows.conf.json L15(NSIS 开了语言选择框)、src-tauri/packages/windows/installer.nsi L480-L497(没有 /LANG 参数时显示语言选择框);.github/workflows/autobuild.yml L7(滚动更新版每天 10:00、22:00 UTC 定时)、L121-L134(清理旧文件的作业与各平台构建作业都只等 check_commit、update_tag,同时开始);.github/workflows/clean-old-assets.yml L141-L147、L179-L185(删掉文件名不含这次 autobuild 版本号的全部文件,只留 latest.json);src/components/setting/setting-verge-advanced.tsx L146-L151 与 src/locales/zh/settings.json L205(「Verge 高级设置」里的「退出」);src-tauri/src/core/updater.rs L152-L157(启动时读不到缓存就不问)、L160-L172(缓存的版本不高于正在用的版本时删掉缓存、不问)、L412-L421(关着自动检查不下载;本次运行已下载过就不再下载);src-tauri/packages/windows/installer.nsi L150-L152(安装器把选过的语言记在 HKCU 的 Installer Language)、L412-L447(卸载确认页加「删除应用程序数据」复选框,没有设为勾选)、L1288-L1303(勾上且不是更新时才删 $APPDATA 与 $LOCALAPPDATA 下的配置目录))\n- cvr-updater-follow-latest-release:https://github.com/clash-verge-rev/clash-verge-rev/commit/d7e0126586edbd40d5b278819e217d5d2d71b311(fix(updater): follow the latest stable release——scripts/updater.mjs 由「取最新的 vX.Y.Z tag,再按 tag 取发布」改为 getLatestRelease;scripts/updater-fixed-webview2.mjs 同样改动。父提交 5059cdc 的 scripts/updater.mjs L43-L59(按 /^v\\d+\\.\\d+\\.\\d+$/ 挑第一个正式版 tag,交给 processRelease)、L350-L352(按 tag 取发布返回 404 时只打一行 Release not found … skipping,不写清单))\n- tauri-updater-2-12-0:https://github.com/tauri-apps/plugins-workspace/tree/5baf71a47292d8490f0ba3d53f15224e55c48327(plugins/updater/src/updater.rs L457-L574(逐个试地址,非 2xx 只记日志、不清掉先前的连接错误,连接出错记下错误,最后报最后一个错误或 ReleaseNotFound)、L536(回 2xx 但内容根本不是 JSON 时直接返回错误,不再试后面的地址)、L538-L552(是 JSON 但解析不成版本信息时只记下错误,接着试下一个地址)、L504-L506 与 L698-L699(只有调用方给了超时才设超时)、L717-L722(下载非 2xx 报 Download request failed with status)、L740-L746(下载完再校验签名)、L841-L882(Windows 先跑 on_before_exit 钩子〔L849-L852〕,再用 ShellExecuteW 启动安装包后退出应用;返回值不大于 32 时报系统错误、不退出)、L1126-L1222(Linux deb/rpm 依次试 pkexec、zenity/kdialog 加 sudo、终端 sudo,都不成报 Failed to install package)、L1336-L1375(macOS 替换 .app,没权限时请求管理员授权,失败报 Failed to move the new app into place)、L1535-L1549(签名先按 base64 解码,再按 minisign 格式解析,再校验)、L1606-L1612(签名解码后不是 UTF-8 时报 could not be decoded);plugins/updater/src/error.rs L25(Could not fetch a valid release JSON from the remote)、L51(网络错误显示时两头加反引号)、L60;plugins/updater/Cargo.toml L78、L83(默认开启 system-proxy);plugins/updater/src/lib.rs L120-L123(on_before_exit 钩子就是 app_handle.cleanup_before_exit()))\n- hyper-util-0-1-20:https://github.com/hyperium/hyper-util/blob/b23a13e2b7ee73e15ba008cd9b19dcd2d3861957/src/client/proxy/matcher.rs(L228-L249(读系统代理:所有平台读 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 环境变量;macOS、Windows 另读系统设置,Linux 只读环境变量);L588-L625(macOS 只读 HTTP、HTTPS 代理的开关与地址,不读自动代理配置);L665-L685(Windows 只读 ProxyEnable、ProxyServer、ProxyOverride,不读自动配置脚本);L333-L357(代理环境变量不带协议头时按 http 代理处理))\n- cvr-install:https://www.clashverge.dev/install.html(发布地址:Clash Verge Rev 目前仅通过 GitHub Release 发布,请注意辨别;操作系统的 Windows 标签页:WinGet 安装命令,Scoop 注明为社区维护、不为下游渠道产生的问题提供支持;带 fix_webview2 字样的安装包仅用于系统缺少且无法安装 WebView2 时,无法正常打开面板也可以试(源文件 clash-verge-rev.github.io@be157f4 docs/install.md L11);Linux 部分:用 yay 从 AUR 安装)\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(应用内更新后自动安装到了 C 盘默认目录/应用内更新后仍然是旧版本(旧版本升级有 Break Change;卸载系统中的多个 Clash Verge Rev 后重新安装最新版本))\n- cvr-home-update-check-fix:https://github.com/clash-verge-rev/clash-verge-rev/commit/ef179fcf61e85e5c9141113132e6c603c4137f5d(fix(home): manual update check not working when auto_check_update disabled——提交说明:关掉自动检查时前端查询的键为空,首页「最后检查更新」点下去不真查、直接显示已是最新;改为按真实的键查。改动 src/hooks/use-update.ts(同一提交另有与更新无关的订阅文件修复)。v2.5.4-rc 发布说明里的「修复关闭自动检查更新后,手动检查更新无效的问题」对应这个提交)\n- cvr-repo-v2-5-4-rc:https://github.com/clash-verge-rev/clash-verge-rev/tree/c7ffb212947664bad06482c761de6cfb96368d72(Changelog.md L25(修复关闭自动检查更新后,手动检查更新无效的问题);src/components/setting/setting-verge-advanced.tsx L59(检查更新失败用 showNotice.warning,即黄色提示;由提交 2f09779 从 error 改来);src-tauri/src/core/updater.rs L186-L193(启动安装缓存那条路径给 Windows 安装器加 /LANG,由提交 df66d97 加入))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/components/setting/setting-verge-advanced.tsx L46-L60(检查更新失败用 showNotice.error,即红色提示);src/components/setting/mods/update-viewer.tsx L147-L152(没有说明时正文是 New Version is available);src-tauri/src/core/updater.rs 全文没有 /LANG(两条安装路径都不给安装器传语言参数);src-tauri/src/utils/dirs.rs L21-L39、L42-L54(程序目录下有 .config/PORTABLE 时为便携方式,数据目录在程序目录的 .config 下);Cargo.lock 里 tauri-plugin-updater 2.10.1、minisign-verify 0.2.5)\n- tauri-updater-2-10-1:https://github.com/tauri-apps/plugins-workspace/tree/d6a3898001a4bcc659e045f9501498751b77dbe6(plugins/updater/src/error.rs L25、L51、L60、L77(与 2.12.0 相同的报错原文);plugins/updater/src/updater.rs L691(Download request failed with status)、L839(Windows 启动安装包前先跑 on_before_exit)、L1293(Failed to move the new app into place);plugins/updater/src/lib.rs L109(on_before_exit 就是 cleanup_before_exit))\n- tauri-2-11-6:https://github.com/tauri-apps/tauri/blob/9452ddee5ebefd9b678a94ff003521379df6c9ae/crates/tauri/src/app.rs(L1108-L1120(cleanup_before_exit:清掉托盘图标;Windows 上把所有窗口隐藏))\n- minisign-verify-0-2-5:https://github.com/jedisct1/rust-minisign-verify/blob/3a91d03f86a8462a1af953c2854687d3f953d541/src/lib.rs(L134-L151(各错误的原文:Invalid encoding in minisign data、The signature verification failed、Unexpected signature algorithm、The signature was created with a different key than the one provided);L351-L358(校验时先比对签名与公钥的 key id,不同就报 different key))\n- tauri-nsis-zh:https://github.com/tauri-apps/tauri/blob/8909f221d1515955fc843808032bdc5d62209c96/crates/tauri-bundler/src/bundle/windows/nsis/languages/SimpChinese.nsh(L27(删除应用程序数据))\n- cvr-faq-macos:https://www.clashverge.dev/faq/macos.html(软件包损坏:现有 Verge 正在运行时尝试安装新版本导致两个都损坏)\n- exp-cvr-update-failed-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-update-failed-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-latest-version-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-latest-version-rc2-actions-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-verify-client-download-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:0b77bef 2026-09-30\n"},"devices-per-subscription":{"id":"devices-per-subscription","type":"faq","title":"一个订阅能在几台设备上用:能同时用几台由服务方决定","aliases":["几台设备同时用","几个设备同时用","多台设备同时在线","同时在线设备数","设备数限制","手机电脑同时用"],"primary_topic":"subscription","topics":["subscription","basics"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-30","freshness":"current","markdown":"# 一个订阅能在几台设备上用:能同时用几台由服务方决定\n\n主题:`基础概念` › `订阅`\n适用:any / any / any\n最后验证:2026-09-30\n标记:信息说明\n\n**问:** 一个订阅能在几台设备上用?\n\n**答:** 客户端这边不管一个订阅用在几台设备上;能同时用几台由服务方决定,有无限制、限几台本站未核实,以服务方的说明为准。\n**客户端这边不管一个订阅用在几台设备上;能同时用几台,由服务方(俗称「机场」)决定。** 有无限制、限几台、按设备还是按 IP 算,各家可能不同,本站未核实,以服务方的说明为准。\n\n说客户端不管,依据是:按 Clash Verge Rev 2.5.5、v2rayNG 2.2.6 的源码,客户端下载订阅时带的是链接本身和软件名,不带设备信息,也不另外带你的面板账号;链接里含有用户名和密码时,会一起发出去。在本站自建的测试订阅上实测,两个互不相干的内核实例拉取同一个订阅,同时经同一个节点连上了。别的客户端未逐一核对源码。\n\n## 这对你意味着什么\n\n- **自己的几台设备**:每台设备在客户端里各自导入同一个订阅链接。电脑上 Clash Verge Rev 见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup),v2rayN 见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run),Clash Party 见 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run);安卓上 v2rayNG 见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run),FlClash 见 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run);iPhone、iPad 上的客户端见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)。\n- **想给家人、朋友一起用**:订阅链接相当于连接密码,给出去就是把密码交出去:拿到链接的人通常不用登录你的账号也能连上,对方设备上还会存下同一份密码,之后想收回,只能去问服务方能不能换链接和密码。作者建议别外传,理由见 `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept);服务方允不允许共用,看服务方的规定。\n- **电视、游戏机这类装不了客户端的设备**:可以不导入订阅,改走电脑上的代理,前提是它的网络设置里能填代理,见 `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)(那一条写的是电脑上用 Clash Verge Rev 或 v2rayN 的情况)。本站没有在游戏机上试过。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev、v2rayNG 钉到 commit 的源码核对了下载订阅的请求;在 macOS 命令行上用两个 mihomo 内核实例做过同一订阅同时使用的实验,在安卓模拟器上看过 v2rayNG、sing-box(安卓版)、FlClash、Karing 各自存下的订阅内容。\n\n- 订阅端是本站自建的测试服务,没有接触任何真实服务方,服务方怎样数设备、超出限制时是什么表现都不知道。\n- 同时连接只用裸内核测过,没有在图形客户端上多台同时连;iOS、Windows 没有测。\n\n## 相关条目\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n\n## 来源\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/config/prfitem.rs L266-L267(拉订阅调用 NetworkManager::get);src-tauri/src/utils/network.rs L259-L290(get 转到 get_with_tls_mode)、L158-L200(get_with_tls_mode:链接里的用户名、口令转成 Basic 认证头后从链接去掉,随后发 GET)、L244-L256(请求头只设 User-Agent,未设时默认 clash-verge/v<版本>)、L58-L85(build_client 把这组请求头设为默认头,没有别的))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/util/HttpUtil.kt L146-L169(拉订阅用的请求函数:请求头为 User-agent,默认 v2rayNG/<版本>、Connection: close,链接带 userinfo 时另加 Basic 认证头;只有经本机代理且设了代理账号时另加 Proxy-Authorization)、L198-L210(从链接 userinfo 拼 Basic 认证头);handler/AngConfigManager.kt L558、L574(更新订阅调用的就是上面那个请求函数))\n- exp-subscription-concept-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-subscription-concept-gui-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:91ba4ac 2026-09-30\n"},"dns-in-proxy-clients":{"id":"dns-in-proxy-clients","type":"concept","title":"DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS","aliases":["DNS 解析由谁做","fake-ip 和 redir-host 的区别","fake-ip 和真实 IP 模式","fakeip 假地址","DNS 增强模式 fake-ip redir-host","198.18 开头的假地址","DNS 劫持 dns-hijack","虚拟网卡 DNS 劫持没了","要不要自己设置 DNS 服务器","订阅里的 DNS 设置要不要改","fake-ip-filter 不给假地址的域名"],"primary_topic":"basics","topics":["basics","tun-and-service","routing-rules"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-10-02","freshness":"current","markdown":"# DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS\n\n主题:`基础概念`\n适用:any / any / any\n最后验证:2026-10-02\n标记:信息说明\n\n> 域名要先查成 IP 地址才能连。开着代理时,替你查的可能是系统、内核或节点那一侧:只开系统代理、规则只看域名且连接走节点时,域名原样交给节点去查(走直连的由本机查);规则要按 IP 判断时,内核先在本机查一次。fake-ip 模式下内核直接回一个假地址(实测是 198.18 开头),再按域名分流,走节点时交给节点的仍是域名;真实 IP 模式下程序拿到真地址。虚拟网卡(TUN)靠 DNS 劫持把查询交给内核,劫持没了,程序改用系统 DNS,规则看到的是 IP。一般不用自己配 DNS(作者建议)。\n\n网址里的域名要先查成 IP 地址(DNS 解析)才能连。开着代理时,替你查这一步的可能是系统、客户端里的内核,或者节点那一侧,取决于开的是系统代理还是虚拟网卡(TUN)、内核用 fake-ip 还是真实 IP 模式、规则要不要按 IP 判断。\n\n- **fake-ip**:内核不向外查,直接回一个假地址(实测都是 198.18 开头);程序连这个地址时,内核换回域名、按域名分流,走节点时交过去的也是域名(Linux 上实测,观察 6、7)。所以开着虚拟网卡 ping 出 198.18 开头是正常的。\n- **DNS 劫持**:虚拟网卡把程序发往 53 端口的查询截给内核。劫持没了,程序改用系统 DNS 拿到真实地址,规则看到的是 IP,按域名写的规则可能对不上;节点又访问不到系统 DNS 时,整个上不了网(Clash Party 实测,T1–T3)。\n- **要不要自己配 DNS**:一般不用,用订阅和客户端默认的就行(作者建议)。\n- **检测网站说「DNS 泄漏」**:是在说谁替你查了它的测试域名,见 `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)。\n\n## 谁在替你查域名\n\n- **没开代理**:程序把查询发给系统配的 DNS 服务器(Linux 上实测,观察 3)。\n- **只开系统代理、规则只看域名且连接走节点**:程序把域名原样交给客户端,内核也不查,域名直接交给节点、由节点那一侧去查(Linux 上实测,只有一条走节点的兜底规则,观察 1);命中直连(DIRECT)规则的,由本机内核自己查(见 `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected))。\n- **规则要按 IP 判断**(GEOIP、IP-CIDR 这类没带 `no-resolve` 的规则):内核要先查出 IP 才能比对。实测内核先在本机查了一次,查到的地址只用来比对规则;那次 IP 规则没命中、最终走节点,交给节点的仍是域名,节点又查了一次(观察 2)。内核的 DNS 没启用时,这次查询走系统的 DNS。最终命中直连的,由本机直接连查到的地址(见 `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected))。\n- **开虚拟网卡**:程序照样自己发查询,查询被截给内核(见下文「DNS 劫持」)。\n- **自带加密 DNS 的**(浏览器的「安全 DNS」、安卓的「私人 DNS」):它们自己加密去查,内核的 DNS 接不到。mihomo 文档写明安卓开了私人 DNS 就无法自动劫持 DNS 请求;安卓上实测,私人 DNS 指定了主机名时,FlClash 只看得到 IP、看不到域名(观察 4)。浏览器这一侧没有实测(作者说明)。\n\n**这对你意味着**:按 IP 分流本来就要先知道 IP,这时本机有查询不是故障(作者说明)。分流规则怎么读见 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)。\n\n## fake-ip 与真实 IP:各自的代价\n\nmihomo 内核的 DNS 有两种模式:fake-ip 和 redir-host,没写时默认 redir-host。实测开着虚拟网卡时,Clash Verge Rev(观察 6)、FlClash(观察 1)解析出 198.18 开头的假地址,Clash Party 在 DNS 启用时也是(T2),基于 sing-box 的 Karing 网络检测页显示「FakeIP[ON]」(观察 35)。v2rayNG 2.2.6 默认不用假地址:「启用虚拟 DNS」默认关,手机的 DNS 查询经节点发给设置里预填的公共 DNS(安卓上实测,观察 9、10)。\n\n**fake-ip**:内核直接从一段地址里分一个假地址给程序,不问上游;程序连上来时内核认得这是哪个域名,按域名规则分流(Linux 上实测,观察 6、7)。代价是程序看到的不是真地址:ping 显示 198.18 开头、能不能 ping 通都说明不了什么(作者说明)。`fake-ip-filter` 里列的域名不给假地址,mihomo 文档示例里放的是 `*.lan` 这类局域网域名。\n\n**真实 IP**:连之前得先有人真的向外查一次,比如上面 v2rayNG 经节点问公共 DNS。地址是程序自己查来、内核没经手时,连接到内核只带 IP:命令行内核上实测,它对不上按域名写的规则、落到最后的兜底规则;开了域名嗅探且嗅探得出域名时又能对上(第二部分观察 2、3)。兜底是走节点还是直连,决定了表现是「走错出口」还是「连不上」(作者说明),排查见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)。\n\n## 虚拟网卡的 DNS 劫持\n\nmihomo 文档对 `dns-hijack` 的说明是把匹配到的连接导入内核的 DNS 模块;在 macOS、Windows 上无法自动劫持发往局域网地址的 DNS 请求。实测 Clash Verge Rev 默认的 `any:53` 连直接发给外面服务器的查询也截下了(Linux,观察 9);Windows 上「严格路由」关着时,发往路由器地址的照样拿到真实地址,系统还会经物理网卡另发一份查询,打开「严格路由」后才拦住(Windows 11 实测,观察 1、5)。\n\n**劫持没了会怎样**(Clash Party 2.0.3,Linux 上实测):\n\n- 「DNS 覆写」关着、订阅又没启用 DNS 时,实际运行的劫持被清空,设置页上仍显示 `any:53`,日志也不提示(T1)。\n- 程序改用系统 DNS 拿到真实地址,查询本身被当成普通流量按规则送去节点;网页能开,但规则看到的是 IP 而不是域名(T2)。\n- 人为让节点访问不到系统 DNS 地址后,什么都解析不出来、整个上不了网;恢复劫持后正常(T3)。真实远端节点会不会这样没有测。\n\n**这对你意味着**:开了虚拟网卡上不了网、或者有些网站走错了出口,DNS 有没有交给内核是要查的一环:Clash Party 见 `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working),Clash Verge Rev 见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working),安卓上私人 DNS 的问题见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)。\n\n## 要不要自己配 DNS\n\n一般不用(作者建议)。订阅里可能带着服务方配的 DNS 设置,其中有的专门用来解析节点自己的域名;客户端的「DNS 覆写」会用客户端自己的设置替换它们。实测 Clash Party 2.0.3 打开「DNS 覆写」时先弹框提醒可能导致节点无法连接,打开后订阅写的服务器被换掉(D2);Clash Verge Rev 的覆写窗口写着「如果你不清楚这里的设置请不要修改,并保持 DNS 覆写关闭」(Linux 上实测,观察 4)。\n\n例外是默认就不好用的时候,比如 Clash Party 里订阅没启用 DNS、虚拟网卡因此不接管解析,见 `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)。浏览器的安全 DNS、安卓的私人 DNS 是系统和浏览器自己的设置,与客户端里的 DNS 是两回事;私人 DNS 填了连不上的主机名会让手机什么都查不出来(安卓上实测,观察 5)。\n\n## 「DNS 泄漏」检测说的是什么\n\n检测网站看的是谁来查它的测试域名:查的服务器在你所在地区或运营商那一侧,就报「泄漏」;网页能打开、出口是节点时,代理照样在工作(作者说明)。实测到的来由有两种:规则按 IP 判断时内核在本机查了一次(观察 2);Windows 上只开虚拟网卡、没开「严格路由」时,本地那一侧反而出现,打开后消失(Windows 11 实测,观察 10、11)。要不要管、在 Clash Verge Rev 里怎么查,见 `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)。\n\n## 这些结论是怎么核对的\n\n本条没有新做实验,「实测」都引自已有的验证记录(Linux 虚拟机里的 Clash Verge Rev 2.5.6 与 Clash Party 2.0.3,Windows 11 上的 Clash Verge Rev,安卓模拟器上的 FlClash、v2rayNG、Karing,以及命令行内核),见各句脚注;内核行为按 mihomo 官方文档。\n\n- Linux 与安卓的实验里,节点都在同一台机器或宿主机上;真实远端节点替你解析时问的是哪里的服务器,没有测。\n- macOS 只测过命令行内核,macOS 图形客户端与 iOS 没有实测;sing-box、Xray 内核的 DNS 设置只写了实测看到的现象,没有按它们的文档展开。\n- 「作者说明」「作者建议」是本站作者的解释与建议,不是各客户端官方的说法。\n\n\n## 相关条目\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n\n## 来源\n- metacubex-wiki-dns:https://wiki.metacubex.one/config/dns/(enable(为 false 时使用系统 DNS 解析);enhanced-mode(可选 fake-ip / redir-host,默认 redir-host);fake-ip-range(fakeip 下的 IP 段);fake-ip-filter(这些地址不会下发 fakeip 映射);proxy-server-nameserver(代理节点域名解析服务器,仅用于解析代理节点的域名)。2026-10-02 重新抓取,归一化文本哈希与基线相同)\n- mihomo-docs-tun:https://wiki.metacubex.one/config/inbound/tun/(dns-hijack(dns 劫持,将匹配到的连接导入内部 dns 模块;在 MacOS / Windows 无法自动劫持发往局域网的 dns 请求;在 Android 如开启私人 dns 则无法自动劫持 dns 请求);strict-route(Windows 上添加防火墙规则,阻止普通多宿主 DNS 解析行为造成的 DNS 泄露)。这是 mihomo 内核的文档。2026-10-02 重新抓取,归一化文本哈希与基线相同)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(附加参数 no-resolve(域名开始匹配关于目标 IP 的规则时,mihomo 将触发 dns 解析;no-resolve 跳过这次解析)。2026-10-02 重新抓取,归一化文本哈希与基线相同)\n- exp-dns-leak-detected-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-tun-dns-gui-linux-2026-10-01:验证记录(内部存档,未公开)\n- exp-dns-strict-route-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-android-vpn-connected-no-internet-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-tun-mode-not-working-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:3da4347 2026-10-02\n"},"dns-leak-detected":{"id":"dns-leak-detected","type":"troubleshoot","title":"检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常","aliases":["DNS 泄漏","DNS 泄露","检测出 DNS 泄漏","DNS 泄漏测试显示国内 DNS","DNS 泄露检测显示本地运营商的 DNS","Clash Verge DNS 泄漏","Clash Verge Rev DNS 泄露","开了 TUN 还是 DNS 泄漏","选了 fake-ip 还是检测到 DNS 泄漏","fake-ip 198.18 开头的地址","开了 TUN 解析结果是 198.18","ping 域名显示 198.18","浏览器安全 DNS 与 DNS 泄漏","DNS over HTTPS 与 DNS 泄漏","Windows 严格路由 防 DNS 泄漏"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","tun-and-service","routing-rules"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-29","freshness":"current","markdown":"# 检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-29\n\n检测网站说「DNS 泄漏」「DNS 泄露」,是说替你去查它那个测试域名的解析服务器,在你所在地区或你的运营商那一侧,不在节点那一侧。它只看得到出口那一侧是谁在查,看不到你本机发出了哪些查询;网页能打开、出口是节点,代理就在工作(以上是作者说明,不来自官方文档)。要不要管,看你在不在意这些解析服务知道你访问了哪些域名(作者建议)。在 Clash Verge Rev 里按这个顺序查:\n\n1. **浏览器开着「安全 DNS」**(DNS over HTTPS):浏览器自己加密去查,虚拟网卡模式(TUN)也接不到,测到的多半是浏览器选的那家服务。\n2. **在「代理」页切到「全局」再测,本地那一侧的就不见了**:是规则让内核先在本机查了一次(按源码;规则触发本机查询这件事 Linux 上实测过,「全局」下的对照没有实测)。要不要改见下文。\n3. **全局下还在**:只开了「系统代理」的,打开「虚拟网卡模式」,Windows 上同时打开「严格路由」(只开虚拟网卡时,Windows 还会经物理网卡另发查询,本地那一侧反而会出现);已经开着的,Windows 上打开「严格路由」。\n\n## 198.18 开头、系统 DNS 被改:开着 TUN 时属正常\n\n开着虚拟网卡模式时,程序发往 53 端口的 DNS 查询交给内核:Clash Verge Rev 默认的「DNS 劫持」是 `any:53`(按源码;Linux 上实测,直接发给外面 DNS 服务器的 UDP 查询也被截下);macOS、Windows 上发往局域网地址的除外(按内核文档,Windows 上实测)。Windows 上还有一类截不到:系统会经物理网卡向那张网卡配的 DNS 另发一份查询(哪怕配的是公网 DNS),要打开「严格路由」才拦得住(Windows 11 上实测)。订阅没写 DNS 增强模式、或写的是 fake-ip 时,Clash Verge Rev 让内核用 fake-ip,范围没写就用 198.18 开头的那一段(按源码)。内核直接回一个 198.18 开头的临时地址、不向外查(配置里单独排除的域名除外);程序连这个地址时,内核按域名匹配规则,交给节点的也是域名(按源码,Linux 上实测)。所以 ping 一个域名看到 198.18 开头,说明这次查询交给了内核,能不能 ping 通不用管(作者建议)。这是本机这一侧最方便的检查;检测网站看的是出口那一侧,两者不能互相代替(作者说明)。Windows 上严格路由关着时就是这样:ping 出来是 198.18 开头,检测网站却列出了本地那一侧(实测)。\n\n系统 DNS 被改也是有意的。macOS 上发往局域网地址的 DNS 查询劫持不到(按官方文档),所以打开时系统 DNS 被改成四组数字都是 114 的那个地址(按源码),什么时候改回见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。Windows 上虚拟网卡自己的 DNS 也显示成一个 198.18 开头的地址(按源码,Windows 上实测)。Linux 上 Clash Verge Rev 不改系统 DNS(实测)。\n\n## 几条边界\n\n- 检测网站只测浏览器打开它时的查询。只开系统代理时,不读系统代理设置的程序不经过 Clash Verge Rev,它们在本机自己查域名,检测网站也看不到(作者说明)。\n- 「全局」只用来排查,测完切回「规则」(作者建议):全局下国内网站也走你选的那一项,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。\n- 规则触发的查询发给谁(Linux 上实测):内核 DNS 没开时(订阅没写 DNS、也没开虚拟网卡模式或「DNS 覆写」),发给系统的解析地址;开虚拟网卡模式时 Clash Verge Rev 会打开内核 DNS,没写服务器就用内核自带的默认服务器;打开「DNS 覆写」时用覆写页里的服务器。三种都从本机直接发出去。改这些服务器、改订阅自带的规则属于进阶配置,本条不展开;「DNS 覆写」自动关闭这类问题见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.6 与它带的 mihomo 内核 v1.19.31 的源码、内核官方文档和 Clash Verge Rev 官方 FAQ 核对,在 Linux 虚拟机(Ubuntu 24.04 arm64)里抓包实测了几种开关下本机网卡上的 DNS 查询,在一台 Windows 11 电脑上实测了虚拟网卡模式与「严格路由」开关前后的 DNS 查询和检测网站结果。限制:macOS 没有实际操作,Linux 那台虚拟机没有运行 systemd-resolved(常见的 Ubuntu 桌面有);「全局」下本地那一侧会不会消失、浏览器开着安全 DNS 时测到什么,都没有实测;「严格路由」会不会让 VirtualBox 这类程序出问题没有测。文中「作者说明」「作者建议」指本站作者的解释与建议,不是 Clash Verge Rev 官方的说法。\n\n## 取证\n- **dns-leak-browser-dns-off**:你用来测的浏览器里,「安全 DNS」是关着的吗?(Chrome 在设置里搜「dns」就能找到,是「隐私与安全」→「安全」→「高级」里的「使用安全 DNS」(Windows 上实测);别的浏览器搜「DNS over HTTPS」或「加密 DNS」,各浏览器叫法不同。开着的选「失败」;找不到这一项、拿不准的选「无法判断」,接着往下查)\n pass → dns-leak-global-test;fail → dns-leak-browser-own-dns;unknown → dns-leak-global-test\n- **dns-leak-global-test**:在「代理」页顶部把「规则」切到「全局」,在下面的列表里点一个能用的节点(别停在 `DIRECT`),用同一个检测网站再测一次,**测完切回「规则」**。全局下测出来的解析服务器里,你所在地区、你自己的运营商那一侧的都不见了吗?(不见了选「通过」,还在选「失败」,两次结果看不出区别选「无法判断」)\n pass → dns-leak-rules-lookup;fail → dns-leak-tun-on;unknown → dns-leak-tun-on\n- **dns-leak-tun-on**:「设置」页的「虚拟网卡模式」开着吗?(开关打开、这一行没有橙色三角算开着;只开了「系统代理」的选「失败」)\n pass → dns-leak-tun-dns-bypass;fail → dns-leak-tun-off;unknown → escalate\n\n## 原因\n- **dns-leak-browser-own-dns**(可能性 medium)→ 修复 dns-leak-fix-browser-dns\n- **dns-leak-rules-lookup**(可能性 high)→ 修复 dns-leak-fix-rules-lookup\n- **dns-leak-tun-off**(可能性 medium)→ 修复 dns-leak-fix-tun-off\n- **dns-leak-tun-dns-bypass**(可能性 medium)→ 修复 dns-leak-fix-tun-bypass\n\n## 修复\n### dns-leak-fix-browser-dns\n1. 安全 DNS 开着时,浏览器把域名加密后发给它自己选的那家服务去查,走的是普通的加密连接、不是 53 端口;虚拟网卡模式的「DNS 劫持」只接发往 53 端口的查询(Clash Verge Rev 默认填的是 `any:53`,按源码,Windows 上实测),接不到它。所以这时测出来的多半是浏览器那家服务,反映不了 Clash Verge Rev 的设置(作者说明,没有在浏览器上实测)。想看 Clash Verge Rev 这一侧的情况,先在浏览器设置里关掉安全 DNS 再测(作者建议)。以后开不开由你决定:开着时是那家服务看得到你查了哪些域名,关掉后交给系统和 Clash Verge Rev 这一侧(作者说明)。\n验证:dns-leak-verify-browser-dns\n\n### dns-leak-fix-rules-lookup\n1. 先确认已切回「规则」。全局下没有、规则下有,说明这些查询是内核按规则做的:规则里按目标 IP 判断的那几类(如 GEOIP、IP-CIDR)没带 `no-resolve` 时,内核要先查出域名的 IP 才能比对(按内核文档);走直连(DIRECT)的网站也由内核自己查(按内核文档)。这些查询发给内核 DNS 设置里的服务器(配置里没写服务器时用内核自带的默认值,按源码;没启用内核 DNS 时用系统的 DNS,按内核文档),默认从本机直接连过去、不经过节点;连接交给节点时带的仍是域名,由节点那一侧去连(按源码)。检测网站列出的就是这些服务器。按 IP 分流本来就要先知道 IP,这不是故障(作者说明)。\n2. 要不要改,看你在不在意这几家解析服务知道你访问了哪些域名(作者建议);不在意的,读到这里就可以停了,这是按 IP 分流的正常结果(作者说明)。你自己在「编辑规则」里加过的 IP 类规则,可以打开「跳过 DNS 解析」,做法见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute);只改自己加的规则时,订阅自带的这类规则照样会触发查询,结果可能不变(按内核文档)。改订阅自带的规则、改内核用哪些 DNS 服务器属于进阶配置,本条不展开;「设置」页「DNS 覆写」的设置窗口里也写着「如果你不清楚这里的设置请不要修改,并保持 DNS 覆写关闭」(按源码);订阅自带 DNS 配置的,打开「DNS 覆写」开关时还会先弹「是否开启 DNS 覆写?」,提醒可能导致节点无法连接或部分网站无法访问(Windows 上实测)。**别为了这个一直停在「全局」**:全局下国内网站也会走你选的那一项,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。\n验证:dns-leak-verify-rule-mode\n\n### dns-leak-fix-tun-off\n1. 只开系统代理时,只有自己去读系统代理设置的程序才把连接交给 Clash Verge Rev(按官方文档);浏览器没按系统代理走、或者自己先查了域名时,这次查询由系统按它自己的 DNS 设置直接发出去,内核管不到(按源码推断,没有在浏览器上实测)。在「设置」页打开「虚拟网卡模式」:开着它时,发往 53 端口的 DNS 查询交给内核(按源码;macOS、Windows 上的例外见本条最后一个原因)。**Windows 上同时打开「严格路由」**(点这一行的齿轮,打开「严格路由」,点「保存」):只开虚拟网卡时,Windows 还会经物理网卡向那张网卡配的 DNS 另发一份查询,检测网站反而会列出本地那一侧,打开严格路由后才消失(Windows 11 上实测)。开关打不开、或弹出需要系统服务的对话框,见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working);它和系统代理的差别、要不要一直开着,见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。\n验证:dns-leak-verify-tun-on\n\n### dns-leak-fix-tun-bypass\n1. 先在命令行里 ping 一个网站的域名(Windows 用「命令提示符」,macOS、Linux 用「终端」),看显示的地址,能不能 ping 通不用管。不是 198.18 开头的,可能是虚拟网卡没真正建起来,按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 里看「日志」的那一问确认;也可能是订阅把 DNS 增强模式设成了 fake-ip 以外的值(按源码,这时 Clash Verge Rev 不改它),本条不展开。\n2. **Windows**:点「虚拟网卡模式」这一行的齿轮,打开「严格路由」(默认关着),点「保存」;右上角提示「设置已应用」就生效了,不用关开虚拟网卡(Windows 上实测)。内核文档说,它在 Windows 上添加防火墙规则,挡住 Windows 同时向多个网卡发 DNS 查询造成的泄漏。Windows 11 上实测,严格路由默认关着时就会这样:系统经物理网卡向那张网卡配的 DNS 另发查询,检测网站列出本地那一侧,打开后消失(只测了一台机器)。按源码,它拦的是内核自己和虚拟网卡之外发往 53 端口的连接,所以打开后直接向路由器地址查 DNS 会超时(Windows 上实测),这是它在起作用。文档也说它可能让 VirtualBox 这类程序在某些情况下不正常,出了问题就关回去。\n3. **macOS**:内核文档与官方 FAQ 都说,虚拟网卡模式劫持不到 macOS 发往局域网地址的 DNS 查询;Clash Verge Rev 因此在打开时把系统 DNS 改成四组数字都是 114 的那个地址(按源码,只在 DNS 增强模式是 fake-ip 或没写时改)。在「系统设置 → 网络」里看正在用的网络的 DNS:不是 114 的,关掉再打开一次虚拟网卡模式(作者建议)。**Linux** 上 Clash Verge Rev 不改系统 DNS,发往 53 端口的 UDP 查询(包括直接发给外面服务器的)都被虚拟网卡截给内核(实测,那台虚拟机没有运行 systemd-resolved;TCP 的按源码);照样测到本地一侧的,带着检测结果去求助。\n验证:dns-leak-verify-after-bypass-fix\n\n## 验证\n- **dns-leak-verify-browser-dns**(人):关掉浏览器的安全 DNS 后,用同一个检测网站再测一次。\n 预期:测出来的不再是浏览器选的那家服务,也没有你所在地区或你的运营商那一侧的解析服务器了。还列着本地那一侧的,接着按「全局」那一问查。\n 通过 → resolved;失败 → dns-leak-global-test;无法判断 → dns-leak-global-test\n- **dns-leak-verify-rule-mode**(人):改过「跳过 DNS 解析」后,确认「代理」页顶部选中的是「规则」,打开一个平时要走节点的网页,再用同一个检测网站测一次。\n 预期:网页照常打开;在「规则」下再测,本地那一侧的解析服务器不见了。变少但还在、或者没变的,是订阅自带的规则在触发查询,属于上一步说的进阶配置;不打算改它的,到这里就可以停了(作者说明)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **dns-leak-verify-tun-on**(人):打开「虚拟网卡模式」(Windows 上连同「严格路由」)后,在命令行里 ping 一个网站的域名,看显示的地址;再确认「代理」页顶部是「规则」,用同一个检测网站测一次。\n 预期:地址是 198.18 开头(订阅另设了 fake-ip 范围的,以那里为准),「规则」下测出来的解析服务器里也没有你所在地区或你的运营商那一侧的了。还有的,接着按「全局」那一问查。\n 通过 → resolved;失败 → dns-leak-global-test;无法判断 → escalate\n- **dns-leak-verify-after-bypass-fix**(人):改完后确认「代理」页顶部是「规则」,用同一个检测网站再测一次。\n 预期:「规则」下测出来的解析服务器里没有你所在地区或你的运营商那一侧的了。还在的,或者打开「严格路由」后有程序连不上网的,先把「严格路由」关回去,再带着检测结果和系统版本去求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽`(见 browser-local-network-prompt)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/enhance/tun.rs L13-L59(打开 TUN 且 dns.enhanced-mode 是 fake-ip 或没写时:dns.enable 设为 true、enhanced-mode 没写就写 fake-ip、fake-ip-range 没写就写 198.18 开头、前缀 16 位的那一段;L50-L56 仅 macOS 把系统 DNS 改成四组数字都是 114 的地址;订阅写了别的增强模式时整段不动)、src-tauri/src/enhance/mod.rs L935-L936(先 use_tun,后并入 DNS 覆写)、src-tauri/src/config/clash.rs L61-L66 与 src-tauri/src/constants.rs L63-L66(默认 TUN:dns-hijack 为 any:53、strict-route 为 false)、src/components/shared/proxy-control-switches.tsx L111-L116 与 L201(「虚拟网卡模式」这一行的齿轮打开虚拟网卡设置窗口)、src/components/setting/mods/tun-viewer.tsx L51-L52、L269-L273(「严格路由」开关,默认关)、L291-L302(「DNS 劫持」)、L131 与 L191(「保存」后提示设置已应用)、src/locales/zh/settings.json L104(DNS 覆写)、L486-L494(虚拟网卡模式窗口:严格路由、DNS 劫持)、L512(DNS 覆写窗口提示:如果你不清楚这里的设置请不要修改,并保持 DNS 覆写关闭)、src/locales/zh/proxies.json L4-L6(规则、全局、直连)、src/locales/zh/rules.json L33(跳过 DNS 解析)、src-tauri/src/utils/init.rs L333-L343(DNS 覆写默认内容同样是 fake-ip、同一段地址))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go L317-L408(resolveMetadata:只有规则匹配用到目标 IP 时才按需解析 L336-L350;direct、global 模式不走规则 L399-L407);constant/metadata.go L255-L264 与 adapter/outbound/util.go L15-L33(连接带着域名时,交给节点的是域名);tunnel/dns_dialer.go L30-L84(没开 respect-rules 时,连 DNS 服务器直接拨号、不经过规则与节点);dns/middleware.go L149-L194(fake-ip:A、AAAA 查询直接回假地址,不向上游查;HTTPS、SVCB 回空);listener/sing_tun/dns.go L21-L28(劫持只认 dns-hijack 列出的地址,any 即任意地址的 53 端口);config/config.go L504-L528(dns 默认不启用、enhanced-mode 默认 redir-host、fake-ip-range 默认也是 198.18 开头、前缀 16 位的那一段;配置里没写 nameserver、default-nameserver 时内核自带的默认上游)、L1685-L1689(虚拟网卡地址取 fake-ip-range 开头的 /30);listener/sing_tun/server.go L292-L301(虚拟网卡地址的下一个地址也算 DNS 劫持目标);go.mod L42(sing-tun v0.4.24))\n- metacubex-sing-tun-v0-4-24:https://github.com/MetaCubeX/sing-tun/tree/b50ae28a1409c7bce8e96e6c6966cf57d8ace754(tun_windows.go L82-L96(Windows 上开了自动路由时,把虚拟网卡自己的 DNS 设成虚拟网卡地址的下一个地址)、L187-L357(严格路由:用 Windows 筛选平台放行内核自己与虚拟网卡上的连接,拦截其余发往 53 端口的连接))\n- mihomo-docs-tun:https://wiki.metacubex.one/config/inbound/tun/(dns-hijack(dns 劫持,将匹配到的连接导入内部 dns 模块;在 MacOS / Windows 无法自动劫持发往局域网的 dns 请求);strict-route(在 Windows 中添加防火墙规则以阻止 Windows 的普通多宿主 DNS 解析行为造成的 DNS 泄露;可能会使某些应用程序如 VirtualBox 在某些情况下无法正常工作)。这是 mihomo 内核的文档,不是 Clash Verge Rev 的文档)\n- metacubex-wiki-dns:https://wiki.metacubex.one/config/dns/(enable(为 false 时使用系统 DNS 解析);enhanced-mode(fake-ip / redir-host,默认 redir-host);fake-ip-range(fakeip 下的 IP 段);respect-rules(dns 连接遵守路由规则);nameserver(默认的域名解析服务器);direct-nameserver(用于 direct 出口域名解析))\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(附加参数 no-resolve(域名开始匹配关于目标 IP 的规则时,mihomo 将触发 dns 解析;no-resolve 跳过这次解析;更早的匹配已触发解析时,仍会匹配到带 no-resolve 的目标 IP 类规则))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式(系统代理:程序自发读取「约定」位置的端口信息,并非所有程序都遵守;Tun 模式:通过路由把请求重定向到虚拟网卡,不依赖开发人员))\n- cvr-faq-macos:https://www.clashverge.dev/faq/macos.html(开启Tun模式系统DNS被修改(Tun 无法劫持 MacOS 发往局域网的 DNS 请求;启动 Tun 时修改系统 DNS——这里写的 223 开头的地址与 2.5.6 源码写死的 114 不一致;Tun 下 DNS 由 Mihomo 核心代理,这个 DNS 没有其它意义))\n- exp-dns-leak-detected-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-dns-leak-lna-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-dns-strict-route-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"first-run-setup":{"id":"first-run-setup","type":"howto","title":"第一次用 Clash Verge Rev:从订阅链接到能上网","aliases":["第一次怎么用","新手怎么设置","刚装好怎么配","从零开始设置","怎么开始用","后面还要设置什么"],"primary_topic":"basics","topics":["basics","subscription-import","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 第一次用 Clash Verge Rev:从订阅链接到能上网\n\n主题:`基础概念`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n这一条是**顺利路径**:六步按顺序走完,正常情况下就能上网。每一步都写了「这一步没成时去哪」,所以卡在哪里就从哪里拐出去,不用从头猜。\n\n**这个顺序是作者按依赖关系排的**(官方快速入门给的是同样的流程,但没有说明理由):前三步在确认**配置真的到位了**(订阅下发了、激活了、有节点),后三步在确认**流量真的走出去了**(模式对、选了节点、代理开着)。前三步没成就往下走,后面几步多半白做。\n\n这一条不解释术语表里的每个词,只在用到的地方解释:订阅链接是什么、「规则」和「全局」差在哪、「系统代理」和「虚拟网卡模式」各接管什么程序。想看完整的模式对比去 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。\n\n走完仍然打不开网页的话,按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 走——**它前四问在客户端界面里就能答**,不需要读日志或敲命令。导入报错按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)。「代理」页空着时,2.5.6 会写明是「尚未导入订阅」「尚未激活订阅」「内核暂不可用」还是「未获取到代理信息」,按第三步对应的去向走。**确实没有节点**(「未获取到代理信息」)时,如果刚从「内核暂不可用」点过「重启内核」,先按第三步重新激活订阅(Windows 上实测,内核恢复后要这样节点才回来);仍没有的,先想想有没有弹出过带 `proxy [名称] not found`、「配置校验失败」或「订阅已保存,但未能确认已应用到内核」的提示:有就按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found),不管自己加没加过规则、覆写或脚本;正在用的是自己「新建」的本地配置的,是那份配置里没有节点;导入或更新时弹过失败提示的按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed);都不是的按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查订阅内容。页面空白、代理却照常工作的,官方 FAQ 记为外部控制端口被其他程序占用或外部控制访问密钥含有中文字符,办法是改外部控制监听地址里的端口后退出重启;按源码,2.5.6 的界面已经不经这个端口向内核取数;Linux 上实测 2.5.6 在这种情况下代理页照常,代理页空着要按页面中间的字排查,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)。\n\n适用范围里的「已验证」:Linux 版 2.5.6 在虚拟机里把六步实际走了一遍,Windows 版 2.5.6 在一台 Windows 11 实机上测过导入订阅、代理页、系统代理和装服务后自动开启虚拟网卡模式;macOS 只按 2.5.2 与 2.5.6 的官方文档和源码核对。限制:Linux 虚拟机里没有浏览器,Windows 上也没用浏览器,最后一步都是经系统代理用命令行访问网页代替的;macOS 的「无法设置系统代理」对话框、Windows 上的「系统代理写入失败」提示只按源码写。\n\n## 步骤\n1. 打开左侧「订阅」页,把机场给你的订阅链接粘到顶部的输入框,点「导入」。订阅链接是一串以 `http` 开头的地址,机场的用户面板里能复制到;**它等同于你的账号凭据,不要发给别人、聊天助手或在线工具**。(网站上这一步配有截图)\n 失败时 → 取证 sub-downloads-ok(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))\n2. 导入成功后会多出一张订阅卡片。确认它是**正在使用**的配置:卡片标题是蓝色、左边有一道竖条。**还没有正在使用的配置时(比如第一次导入),新导入的会自动启用**,不用再点;之前已经有正在使用的配置时(包括自己用「新建」建的本地配置),新导入的不会自动启用,要点一下这张卡片——只导入不启用,客户端用的还是上一份配置(Linux 版 2.5.6 实测,2.5.2 源码相同)。(网站上这一步配有截图)\n 失败时 → 取证 sub-downloads-ok(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))\n3. 切到左侧「代理」页,确认节点组里列出了节点。节点组默认是收起的,看不到里面的节点(标题行上有组名、当前选中的那一项和组里有几项),点一下组名那一行就展开(2.5.6 按源码)。这一步是在确认订阅真的下发了配置。**页面中间只写着「直连模式」的**,是右上角的模式选成了「直连」,先换成「规则」再看(2.5.6 实测)。**列表是空的时,2.5.6 会在页面中间写明是哪一种**(2.5.2 没有这些提示):「尚未导入订阅」「尚未激活订阅」——回到前两步,导入订阅或点一下卡片启用它;「内核暂不可用」——客户端没从内核拿到数据(内核没在运行,或者连不上内核),点页面里的「重启内核」,还是这样就按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查;「未获取到代理信息」——正在用的配置里没有可显示的代理组或节点,按下面查;刚在「内核暂不可用」页点过「重启内核」才变成这样的,先到「订阅」页点右上角的火焰图标「重新激活订阅」再看(Windows 上实测,内核文件找回后只点「重启内核」带不回节点)。**看到「未获取到代理信息」,或者用的是 2.5.2、列表空着时**:先想想启动、更新订阅或切换订阅时有没有弹出带 `proxy [名称] not found`、「配置校验失败」或「订阅已保存,但未能确认已应用到内核」的提示——有就按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) 查,**不管你自己加没加过规则**:订阅自己引用了不存在的名字也会这样,那一条里有找服务商的一步。正在用的是自己用「新建」建的本地配置的,是那份配置里本来就没有节点(2.5.6 实测激活这样一份配置显示的就是「未获取到代理信息」),回「订阅」页点一下你导入的那张订阅卡片。导入或更新时弹过失败提示的,按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 看那条提示;都不是的,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查订阅内容。另外,官方 FAQ 记过一种页面空白、代理却照常工作的情况,日志里有 `External controller listen error`,原因是外部控制端口被其他程序占用,或者外部控制访问密钥含有中文字符;官方办法是在「Clash 设置 → 外部控制」里改「外部控制监听地址」中的端口并保存,然后退出并重启程序(2.5.2 与 2.5.6 的界面上,点「外部控制」弹出的对话框里这一项叫「外部控制器监听地址」,开关叫「启用外部控制器」)。按 2.5.6 的源码,界面是经本机的连接点向内核取数的(Linux 上是数据目录下的本地套接字,macOS 上是每个用户临时目录下的本地套接字,Windows 上是命名管道),不经过这个端口;Linux 上实测 2.5.6 打开外部控制、端口被占、密钥含中文,代理页照常列出节点,所以在 2.5.6 上它不是列表空着的原因,详见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)。\n 失败时 → escalate\n4. 在「代理」页把模式选成**「规则」**。官方的定义是:「规则」按配置里的规则决定每个连接从哪里出去,「全局」让所有流量都从你手动选定的那个出口出去(可以是一个节点,也可以是本地网络),「直连」不走代理。**常见的机场配置会在规则里把国内站点走直连、国外走节点**——这是那份配置的安排,不是「规则」模式本身的保证,换一份配置结果就不同。新手用「规则」就行,三者的完整差别见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。(网站上这一步配有截图)\n 失败时 → escalate\n5. 在节点组里点一个节点,确认选中的不是 `DIRECT`(直连)。2.5.6 实测,「规则」模式下刚导入时组里选中的是第一项(那份订阅里是第一个节点,不是直连);「全局」模式下(订阅没有自带 `GLOBAL` 组时)默认选中的才是 `DIRECT`,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。**先随便选一个把链路跑通,再回头挑快的**——这是作者的建议,官方没有规定先选哪个。(网站上这一步配有截图)\n 失败时 → escalate\n6. 切到「设置」页,打开**「系统代理」**。浏览器这类遵守系统代理设置的程序就会经过客户端。**先用它确认浏览器能打开网页**;游戏、命令行这些不遵守系统代理的程序也要接管时,再开「虚拟网卡模式」(它要额外的权限,有时还要给内核放行防火墙,见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy))。**先用系统代理、需要时再开虚拟网卡,是作者的排查建议——官方没有规定两者的开启顺序。**开了它之后还要不要留着系统代理,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。**点开关时可能出现的提示**:开关弹回关、右上角写着「无法开启系统代理:内核尚未运行……」的,是内核没在运行——在「设置」页「Clash 内核」这一行点齿轮,在弹出的窗口里点「重启内核」,再开一次(Linux 版 2.5.6 实测到这句提示,以及点「重启内核」后提示「已重启 Clash 内核」);重启后开关还是弹回、或者「重启内核」本身报错的,按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 查(日志找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。**macOS** 上弹出「无法设置系统代理」对话框的,是系统拒绝了这次修改:对话框说要安装 Clash Verge 系统服务的,优先点对话框里的「安装服务」;对话框提到的另一种办法(在系统设置 → 隐私与安全性 → 高级中,关闭「访问系统范围设置需要管理员密码」)关掉后修改系统范围设置不再要求管理员密码、削弱这项保护,本站不把它当作排障步骤(作者建议)。对话框说「Clash Verge 系统服务已就绪,但内核仍以 Sidecar 运行」的,不用重新安装,点「切换到服务模式」(按源码,没有在 Mac 上实测)。其它提示按提示原文处理,比如「系统代理设置失败,已回退为直连。」,以及 Windows 上的「系统代理写入失败:Windows 系统调用未成功,通常是瞬时故障。请稍后重试。」(按源码,没有实测)。打开「虚拟网卡模式」时弹出「TUN 模式需要系统服务」的,点「安装服务」并完成系统授权:安装成功、内核改由服务运行后会自动开启虚拟网卡模式(Linux、Windows 版 2.5.6 实测装好后首页变成「服务模式」、虚拟网卡模式自动打开);弹出红色「安装服务失败……」,或者提示「已切换到普通模式(Sidecar)」「服务已安装,但内核未通过服务运行」的,就是没开成,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 查(服务是什么也见那一条)。(网站上这一步配有截图)\n 失败时 → 取证 traffic-intercepted(见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet))\n\n## 验证\n- **first-run-page-opens**(人):打开一个你装这个客户端是为了访问的网页。\n 预期:网页正常显示。打不开时按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 逐项排除——那一条**前四问在客户端界面里就能答**,后两问要离开客户端看系统里的其它程序和 hosts 文件。\n 通过 → resolved;失败 → traffic-intercepted(见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet));无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n\n## 来源\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(导入订阅、选择节点与模式、开启系统代理与 Tun 模式)\n- cvr-guide-profile:https://www.clashverge.dev/guide/profile.html(远程订阅:订阅链接导入)\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(代理界面异常,不显示任何内容(日志 External controller listen error;原因:外部控制端口被其他程序占用,或者外部控制访问密钥含有中文字符;解决办法:Clash设置 → 外部控制 → 修改外部控制监听地址中的端口并保存,退出并重启)。源文件 clash-verge-rev.github.io@be157f4 docs/faq/other.md L86-L93)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/config/profiles.rs L202-L204(没有正在使用的配置时,新加入的远程或本地配置直接设为当前配置);src/components/proxy/proxy-empty-state-model.ts L33-L73(代理页空状态的判断顺序);src/components/proxy/use-head-state.ts L22-L23(策略组默认收起)、src/components/proxy/proxy-render.tsx L214-L238(点组名那一行展开或收起);src/locales/zh/proxies.json L45-L68(尚未导入订阅 / 尚未激活订阅 / 内核暂不可用 / 未获取到代理信息及按钮文字);src/components/shared/proxy-control-switches.tsx L152 与 src/locales/zh/settings.json L673(内核没运行时拒绝开系统代理的提示);src/locales/zh/layout.json L41-L45(macOS「无法设置系统代理」对话框,L43 与 L44 是要安装服务、服务已就绪只需切换两种正文)、L50-L51(「TUN 模式需要系统服务」对话框);src/components/shared/proxy-control-switches.tsx L158-L164(没有服务时打开虚拟网卡模式弹出对话框,并带上装好后要恢复的 enable_tun_mode);src/components/layout/sysproxy-privilege-dialog.tsx L101-L150(点「安装服务」后:安装结果是 sidecar 时只提示 permissionFallback 并关掉对话框;重启内核后内核由服务运行(或 Windows 管理员回退)才应用 enable_tun_mode;否则提示内核未通过服务运行);src/locales/zh/settings.json L41(「切换到服务模式」)、L48-L50(安装后的三种结果提示)、L670-L674(系统代理设置失败的几种提示,L674 是 Windows 系统调用失败)、L689(permissionFallback「已切换到普通模式(Sidecar)」);src/components/proxy/proxy-empty-state-model.ts L40(直连模式最先判断);src/locales/zh/shared.json L109-L111(配置校验失败的三种提示);src-tauri/src/feat/profile.rs L215-L221(更新订阅后校验没通过:「订阅已保存,但未能确认已应用到内核」);src-tauri/src/lib.rs L64-L68 与 src-tauri/src/config/clash.rs L84-L92(界面经 external-controller-unix / external-controller-pipe 的本地套接字向内核取数);src-tauri/src/utils/dirs.rs L179-L243(这个连接点的位置:Linux 在数据目录下,macOS 在每个用户的临时目录下,Windows 是命名管道);src/locales/zh/settings.json L54-L57(外部控制对话框:外部控制器监听地址、启用外部控制器)、L109(设置项「外部控制」))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/config/profiles.rs L189-L191(与 2.5.6 相同:没有正在使用的配置时新加入的设为当前配置);src/locales/zh/proxies.json 与 settings.json、layout.json 里没有上述空状态、系统代理与 TUN 服务提示的文字;src/locales/zh/settings.json L47-L50(外部控制对话框同样叫外部控制器监听地址、启用外部控制器)、L102(设置项「外部控制」))\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(规则/全局/直连模式、系统代理 / Tun 模式、服务模式)\n\n最后修订:107dc7f 2026-10-02\n"},"flclash-android-first-run":{"id":"flclash-android-first-run","type":"howto","title":"第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上","aliases":["FlClash 安卓","FlClash 导入订阅","FlClash 添加配置","FlClash 从URL导入","FlClash 没有启动按钮","FlClash 免责声明","FlClash 数据收集说明","FlClash 连接请求","FlClash 未知网络错误","FlClash 网络异常,请检查连接后重试","FlClash 必须为URL","FlClash 网络检测","FlClash 配置名字是一串数字","FlClash arm64-v8a","FlClash armeabi-v7a","FlClash 崩溃分析","FlClash 延迟测试","FlClash Add profile","FlClash Import from URL","FlClash Unknown network error"],"primary_topic":"flclash","topics":["flclash","subscription-import","basics"],"intents":[],"applicability":{"client":["flclash"],"os":["android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-23","freshness":"current","markdown":"# 第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上\n\n主题:`客户端` › `FlClash`\n适用:flclash / android / any\n最后验证:2026-09-23\n\nFlClash 安卓版第一次用,按这个顺序走:从 GitHub Release 下载 APK(不确定就选 `arm64-v8a`)并安装 → 打开后「免责声明」点「同意」、「数据收集说明」点「确定」→ 底部「配置」页点右下角「添加配置」→ 选「URL」,在「从URL导入」框里填订阅链接、点「提交」→ 在「代理」页确认有节点 → 回「仪表盘」点右下角的启动按钮 → 系统弹出 VPN 连接请求时允许 → 在「代理」页点延迟测试,选一个显示毫秒数的节点(别选 DIRECT)→ 看状态栏有没有 VPN 图标,再用浏览器打开一个不开代理时打不开的网页试试。\n\n**还没导入订阅时,仪表盘上没有启动按钮**,这是正常的。**VPN 授权框点了「取消」,FlClash 的计时照样会走、「网络检测」卡片照样显示 IP,看起来像连上了,其实没有**——判断连没连上只看状态栏的 VPN 图标,再用浏览器打开网页确认(第 5 步和最后的验证)。\n\n## 导入时报错,按弹窗文字对照\n\n- **「网络异常,请检查连接后重试」**(Network error, please check your connection and try again):订阅服务器拒绝了请求(实测 403、404 都是这句)。常见原因是链接失效、过期或被服务商拒绝(作者判断)——去服务商面板重新复制链接,或者问服务商。\n- **「未知网络错误」**(Unknown network error):没能从订阅服务器拿到回应。实测连接被拒是这句;按源码,超时、证书或 TLS 错误也是这句。第一次导入发生在启动之前,按源码,这时 FlClash 不走任何代理、直接连订阅服务器,所以订阅地址必须在你当前网络下能直接打开。打不开的话,向服务商要一个能直连的备用订阅地址,或者要一份 Clash 配置文件、从「文件」入口导入(见下一节;按源码,这样导入的不会自动更新)。\n- **一句以 `yaml:` 开头的英文**:拉下来的内容连 YAML 语法都不对(实测一份残缺的 YAML 就是这样),向服务商要 Clash 格式的订阅。订阅格式和客户端对不上的其它表现,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- **输入框下面出现「必须为URL」**:填进去的不是 `http`/`https` 开头的订阅链接。ss、vmess 这类单个节点的分享链接会被拦在这里(实测);按源码,`clash` 开头的一键导入链接也会被拦。模拟器上用中文输入法打出全角的冒号、斜杠也会这样(真机未核对),手打地址时留意。留空是「不能为空」。\n\n## 另外两种导入方式\n\n- **一键导入**:服务商面板的一键导入按钮,如果打开的是 `clash://`、`clashmeta://` 或 `flclash://` 开头、带 `install-config` 的链接(按源码,FlClash 只认这种),FlClash 会先弹一个「添加配置」确认框、显示完整的订阅地址,点「确定」才开始下载,不会悄悄导入。本站是用命令行直接触发这种链接实测的,没有从面板页面点过;手机上装了别的代理客户端时会不会先让你选应用,也没测。按钮点了没反应,就复制订阅链接,按第 3 步从「URL」导入。\n- **文件**:服务商能直接给你 Clash 配置文件的话,存到手机里,从「添加配置」页的「文件」入口选中它。实测这样导入的配置菜单里没有「同步」;按源码,文件配置没有订阅地址,不会自动更新,服务商换了节点要重新拿文件。\n\n步骤里写了常见的没成情况先看什么;解决不了,就把报错原文或截图交给服务商,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址。FlClash 和其他客户端的下载渠道对比见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n## 这几步在确认什么\n\n前四步尽量确认**配置到位了**:装的是项目方发布的包、订阅拉下来了、没有出现内核报错、代理页列出了节点。内容不对但 YAML 语法正确的订阅,点选时不一定有提示,所以这几步排除不了所有问题。后两步在确认**流量真的走出去了**:系统允许 FlClash 建立 VPN、选中了一个通的节点。顺序是作者按依赖关系排的——前面没成,后面多半白做。\n\n## 适用范围与验证方式\n\nFlClash v0.8.98 在 Android 16 模拟器上实机跑过,另外逐条对过 v0.8.98 的源码。\n\n- 没在真机上测过(国产系统的后台限制、通知管理可能让表现不同),也没测其它安卓版本。\n- 实测节点在本机,延迟数字与出口地区都不代表真实线路。\n- 订阅地址是逐字键入的,剪贴板粘贴本身没测。\n\n## 步骤\n1. 只从 GitHub 上项目自己的 Release 页下载:https://github.com/chen08209/FlClash/releases 。官方 README 的下载一节只列了 GitHub Releases、项目自建的 F-Droid 源(安卓)和 Homebrew(macOS),**没有列任何网站**——网上自称「FlClash 官网」「FlClash 下载站」的页面不是项目方声明的渠道。安卓包按处理器架构分三个:`arm64-v8a`、`armeabi-v7a`、`x86_64`,没有通用包。**不确定选哪个就先装 `arm64-v8a`,装不上再换 `armeabi-v7a`**;`x86_64` 是给 x86 架构的设备(比如电脑上跑的安卓模拟器)的,普通手机一般用不上(这两句都是作者判断)。**安装时系统如果提示不允许安装这个来源的未知应用**,点提示框里的设置按钮(英文系统是 Settings),在打开的页面里打开允许这个来源安装的开关(英文系统是 Allow from this source),返回后再点一次安装包就能装(实测,英文系统下提示原文是「isn’t allowed to install unknown apps from this source」;中文系统下的文字、从浏览器下载后直接安装的样子本站没测)。**装好以后把这个开关关回去**:它允许的是提示框里写的那个来源应用(比如文件管理器或浏览器)以后随时安装别的安装包,回到系统设置里管「安装未知应用」的那一页(各品牌叫法可能不同),找到提示框里写的那个来源应用,把刚才打开的「允许这个来源安装」关掉(作者建议;实测收尾时也把这项权限还原了)。以后再从它安装(比如更新 FlClash)时,系统会重新提示,按同样的办法临时打开即可。Release 里还附一个 `SHA256SUMS`,能用来核对从别处拿到的安装包是不是官方发布的同一个文件;它和安装包放在同一个 Release 里,防不住 Release 本身被换掉。直接从上面的 Release 页下载的话,不会核对可以跳过(作者建议)。\n 失败时 → escalate\n2. 第一次打开会连续弹两个框,**都要点过去才能用**。第一个是「免责声明」(英文界面是 Disclaimer),说本软件只供学习交流、科研等非商业用途;只有「退出」「同意」两个按钮,点空白处关不掉,**点「退出」应用会直接关掉**(点错了就重新打开 FlClash;本站没实测点「退出」之后再打开是什么样),点「同意」以后不再弹。第二个是「数据收集说明」(Data collection notice),说应用用 Firebase Crashlytics 收集崩溃信息和设备信息、可以在设置里关闭;只有一个「确定」按钮。**这对你意味着什么**:弹窗的口吻像是默认在收集,但实测全新安装、点完这个框之后,「工具 → 应用程序」里的「崩溃分析」(Crash analytics)开关是**关着的**——点「确定」只是记下「已经提示过」,界面上的这个开关没有被打开。在意的话自己进去看一眼。不过源码里安卓原生层另有一个默认值为「开」的同名设置,它在什么情况下起作用本站没有核实;开关关着是不是就等于一点数据都不发,本站也没有抓包,不作结论。\n 失败时 → escalate\n3. 点底部的「配置」(Profiles),再点右下角带字的「添加配置」(Add profile)按钮,选「URL」,弹出「从URL导入」(Import from URL)框:把服务商给你的订阅链接填进去,点「提交」(Submit)。订阅链接是以 `http` 或 `https` 开头的一串网址;**它等同于你的账号凭据,不要发给别人、聊天助手或在线工具**。成功时对话框直接关掉,配置列表多出一条,**名字可能是一串数字**——服务端没在响应里给文件名时就是这样,不影响使用。弹出报错框、或者输入框下面出现红字时,按正文「导入时报错,按弹窗文字对照」一节处理;服务商面板的一键导入、配置文件这两种导入方式也写在正文里。\n 失败时 → escalate\n4. **导入成功不等于内容能用。** 实测:有些内容 FlClash 能解析、却不是能用的 Clash 配置(比如服务商返回的一段错误信息、sing-box 格式的订阅,甚至是空的),导入时照样收下、新增一条、不报错;另一些不对的内容(比如 base64 分享链接)导入时就会报错,报错原文见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。所以导入后先点一下这条配置(这是你的第一条配置时,按源码 FlClash 已经自动把它设为当前配置),看三处:页面顶部有没有出现**红色横幅**——那是内核拒绝这份配置时给的报错原文(实测一份节点加密方式写错的订阅就是这样);底部有没有多出「代理」(Proxies)——实测错误信息、sing-box 格式的订阅选中后根本没有这一页;有的话点进去,看有没有列出节点。出现红色横幅、底部没有「代理」页,或者代理页没有节点,都先别往下走:把横幅里的报错原文交给服务商(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址,实测横幅里就带着节点的服务器地址和端口),或者按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 核对订阅格式、向服务商要 Clash 格式的订阅。(「没有节点就先别往下走」是作者的排查建议。)\n 失败时 → escalate\n5. 回到「仪表盘」(Dashboard),右下角现在有一个显示全零计时的按钮——**配置列表为空时它根本不显示**,这就是「找不到启动按钮」的原因。点它:Android 13 及以上(版本界限按源码)会先问能不能给你发通知,**允许或不允许都能连上**(不允许的话通知栏里看不到 FlClash 的常驻通知);接着系统弹出 VPN 连接请求(英文系统是「Connection request」,说 FlClash 想要建立 VPN 连接),**点允许的那个按钮**(英文系统是 OK;中文系统下的按钮文字本站没有实测)。这是安卓系统自己的授权框:FlClash 要借系统的 VPN 接口接管手机的流量,不允许就连不上。**点了「取消」会出现一个容易误判的界面**:按钮照样变成暂停图标、计时照样往上走,仪表盘的「网络检测」卡片也照样显示一个 IP 和旗帜,看起来像在运行,但实际上没有建立 VPN(实测)。这时先点一次按钮把它停下来(计时回到全零),再点一次,系统会重新弹出 VPN 连接请求。\n 失败时 → escalate\n6. 进「代理」页,点右下角的「延迟测试」(Delay test)测一遍:显示毫秒数的节点是通的,显示「超时」(Timeout)的不通。代理页默认把节点组排成顶部的一排标签,组名由服务商定;切到一组,点其中一个有毫秒数的节点,它的卡片会变亮,表示选中了(实测)。组里如果有一项叫 `DIRECT`,它是直连、不是节点,实测它也会显示毫秒数,别选它。如果弹出「当前代理组无法选中」,说明这一组不能手动挑,换另一组(按源码)。**先随便选一个通的把链路跑通,再回头挑快的**——这是作者的建议。延迟测试默认访问的是谷歌的一个连通性检测地址(gstatic.com 下的 generate_204),毫秒数只说明「经这个节点能连到那个地址」,不代表看视频、下载时的真实速度。FlClash 默认用「规则」模式(按配置里的规则决定每个连接走节点还是直连;默认值按源码),新手不用改(作者建议)。**整组都显示「超时」时**:先停掉 FlClash,用浏览器随便打开一个网页,确认手机本身能上网;手机能上网而节点全超时,多半是节点或订阅那边的问题,把节点名和「超时」的截图交给服务商,问节点现在是否可用,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **flclash-connected-check**(人):看手机顶部状态栏有没有 VPN 图标,再用浏览器打开一个不开代理时打不开的网页(比如你装它就是为了访问的那个)。\n 预期:状态栏出现 VPN 图标,而且那个网页能正常显示,就完成了。**只看 FlClash 按钮上的计时不算数,只看仪表盘的「网络检测」(Network detection)卡片也不算数**——拒绝 VPN 授权时,这两样照样和连上时一模一样(实测,见上一步)。原因是卡片的检测请求由 FlClash 自己发出、经它的内核按配置里的规则转发,不经过系统 VPN(按源码),所以它只能说明「经内核能出网、出口大致在哪」,证明不了手机上的流量已经交给了 FlClash。卡片显示哪个出口也由规则决定:本站实测的配置把所有流量交给同一个节点组,卡片显示的就是选中节点的出口;你的订阅规则不同,卡片可能显示别的节点、甚至你本地的 IP,这不一定说明没连上(按源码推断,未实测)。卡片的结果来自第三方 IP 查询服务,标题旁的提示图标点开也写着「依赖第三方api,仅供参考」。**VPN 图标有了、网页却打不开**:先回「代理」页换一个显示毫秒数的节点(不是 `DIRECT`)再试;还不行,按 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet) 查私人 DNS 和访问控制这几项;都排除了,再把现象和节点名交给服务商,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(README_zh_CN.md(多平台、Download 一节);.github/release_template.md(安卓三种 ABI 的 APK);.github/workflows/build.yaml(Generate sha256 → SHA256SUMS);lib/bootstrap.dart(_handlerDisclaimer、_showCrashlyticsTip);lib/models/config.dart(crashlytics / ipv6 / systemProxy 默认值、ProxiesType.tab);android/app/src/main/kotlin/com/follow/clash/models/State.kt(SharedState.crashlytics 默认 true);lib/views/profiles/add.dart;lib/common/string.dart(isUrl);lib/providers/actions/profiles.dart;lib/models/profile.dart;lib/main.dart(HttpOverrides.global);lib/common/http.dart(未启动时 DIRECT、启动后经 localhost 混合端口);lib/common/app_localizations.dart(networkException / unknownNetworkError);lib/application.dart(install-config 深链、自动更新);android/app/src/main/AndroidManifest.xml(clash / clashmeta / flclash 三种 scheme);lib/views/dashboard/widgets/start_button.dart;lib/common/request.dart(网络检测的 IP 查询源与 checkIp);lib/views/proxies/card.dart 与 lib/enum/enum.dart(哪些代理组能手动选);lib/common/constant.dart(defaultTestUrl);lib/models/clash_config.dart(Mode.rule);android/app/src/main/kotlin/com/follow/clash/plugins/AppPlugin.kt(通知权限、VpnService.prepare);arb/intl_zh_CN.arb、arb/intl_en.arb)\n- exp-flclash-android-2026-09-22:验证记录(内部存档,未公开)\n- exp-flclash-android-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-subscription-format-mismatch-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:72209a2 2026-09-27\n"},"getting-started":{"id":"getting-started","type":"concept","title":"新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查","aliases":["新手入门","新手教程","新手上路","小白入门","从零开始用","第一次翻墙","要准备订阅和客户端"],"primary_topic":"basics","topics":["basics","clients","install-and-download","subscription","troubleshooting"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-10-02","freshness":"current","markdown":"# 新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查\n\n主题:`基础概念`\n适用:any / any / any\n最后验证:2026-10-02\n标记:信息说明\n\n> 新手刚开始用,要准备两样:服务方给的订阅链接,和装在自己设备上的客户端;本站不评价、也不替你挑选服务方。按设备装客户端,只从项目方列出的渠道下载、按下载渠道核对来源或安装包;照它的上手条目导入订阅、选节点、打开系统代理或允许 VPN,再用浏览器打开一个平时打不开的网页确认;不通就按现象找对应的排错条目。\n\n新手刚开始用,要准备两样:**服务方给你的订阅链接**,和**装在自己设备上的客户端**。订阅只能从你自己选的服务方那里拿,本站不评价服务方,也不替你挑。有了订阅,按这个顺序走:\n\n1. **按设备装客户端**:手机、电脑各有哪些见下一节;只从项目方列出的渠道下载,按下载渠道核对来源或安装包。\n2. **照它的上手条目走一遍**:导入订阅链接,选一个测出毫秒数的节点;电脑上打开系统代理,手机上打开连接、允许系统的 VPN 请求。\n3. **用浏览器打开一个不开代理时打不开的网页**:能打开才算连上,客户端显示「已连接」「运行中」不算数。\n4. **不通就按现象查**:最后一节按现象列了对应的排错条目。\n\n## 要准备的两样:订阅和客户端\n\n订阅链接是服务方给的一个网址,客户端从这里下载节点,常常是一整份配置,以后也从这里更新。它相当于账号密码:别发群、别转给别人(作者建议,理由见 `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept));一个订阅能同时在几台设备上用,由服务方决定(`一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription))。\n\n同一个订阅链接不是每个客户端都认:服务方可以按客户端报上去的身份(UA)下发不同格式的内容,各客户端认的格式也不一样。服务方面板上有按客户端分开的链接时,用对应的那一条(作者建议);导入后没有节点或报格式错误,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n\n想先弄懂几个名词:客户端只是界面,真正转发的是它带的内核,见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept);vmess、trojan 这些协议由服务方定好、写在订阅里,不用自己选,见 `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)。\n\n## 按设备选客户端\n\n下面只列本站写了上手步骤的客户端,按字母顺序排,不分先后;点名字进它的上手条目。各自的官方下载渠道、认哪种订阅,见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n- **电脑(Windows、macOS、Linux)**:`Clash Party`(见 clash-party-first-run)、`Clash Verge Rev`(见 first-run-setup)、`v2rayN`(见 v2rayn-first-run)。FlClash、Karing 也有电脑版,本站还没写它们在电脑上的上手步骤。\n- **安卓手机**:`Clash Meta for Android`(见 clash-meta-android-first-run)、`FlClash`(见 flclash-android-first-run)、`Karing`(见 karing-android-first-run)、`v2rayNG`(见 v2rayng-first-run)。\n- **iPhone**:`Karing`(见 karing-ios-first-run)、`Shadowrocket(小火箭)`(见 shadowrocket-first-run),后者在 App Store 上是付费应用。sing-box 官方的 iOS 客户端 sing-box MT 本站还没写上手步骤,官方写明要用中国大陆以外的 Apple 账号。\n\nClash Verge Rev、v2rayN、FlClash、v2rayNG 都没有 iOS 版,App Store 上用这些名字的 App 不是这几个项目发布的(推断,见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download))。上面三个 iPhone 客户端在中国区商店都查不到(2026-09-24 查询),见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)。\n\n## 去哪下、怎么确认是原版\n\n只从项目方列出的渠道下载。比如 Clash Verge Rev 官方写明只通过 GitHub Release 发布,v2rayN 的自述同样让你从 GitHub 发布页下载;各客户端的渠道见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n- **不知道下哪个文件**(Windows 还是 Mac、Apple 芯片还是 Intel、安卓手机的架构、系统版本够不够):见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)。\n- **核对下载来源或安装包**:从 GitHub 下载的安装包,算 sha256 和发布页上同一个文件旁边的那串比对,一致就是项目发布的那一份,怎么算、自称官网的下载站能不能信,见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download);iPhone 从 App Store 安装的,按 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region) 核对开发者。\n\n## 第一次连上\n\n每个上手条目都按同一个路子写:导入订阅 → 选节点 → 电脑上打开系统代理、手机上允许 VPN → 用浏览器打开网页确认。各客户端最容易卡住的地方写在各自条目的开头,比如 v2rayN、v2rayNG 保存订阅之后还要再点一次更新才有节点。\n\n**界面上显示连上了,不等于能上网。** 实测在安卓上的 Clash Meta for Android、Karing 和 iPhone 上的 Shadowrocket 里选中一个不通的节点,界面照样显示「运行中」「已连接」或开关开着,也没有提示,网页却打不开。所以最后一定要用浏览器打开一个网页确认;打不开先换一个测出毫秒数的节点再试(作者建议)。\n\n## 出了问题去哪查\n\n先按现象找条目(各条只覆盖部分客户端,进去先看适用范围):\n\n- **导入订阅后没有节点、报格式错误**:`订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch);Clash Verge Rev 导入或更新订阅失败:`Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)。\n- **节点全部超时、测速全红**:`所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout),测速全红不一定是节点全坏了。\n- **显示已连接,网页却打不开**:Clash Verge Rev 见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet),安卓上的 FlClash、v2rayNG 见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet),Karing 见 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)。\n- **只有某个网站或应用不行**:`只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)。\n- **用着用着就断、手机放后台就断**:`用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)。\n- **换个网络就能用**(公司、学校的网络不行):`换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)。\n- **退出或卸载代理软件后电脑上不了网**:`退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)。\n- **找不到对应的、要去问人**:先按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志。贴出去之前遮住订阅链接和服务器地址:实测有的客户端会把完整的订阅链接原样写进日志。\n\n## 这些结论是怎么核对的\n\n本条只是把已有条目串起来,几乎不下新结论:事实都取自被链条目用过的官方文档、源码与实测记录,本条没有另做实测。引用的实测都是那些条目原有的记录,例如 iPhone 三个客户端在中国区商店查不到,来自 2026-09-24 的商店查询。\n\n- 客户端只列了本站写了上手步骤的,不是各设备上能用的全部客户端。\n- iPhone 上专门的排错条目目前只有 Karing 一条,Shadowrocket 还没有。\n\n\n## 相关条目\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- singbox-docs-clients-general:https://sing-box.sagernet.org/clients/general/(Profile → Remote:远程配置以一个 URL 为更新来源)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(名词解释 > UA:订阅服务商通过请求头中的 UA 判断所用的代理工具,下发不同的配置文件)\n- flclash-repo:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(README:Multi-platform: Android, Windows, macOS and Linux(没有 iOS))\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(README 下载渠道一节:iOS/tvOS、Android 与桌面(官网 / GitHub Release / Homebrew)各有渠道)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(README.md L29-L33(到 Release 页下载;支持 Windows、Linux、macOS 11+,没有 iOS))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(README.md L18-L31(从 GitHub releases 下载;v2rayN 是电脑版、手机版是 v2rayNG))\n- v2rayng-repo:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README 第 3 行:A V2Ray client for Android)\n- shadowrocket-appstore:https://apps.apple.com/us/app/shadowrocket/id932747118(价格 $2.99。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格)\n- singbox-apple-docs:https://sing-box.sagernet.org/clients/apple/(Requirements:中国大陆以外的 Apple 账号)\n- cvr-install:https://www.clashverge.dev/install.html(「发布地址」:Clash Verge Rev 目前仅通过 GitHub Release 发布,请注意辨别)\n- exp-ios-clients-and-store-region-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-clash-meta-android-first-run-gui-2026-09-30:验证记录(内部存档,未公开)\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n- exp-where-are-logs-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:02a6f20 2026-10-02\n"},"glossary":{"id":"glossary","type":"reference","title":"术语表","aliases":["名词解释","术语"],"primary_topic":"reference","topics":["reference"],"intents":[],"applicability":null,"freshness_mode":"timeless","last_verified_at":"2026-09-30","freshness":"not-applicable","markdown":"# 术语表\n\n主题:`参考`\n适用:通用\n最后验证:2026-09-30\n标记:信息说明\n\n这张表给刚接触这些词的人查:客户端界面和本站条目里最常碰到的说法,每个一句话解释;想细看的,点「详见」进对应条目。\n\n每行后面列着出处:定义按各客户端、内核的官方文档和钉版源码写,没有在客户端上逐个实测。\n\n\n- **订阅链接**(订阅地址):服务方给你的一个网址:客户端从这里下载节点和配置,之后也从这里重新下载来更新。 `详见`(见 subscription-concept) [来源 singbox-docs-clients-general, cvr-guide-quickstart]\n- **节点**(代理节点):一台替你转发流量的代理服务器;订阅里一般有很多个,你在客户端里选一个来用。 [来源 metacubex-wiki-proxies, cvr-guide-quickstart, cvr-guide-term]\n- **服务方**(机场、服务商):给你订阅链接、提供节点的一方,俗称「机场」;订阅也可以来自你自己搭的服务器。 [来源 cvr-guide-quickstart, cvr-guide-term]\n- **客户端**:装在手机或电脑上、你直接操作的代理软件:导入订阅、选节点、开关代理都在它上面做;真正转发流量的是它带的内核。 `详见`(见 client-and-core-concept) [来源 cvr-guide-term, cvr-guide-quickstart]\n- **内核**(Core):客户端里真正转发流量的那个程序,常见的是 mihomo(也叫 Clash Meta);同一个内核可以被好几个不同的客户端带着用。 `详见`(见 client-and-core-concept) [来源 cvr-guide-term, v2rayn-repo-v7-24-9]\n- **代理组**(策略组):把几个节点(也可以套别的组)编成的一组;流量交给这个组后,按组的类型决定用哪个节点:有的由你手动选一个,有的按测出来的延迟自动选,负载均衡类的组按策略把连接分配给组里的不同节点。 [来源 metacubex-wiki-proxy-groups, metacubex-wiki-url-test, metacubex-wiki-load-balance, cvr-repo-v2-5-6]\n- **分流规则**(路由规则):一张从上往下比对的清单,每条写「满足什么条件就交给哪个出口」(直连、拒绝或某个代理组),一般命中第一条就按它走。 `详见`(见 what-are-routing-rules) [来源 metacubex-wiki-rules, cvr-guide-rules]\n- **规则 / 全局 / 直连模式**(代理模式):决定流量怎么出去的三种模式:规则模式按分流规则逐条判断;全局模式全部交给你手动选的那一项;直连模式全部不走代理。 `详见`(见 proxy-modes) [来源 cvr-guide-term, metacubex-wiki-general, cvr-repo-v2-5-6]\n- **系统代理**:客户端把自己的地址写进系统的代理设置,只有会去读这项设置的程序(大部分浏览器)才走代理;它不管 UDP,游戏、命令行常常不走。 `详见`(见 tun-vs-system-proxy) [来源 cvr-guide-term, cvr-guide-quickstart]\n- **TUN 模式**(虚拟网卡模式):客户端建一张虚拟网卡,改系统路由把流量都导进来,TCP、UDP 一起接管,不用程序配合;Clash Verge Rev 里开它要先装服务模式或以管理员身份运行。 `详见`(见 tun-vs-system-proxy) [来源 cvr-guide-term, cvr-guide-quickstart, cvr-repo-v2-5-6]\n- **服务模式**(系统服务):Clash Verge Rev 装进系统、以管理员权限运行的后台服务(clash-verge-service),由它启动内核,好让你不用以管理员身份运行软件也能开 TUN;退出软件后它仍在后台。 `详见`(见 cvr-service-mode) [来源 cvr-guide-term, cvr-repo-v2-5-6]\n- **延迟测试**(节点延迟):经某个节点去访问一个测速地址、拿到回应用了多少毫秒;它量的是响应快慢,不是网速。 `详见`(见 latency-test-meaning) [来源 metacubex-core-v1-19-31, metacubex-wiki-proxy-groups, cvr-repo-v2-5-6]\n- **协议**(代理协议):客户端和节点服务器之间约定的通信方式,比如 Shadowsocks、VMess、VLESS、Trojan、Hysteria2;每个节点都写明自己用哪一种(mihomo 配置里叫节点的「类型」)。 `详见`(见 proxy-protocols) [来源 metacubex-wiki-proxies]\n- **覆写**(扩展覆写配置):不动订阅原文,而是在订阅原文之上再统一改一遍配置(加规则、改设置),所以更新订阅后改动还在;Clash Verge Rev 里叫「扩展覆写配置」「扩展脚本」,Clash Party 侧栏里就叫「覆写」。 `详见`(见 cvr-extend-config) [来源 cvr-guide-extend, cvr-repo-v2-5-6, clash-party-v2-0-3]\n- **UA**(User-Agent):客户端下载订阅时报给服务方的软件名(请求头里的 User-Agent);服务方可以按它给不同软件下发不同格式的订阅。 `详见`(见 subscription-format-mismatch) [来源 cvr-guide-term]\n\n(glossary,共 15 行)\n\n## 相关条目\n(无)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(名词解释:系统代理 / Tun 模式(系统代理靠程序自发读取「约定」位置、并非所有程序都遵守、不能代理 UDP;Tun 模式创建虚拟网卡、通过路由重定向,TCP / UDP 都接管);规则 / 全局 / 直连模式(路由模式决定流量怎么出去;全局:所有流量从手工选定的代理节点出去);服务模式(服务进程以管理员身份拉起内核,用途是以非管理员身份启动 TUN,退出 CVR 后 clash-verge-service 继续在后台运行);UA(HTTP 请求头字段,订阅服务商按它下发不同配置);Meta 内核(也称 Mihomo 内核);CFW、CFA、CMFA 各节(基于某个内核的代理软件))\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(导入订阅(通过机场或者自建订阅导入节点和配置文件);选择节点和模式;打开代理(系统代理:自动修改操作系统的代理设置,能处理大部分通过浏览器的需求;Tun 模式:安装虚拟网卡,接管不支持系统代理的程序,例如游戏和命令行))\n- cvr-guide-rules:https://www.clashverge.dev/guide/rules.html(4. 代理策略选择(DIRECT、REJECT 或代理组名称))\n- cvr-guide-extend:https://www.clashverge.dev/guide/extend.html(Changelog(扩展配置仅用于配置项覆写 / 合并;Script 配置改名扩展脚本);扩展分类(执行链路 订阅原文 → 应用设置 → 全局扩展配置 → 全局扩展脚本 → 订阅扩展配置 → 订阅扩展脚本 → 应用设置回写))\n- singbox-docs-clients-general:https://sing-box.sagernet.org/clients/general/(Profile → Remote:Remote Profile represents a remote sing-box configuration with a URL as the update source;图形客户端必须实现自动更新)\n- metacubex-wiki-proxies:https://wiki.metacubex.one/config/proxies/(出站代理 › 通用字段:proxies(代理节点,内容为数组);name、type(必须,代理节点类型)、server(代理节点服务器)、port;侧栏「出站代理」下的 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC、WireGuard 等各协议页。这是 mihomo 内核的文档)\n- metacubex-wiki-proxy-groups:https://wiki.metacubex.one/config/proxy-groups/(通用字段 proxies(引入出站代理或其他策略组)、url(健康检查测试地址)、timeout(健康检查超时时间,单位为毫秒)、default-selected(默认选择的节点);侧栏「代理组」下的手动选择、自动选择、自动回退、负载均衡)\n- metacubex-wiki-load-balance:https://wiki.metacubex.one/config/proxy-groups/load-balance/(strategy:round-robin 将会把所有的请求分配给策略组内不同的代理节点;consistent-hashing、sticky-sessions 把相同目标地址(及来源地址)的请求分配给同一个代理节点)\n- metacubex-wiki-url-test:https://wiki.metacubex.one/config/proxy-groups/url-test/(Url-test(自动选择)示例;tolerance:节点切换容差,单位 ms)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(页首示例(规则,内容,策略,出口有 DIRECT、REJECT 与策略组名);优先级(从上到下匹配,列表顶部的规则优先级高;UDP 遇到不支持 UDP 的节点继续向下))\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(rule 规则匹配;global 全局代理,需要在 GLOBAL 策略组选择代理 / 策略;direct 全局直连;默认规则模式))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/adapter.go L166 起的 URLTest:L209 拨号前开始计时、L218 对测速地址发 HEAD 请求、L277 拿到响应后按毫秒取值)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/locales/zh/settings.json L15(开关「虚拟网卡模式」)、L35-L36(「TUN(虚拟网卡)模式接管系统所有流量」「TUN 模式需要安装服务模式或管理员模式」);src/locales/zh/profiles.json L81-L82、L89(「扩展覆写配置」「扩展脚本」「全局扩展覆写配置」);src/locales/zh/home.json L11(首页「代理模式」卡片,里面是规则 / 全局 / 直连)、L94、L99(「延迟测试」「代理组」);src/locales/zh/layout.json L50(「TUN 模式需要系统服务」))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L622、L889(中文界面把内核写作 Core:「Core 类型」「运行 Core 失败,请查看提示信息」))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/renderer/src/locales/zh-CN.json L350(侧栏卡片「覆写」))\n\n最后修订:91ba4ac 2026-09-30\n"},"ios-clients-and-store-region":{"id":"ios-clients-and-store-region","type":"faq","title":"iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到","aliases":["苹果手机翻墙客户端","iPhone 客户端","小火箭","小火箭国区","Shadowrocket 国区","Shadowrocket 价格","Shadowrocket 多少钱","小火箭价格","小火箭多少钱","sing-box MT","sing-box VT","SFI","sing-box iOS","Karing iOS","Clash Verge Rev iOS 版","v2rayN iPhone 版"],"primary_topic":"install-and-download","topics":["install-and-download","clients","shadowrocket","sing-box","karing"],"intents":[],"applicability":{"client":"any","os":["ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到\n\n主题:`客户端` › `下载、安装与系统要求`\n适用:any / ios / any\n最后验证:2026-09-24\n标记:信息说明\n\n**问:** iPhone 上可以装哪些客户端?Clash Verge Rev、v2rayN 有没有 iOS 版?小火箭在中国区商店搜得到吗?\n\n**答:** Clash Verge Rev、v2rayN、FlClash、v2rayNG 都没有 iOS 版。本站写了三个苹果手机客户端:Shadowrocket(小火箭,付费,iOS 13.0 以上)、sing-box MT(sing-box 官方的 iOS 客户端,免费,iOS 15.0 以上)、Karing(免费,iOS 15.0 以上)。按 2026-09-24 的商店查询接口与商品网页,这三个在中国区都查不到,在美国、香港、日本、台湾、英国区查得到。sing-box 官方文档写明需要中国大陆以外的 Apple 账户;Karing 官方 FAQ 说只要是非中国大陆地区的苹果账号就能装;Shadowrocket 的商品页没有写账号要求。\n**对你意味着**:电脑上的 Clash Verge Rev、v2rayN 没有 iPhone 版,搜索结果里的「Clash Verge iOS 版」「v2rayN 苹果版」都不是这些项目自己发的(按各项目列出的渠道推断)。苹果手机上本站目前只写 Shadowrocket(小火箭)、sing-box MT、Karing 三个(iOS 上还有别的客户端,本条不覆盖、也不评价),都从 App Store 下载。挑的时候看三件事:\n\n- **iOS 系统**:iOS 15 以上三个都可以装;iOS 13、14 只有 Shadowrocket 够得上;iOS 12 或更低,三个目前在商店里的都不支持。\n- **价格**:Shadowrocket 付费,sing-box MT 和 Karing 免费。\n- **订阅格式**:sing-box MT(官方文档叫 SFI,是 sing-box 苹果客户端的 iOS 版)只认 sing-box 订阅,不认 Clash 订阅和通用 / base64 订阅(按 sing-box 1.14.1 带的苹果客户端源码;最新标签 1.14.2 没有改这两处,商店里的 1.14.5 对应哪一版源码没法核对),要在服务商面板上另复制 sing-box 订阅地址。Karing 在安卓上实测三种都能导入,iOS 版只实测过 sing-box 订阅、能导入。Shadowrocket 2.2.92 在 iPhone 上实测:Clash 订阅和通用 / base64 订阅能导入,sing-box 订阅导入后没有节点、提示「不能获取订阅节点」。\n\n**这三个在中国区(国区)App Store 都查不到**:按 2026-09-24 的 App Store 公开查询接口和商品网页,三个在中国区都没有,在美区、港区、日区、台区、英区都有(没有在真机上用中国区账户搜过)。所以用中国区账户搜不到,多半不是名字搜错了。sing-box 官方文档写明需要「中国大陆以外的 Apple 账户」;Karing 官方 FAQ 写的是「非中国大陆地区的苹果账号都能下载」;Shadowrocket 的商品页没有写账号要求。本条不讲怎么切换地区,也不提供任何账号渠道。\n\n## 桌面客户端为什么找不到 iOS 版\n\n各项目自己声明的平台里都没有 iOS:\n\n- Clash Verge Rev 的 README 只写 Windows、Linux 和 macOS 11 以上。它是什么来历见 `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)。\n- v2rayN 自述是「Windows、Linux、macOS 的图形客户端」,支持平台表里只有这三个。\n- FlClash(安卓与电脑)列的平台是 Android、Windows、macOS、Linux;v2rayNG 自述是安卓客户端。\n\n2026-09-24 查这四个项目当前正式版的发布文件,也没有任何 iOS 安装包,与苹果有关的只有 macOS 的安装包。\n\n**作者建议**:自称「Clash Verge iOS 官网」「v2rayN iPhone 版」的网站不是这些项目发布的,不要在那里下载或付款。App Store 里名字带 Clash 的应用,也不等于 Clash Verge Rev 出了 iOS 版。\n\n## 三个 iOS 客户端各自的要求\n\n下面都来自各自的美区 App Store 商品页,2026-09-24 读取:\n\n- **Shadowrocket**:开发者 Shadow Launch Technology Limited,美区 $2.99;iPhone 要求 iOS 13.0 或更高,iPad 要求 iPadOS 13.0 或更高。商品页没有写地区或账号要求。价格随地区变,同一天港区是 22 港元、日区是 500 日元。\n- **sing-box MT**:开发者 Metamerism LLC,免费;iPhone 要求 iOS 15.0 或更高;商品页的开发者网站指向 sing-box 官方文档站。\n- **Karing**:开发者 SUPERNOVA NEBULA LLC,免费;iPhone 要求 iOS 15.0 或更高。\n\n对你意味着:按手机的 iOS 版本挑,见开头「iOS 系统」那一条。iOS 12 或更低时,App Store 会不会给旧手机提供更早的兼容版本,本条没有核实。\n\n**作者建议**:装之前核对一下上面写的开发者名(以 2026-09-24 为准)。开发者账号会变,sing-box 就换过一次;对不上时先看 sing-box 的更新日志,或 Karing 的 README 里写的商店链接,不要直接当成仿冒。\n\n## sing-box:旧的 VT 换成了 MT\n\n- sing-box 1.14.0 的更新日志写明:苹果平台客户端迁到了新的开发者账号,iOS 与 tvOS 客户端以 **sing-box MT** 的名字重新上架 App Store;**旧版 sing-box VT 的用户需要安装新应用**。1.14.0 在 GitHub 上的发布时间是 2026-08-31。\n- **sing-box MT 是官方发布的**:更新日志链到的就是它(商店 id 6785326793),sing-box 仓库里向 App Store 发版的工具写的 appID 也是这个数字。\n- 旧 VT(商店 id 6673731168):2026-09-24 用商店查询接口在查过的六个地区都查不到它,商品页美区、中国区都是 404。\n- **官方的 Apple 客户端页还没跟着改**:它仍把 VT 链接划掉,仍挂着「暂时无法在 App Store 更新」和「TestFlight(苹果的测试版分发渠道)名额只给赞助者」的说明;2026-09-24 看线上页面也还是这样。**作者判断**:以更新日志为准——它更新,而且 MT 在商店里确实查得到。这一页现在只用来引用系统与账号要求:iOS 15.0 以上、需要中国大陆以外的 Apple 账户。\n- GitHub 发布页里的 `SFI-…-iphoneos-arm64.deb` 是**越狱版**,没越狱的 iPhone 用不了,还是要走 App Store。\n\n对你意味着:如果手机上还是 sing-box VT,它不会再从商店得到更新;另装 sing-box MT。官方对这次换账号只写明 macOS 版的配置与设置不会继承,iOS 没有单独说明。**作者建议**按新装准备好订阅链接。\n\n## 「中国区查不到」是怎么查出来的\n\n2026-09-24 用 App Store 的公开查询接口和商品网页查了中国、美国、香港、日本、台湾、英国六个区:Shadowrocket、sing-box MT、Karing 在中国区都查不到,商品页也打不开;另外五个区都查得到。同时拿微信作对照,它在中国区查得到,说明查询本身是有效的。\n\n这只说明当天用这两种办法在中国区查不到、在另外五个区查得到;没有用各区的账号在 App Store 应用里搜过,没有查过其他地区,也不说明为什么没上架。\n\n## 装好之后\n\n- **Shadowrocket、Karing**:第一次怎么添加订阅、连接、选节点,见 `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run) 与 `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)。\n- **导入后没有节点或报格式错误**:按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 的「各客户端认哪几种」一节查。\n\n## 验证说明\n\n按三个应用的 App Store 商品页、sing-box 的更新日志与源码、各客户端 README 核对,并在 macOS 上用命令行查询了六个地区的商店接口与各项目的发布文件。2026-10-01 在一台 iPhone(iOS 26.5)上装了 Shadowrocket 2.2.92 与 Karing 1.2.25.2802 实测首次使用(订阅格式那几句出自这次);sing-box MT 没有在 iPhone 上装过。\n\n- 没在真机的 App Store 里搜索过;「查不到」的依据是查询接口与商品网页。\n- 上架状态、价格、版本随时会变,以 2026-09-24 为准;只查了上面六个地区。\n\n## 相关条目\n- `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- shadowrocket-appstore:https://apps.apple.com/us/app/shadowrocket/id932747118(开发者 Shadow Launch Technology Limited;价格 $2.99;Compatibility 一节:iPhone 要求 iOS 13.0 或更高、iPad 要求 iPadOS 13.0 或更高;页面没有写地区或账号要求。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- singbox-mt-appstore:https://apps.apple.com/us/app/sing-box-mt/id6785326793(开发者 Metamerism LLC;价格 Free;Compatibility 一节:iPhone 要求 iOS 15.0 或更高、Apple TV 要求 tvOS 17.0 或更高;开发者网站链接指向 sing-box.sagernet.org。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- karing-appstore:https://apps.apple.com/us/app/karing/id6472431552(开发者 SUPERNOVA NEBULA LLC;价格 Free;Compatibility 一节:iPhone 要求 iOS 15.0 或更高。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- singbox-changelog-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/docs/changelog.md#L13-L77(1.14.0 一节第 17 行「iOS and tvOS clients are back on the App Store」(链到 sing-box-mt/id6785326793);第 67–72 行注 1:迁到新的 Apple 开发者账号、以 sing-box MT 重新上架、旧版 sing-box VT 的用户需要安装新应用;第 74–77 行:macOS 版 SFM 不再上 App Store,独立版不继承原来的配置与设置)\n- singbox-migration-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/docs/migration.md#L5-L10(1.14.0 一节「Migrate the macOS standalone client data」第 9–10 行:换了开发者账号,macOS 独立版是新应用,profiles and settings are not inherited;这一节没有提 iOS)\n- singbox-appstore-connect-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/cmd/internal/app_store_connect/main.go#L77(cmd/internal/app_store_connect/main.go 第 77 行 appID = \"6785326793\")\n- singbox-apple-doc-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/docs/clients/apple/index.md(第 7 行 SFI/SFM/SFT;第 12 行「暂时无法在 App Store 更新」的提示;第 16–17 行 Requirements:iOS 15.0+ / macOS 13.0+ / Apple tvOS 17.0+、An Apple account outside of mainland China;第 21 行加了删除线的 sing-box-vt 商店链接;第 24 行 TestFlight 名额只给赞助者;第 29–33 行越狱版 SFI-iphoneos-arm64.deb)\n- sfi-src-2b1763a:https://github.com/SagerNet/sing-box-for-apple/tree/2b1763a80f2c1dee1ab3ac62d84dbda7dc5178f4(ApplicationLibrary/Views/Profile/NewProfileViewModel.swift L148-155;Library/Database/Profile+Update.swift L6-17)\n- sfi-src-9f828a2:https://github.com/SagerNet/sing-box-for-apple/tree/9f828a26c8ef437ffc0660693acf794a1649bd5e(用 GitHub compare 2b1763a...9f828a2 对比 1.14.1 的子模块:改了 39 个文件,其中没有 ApplicationLibrary/Views/Profile/NewProfileViewModel.swift 和 Library/Database/Profile+Update.swift)\n- exp-subscription-format-mismatch-gui-2026-09-23:验证记录(内部存档,未公开)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(README 第 33 行:Supports Windows (x64/x86), Linux (x64/arm64) and macOS 11+ (intel/apple).)\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(README 第 3 行「A GUI client for Windows, Linux and macOS」与第 45–52 行 Supported Platforms 表(只有 Windows、Linux、macOS))\n- flclash-repo:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(README 第 27 行:Multi-platform: Android, Windows, macOS and Linux)\n- v2rayng-repo:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README 第 3 行:A V2Ray client for Android)\n- exp-ios-clients-and-store-region-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:10cb9f6 2026-10-02\n"},"ios-connected-no-internet":{"id":"ios-connected-no-internet","type":"troubleshoot","title":"iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送","aliases":["小火箭节点测试正常 上不了网","小火箭连通性测试有延迟 打不开网页","小火箭连上了打不开网页","iPhone 显示已连接 打不开网页","苹果手机 VPN 已连接 上不了网","电脑能用 iPhone 不能用","安卓能用 苹果手机不能用","同一个节点 iPhone 连不上","iPhone 开着代理收不到推送","开着代理 App 收不到通知","苹果推送 APNs","包含所有网络","Shadowrocket 全局路由 直连"],"primary_topic":"troubleshooting","topics":["troubleshooting","shadowrocket","karing","sing-box"],"intents":[],"applicability":{"client":["shadowrocket","karing","sing-box"],"os":["ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-02","freshness":"current","markdown":"# iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送\n\n主题:`排错`\n适用:shadowrocket/karing/sing-box / ios / any\n最后验证:2026-10-02\n\niPhone 上 Shadowrocket(小火箭)或 Karing 显示已连接,节点测试也有延迟数字,Safari 和 App 却打不开;或者同一个节点电脑、安卓能用,iPhone 不行;或者开着代理,App 退到后台就收不到推送通知——**先确认流量真的交给了节点,再看测试测的是什么**:\n\n1. **显示已连接不等于能上网**:实测连着参数错的节点,两个客户端和系统的 VPN 状态都照样显示已连接。\n2. **选了「直连」,流量就不经节点**:Shadowrocket 的「全局路由」、Karing「选择服务器」里都有这一项。\n3. **测试有数字不等于节点能用**:Shadowrocket 默认的 TCP 测试只建一次连接,密码、UUID 填错的节点照样有毫秒数(实测)。能不能用,拿 Safari 打开网页试。\n4. **电脑能用、iPhone 不行**:Shadowrocket 新装时不自动更新订阅(实测),先手动更新。\n5. **收不到推送**:推送走苹果推送通知服务(APNs),Shadowrocket、sing-box 的设置里都有它的开关;各家的相关开关和默认值见下文。推送能不能收到,本站没有测。\n\n都排除了还不行,交给服务方。\n\n## 节点测试测的是什么\n\n实测连着同一组节点,其中三个密码或 UUID 填错、一个证书校验不过:\n\n| 测试 | 正常节点 | 参数错的节点 |\n|---|---|---|\n| Shadowrocket「连通性测试」TCP(默认)、ICMP | 毫秒数 | **照样是毫秒数** |\n| Shadowrocket「连通性测试」CONNECT | 毫秒数 | 超时 |\n| Karing 延迟检测 | 绿色毫秒数 | 红色三角 |\n| Safari 实际打开 | 正常 | 报「已丢失网络连接」;Shadowrocket 下证书不过的一直白屏 |\n\n所以用 Shadowrocket 挑节点,先在「设置 → 延迟测试方法」改成「CONNECT」再测(作者建议)。Karing 点红色三角能看到原文,实测有 `connection reset by peer`、`EOF`、`x509` 三种。\n\n## 开着代理收不到推送\n\n先分清(作者说明):**App 开着也一直「连接中」**是 App 自己连不上,按上面查,个别 App 见 `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working);**App 在后台或锁屏时不弹通知**,才是推送。\n\n三个客户端的相关开关(实测只看、没有改):\n\n- **Shadowrocket**「设置 → 隧道 → 隧道」:「包括 APNs」(说明「如果是,苹果推送通知服务(APNs)的网络流量将包括在隧道中。」)默认关;「包括所有网络」也关,它关着时「包括 APNs」是灰的、打不开。\n- **sing-box 1.14.6**「设置 → 隧道」:includeAllNetworks 关、excludeAPNs 开,说明原文是「If this property is true, the system excludes Apple Push Notification services (APNs) traffic, but only when the includeAllNetworks property is also true.」\n- **Karing**:先断开 VPN 再关「新手模式」——实测它关着时证书对不上的自签节点也能连上。关掉后「设置 → TUN」里有 includeAllNetworks、excludeAPNs 等同名开关,默认全关,只标了系统版本要求、没有功能说明。「分流规则」里只有一组「🍎 Apple → 直连」(首次向导默认开),没有单独的推送规则;这一组包含什么,本站没核到。看完把新手模式开回原来的状态再连接(作者建议)。\n\n**作者建议**:改过这些开关的,先改回上面的默认值。哪种设置下推送能收到,本站没有测。\n\n## 适用范围与验证方式\n\nShadowrocket 2.2.92、Karing 1.2.25.2802 只在一台 iPhone 12 mini(iOS 26.5)上实测,订阅和节点是本站的测试服务;sing-box 只看了设置页。\n\n- 节点在本机,延迟数字不代表真实线路;参数错只试了密码、UUID、证书三类。\n- 没有测推送能不能收到,也没有打开 Telegram、微信这类 App。\n\n## 取证\n- **icn-pages-fail**:打不开的是网页或 App 本身吗?(Safari 打不开、App 里一直转圈或「连接中」,选「是」;网页和 App 都正常、只是 App 退到后台或锁屏后收不到通知,选「否」)\n pass → icn-vpn-on;fail → icn-push-path;unknown → icn-vpn-on\n- **icn-vpn-on**:VPN 连着吗?Shadowrocket 首页开关是开的、左边写着节点名;Karing 盾牌是「已连接」;也可以看系统「设置」里 VPN 页顶部的「VPN状态」是「已连接」。(不是的选「否」)\n pass → icn-not-direct;fail → icn-vpn-off;unknown → icn-not-direct\n- **icn-not-direct**:流量交给节点了吗?Shadowrocket 首页「全局路由」不是「直连」,Karing「选择服务器」里选中的不是「直连」。(是「直连」的选「否」)\n pass → icn-other-node;fail → icn-direct-selected;unknown → icn-other-node\n- **icn-other-node**:换一个别的节点,Safari 能打开平时要经代理才能打开的网页吗?(Shadowrocket 先把「设置 → 延迟测试方法」改成「CONNECT」再测,挑有毫秒数的;Karing 挑不是红色三角的。都不行选「否」)\n pass → icn-node-bad;fail → icn-other-device;unknown → icn-other-device\n- **icn-other-device**:同一个订阅,现在在电脑或安卓手机上能用吗?(别的设备也不行选「否」)\n pass → icn-iphone-only;fail → icn-service-side;unknown → escalate\n\n## 原因\n- **icn-push-path**(可能性 medium)→ 修复 icn-fix-push\n- **icn-vpn-off**(可能性 medium)→ 修复 icn-fix-reconnect\n- **icn-direct-selected**(可能性 medium)→ 修复 icn-fix-route\n- **icn-node-bad**(可能性 high)→ 修复 icn-fix-node\n- **icn-iphone-only**(可能性 medium)→ 修复 icn-fix-iphone\n- **icn-service-side**(可能性 medium)→ 修复 icn-fix-provider\n\n## 修复\n### icn-fix-push\n1. 改过推送相关开关的,按正文「开着代理收不到推送」一节的默认值(实测)改回来,断开再连上(作者建议)。推送能不能收到,本站没有测。\n验证:icn-verify-push\n\n### icn-fix-reconnect\n1. Shadowrocket 拨首页的开关,系统问「想添加VPN配置」时点「允许」,还要输锁屏密码;点完开关仍是「未连接」,再拨一次(实测)。Karing 点盾牌、点「允许」(实测)。详见 `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run)、`第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run);Karing 弹提示框起不来的见 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)。\n验证:icn-verify-page\n\n### icn-fix-route\n1. Shadowrocket 把「全局路由」改回默认的「配置」。实测选「直连」时开关、节点名、系统 VPN 状态都照旧,流量却不经节点。Karing 回「选择服务器」点一个有数字的节点;选的是节点、只有个别网站不行的,按 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working) 用「连接」列表查分流。\n验证:icn-verify-page\n\n### icn-fix-node\n1. 原来那个节点用不了,测试有数字也一样(实测,见正文的表)。先用换上的节点,再更新订阅;更新后原来那个仍不行,把节点名告诉服务方(作者建议)。\n验证:icn-verify-page\n\n### icn-fix-iphone\n1. 先在 iPhone 上手动更新订阅:Shadowrocket 长按订阅那一行点「更新」,弹「✓ 成功」才算;它新装时不自动更新(实测),服务方换了节点,iPhone 上可能还是旧的。Karing 在「我的配置」点「更新 配置」;表单里「更新时间间隔」默认是 12 小时(实测只看了设置,自动更新是否按时触发没有测)。\n2. Karing 红色三角的原文含 `x509` 的,是证书校验没过。实测自签证书的节点在「新手模式」开着时就是这样;关掉它后能用(这时「设置 → TLS」的「跳过证书验证」是开着的),开回来又是 x509。所以关着时能用不算修好:把新手模式开回原来的状态,把原文交给服务方,要能通过证书校验的节点(作者建议)。服务端换了新版本或新协议(如 Reality、Vision)后只有 iPhone 不行的,本站没测,交给服务方。\n验证:icn-verify-page\n\n### icn-fix-provider\n1. 换节点、换设备都不行,问题多半不在 iPhone 这一侧(作者判断)。先断开客户端确认手机本身能上网,再把客户端与版本、iOS 版本、节点名、Safari 报错原文告诉服务方,**不要附上订阅链接、节点地址或口令**(作者建议)。\n验证:icn-verify-provider\n\n## 验证\n- **icn-verify-page**(人):VPN 连着、选好节点后,在原来打不开的那个 App 或 Safari 里重新打开刚才打不开的网页(要经代理才能打开的那种)。\n 预期:页面完整显示出来、App 不再一直「连接中」,就好了。开关开着、测试有数字都不算:实测参数错的节点照样已连接、照样有数字,Safari 报「已丢失网络连接」或一直白屏。仍然打不开,从第二问重走。\n 通过 → resolved;失败 → icn-vpn-on;无法判断 → escalate\n- **icn-verify-provider**(人):按服务方的答复处理后(例如更新订阅、换节点),重新连上,在原来打不开的 App 或 Safari 里重试刚才失败的操作。\n 预期:原来打不开的网页完整显示、原来失败的 App 操作恢复正常,才算好了;测试出了数字、开关显示已连接都不算。原来的症状还在,把这次的现象再告诉服务方。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **icn-verify-push**(人):改回默认、断开再连上之后,让那个 App 退到后台或锁屏,请人给你发一条消息。\n 预期:锁屏或通知中心出现这条消息的通知就好了;要打开 App 才看到的不算。仍然没有,把改过哪些设置、客户端名与版本告诉服务方(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- exp-ios-connected-no-internet-gui-2026-10-02:验证记录(内部存档,未公开)\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:bf4092e 2026-10-02\n"},"karing-android-first-run":{"id":"karing-android-first-run","type":"howto","title":"第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点","aliases":["Karing 安卓","Karing 导入订阅","Karing 添加配置链接","Karing Add Profile Link","Karing 我的配置","Karing 国家与地区","Karing 应用改进数据","Karing 备注已存在","Karing 选择服务器","Karing 自动选择","Karing 延迟测试","Karing 红色三角","Karing 规则 全局","download profile failed: http statusCode","Install failed. Please allow the app to install VPN configuration to the system"],"primary_topic":"karing","topics":["karing","subscription-import","basics"],"intents":[],"applicability":{"client":["karing"],"os":["android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点\n\n主题:`客户端` › `Karing`\n适用:karing / android / any\n最后验证:2026-10-01\n\nKaring 安卓版第一次用:走完 6 页首次向导 → 自动进入「添加配置」页 →「添加配置链接」,填订阅链接、点右上角 ✓ 保存 → 回主界面点底部正中的盾牌,系统 VPN 请求点 OK → 点盾牌下的「自动选择」横栏进「选择服务器」,测延迟、选有数字的节点 → 看状态栏的 VPN 图标,用浏览器打开网页确认。\n\n**新配置默认就启用,不用另外选中;绿色「已连接」不等于能上网**,选中不通的节点照样显示已连接;代理模式只有「规则」「全局」,默认规则(实测)。括号里是英文界面的写法。\n\n## 保存时报错\n\n报错弹在「提示」(Info)对话框里,实测见过的几种:\n\n- **`download profile failed: http statusCode: 404`**:实测假订阅服务返回 404 时就是这一行;返回 403、401 时前面多「添加失败:」(Add failed:),后面建议改 UserAgent 或用浏览器下载。先去服务商面板确认订阅没过期、重新复制链接(作者建议)。\n- **`download profile failed: http response is empty`**:实测假订阅服务返回空内容时,同样先核对订阅(作者建议)。\n- **「无可用服务器,请确保配置链接或配置文件有效…」**(英文是 `No server avaliable`,原文拼写如此):实测假订阅服务返回一段不含节点的 YAML 时。向服务商确认链接,格式问题见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- **「备注已存在,请使用其他名称」**(Remark already exists, please use another name):备注与已有的一条重名,请求根本没发出去(实测英文界面;中文按公开的部分源码),改个备注再保存。\n\nKaring 自述完整支持 clash 配置、只部分支持 clash.meta(mihomo)配置(按官方文档)。实测假订阅里有一个内核不认的 ss 节点时,导入照样「添加成功」,那个节点被悄悄去掉;节点数比服务商列的少,可能就是这个原因(作者判断)。\n\n## 以后更新订阅\n\n「更新时间间隔」(Update interval)默认 12 小时(实测的表单默认值,没等到它真正触发)。手动更新:「我的配置」里那一条第二行的下载云图标,转完一圈、更新时间变成当前时间就是好了,**成功没有提示**(实测)。\n\n## 适用范围与验证方式\n\nv1.2.25.2802 的 arm64-v8a 包在 Android 16 模拟器上用英文、中文界面各全新安装走过一遍,订阅来自本站的假订阅服务,浏览器经本机的 sing-box 节点真正打开过网页;下载与系统要求按官方 README。\n\n- 只测了模拟器,没测真机和其它安卓版本;中文界面是单独给应用设的语言,系统弹框仍是英文。\n- 节点在本机,延迟数字不代表真实线路;地区与预置分流只用了默认值。\n- 只有 sing-box 格式那份订阅测过连接;链接是逐字输入的,没测剪贴板粘贴。\n\n## 步骤\n1. 从 GitHub 上项目自己的 Release 页下载:https://github.com/KaringX/karing/releases 。大多数手机用文件名以 `android_arm64-v8a.apk` 结尾的包,老的 32 位设备用 `android_armeabi-v7a.apk`;`android_arm.apk` 两种都带(本站读包所得)、约 94 MB,单架构包约 55 MB,**拿不准就下它**(作者建议)。官方要求 Android 8.0 以上(按官方文档)。\n 失败时 → escalate\n2. 第一次打开是 6 页向导(实测):隐私说明「您的隐私很重要」(Your Privacy Comes First),只有「接受并继续」一个按钮 → 语言 →「TV 设置」(两个开关默认关)→「国家与地区」→「预置[自定义分流组]」→ 只有「新手模式」(默认开)的「设置」页,点右上角「完成」(Done)。「国家与地区」页提示设错可能导致分流错误;本站两次安装的默认值跟着界面语言走,英文界面是美国、中文界面是中国,下一页预置的分流也随之不同(实测,只看了这两种)。**界面语言和你所在地不一致时,在这一页改成所在地**,其余保持默认(作者建议;改了之后的效果本站没测)。隐私说明提到的「关于」→「应用改进数据」开关,本站两次安装里都是关的、点不动(实测)。\n 失败时 → escalate\n3. 点「完成」后直接进「添加配置」(Add Profile)页,以后从主界面的「添加配置」卡片进。点「添加配置链接」(Add Profile Link),把服务商给你的订阅链接填进「配置链接/内容」框(实测)。订阅链接**等同于账号凭据,别发给别人、聊天助手或在线工具**。「备注」会自动填一个名字,不能和已有的重名,其它选项不用改(作者建议)。点右上角 ✓ 保存,**保存就立刻下载订阅**:成功弹「提示 / 添加成功」(Info / Added successfully),点「确定」回到「添加配置」页,左上角返回主界面;失败停在表单页,报错见正文(实测)。\n 失败时 → escalate\n4. 主界面点「我的配置」(My Profiles):新加的那条名称后面方括号里是节点数(如 `[4]`),左边的 `SB`、`CL`、`V2` 是订阅格式,右边的「启用」开关**默认就开着,不用另外选中**(实测)。\n 失败时 → escalate\n5. 点主界面底部正中的圆形盾牌(没连接时红色带 ✕),系统弹出 VPN 连接请求(英文系统上叫「Connection request」)时点「OK」;1 秒内盾牌变成绿色带 ✓、显示「已连接」(Connected),状态栏出现钥匙图标(实测)。**点了 Cancel,Karing 弹「提示」框,正文是「Install failed. Please allow the app to install VPN configuration to the system.」(中文界面里也是英文),盾牌仍是红色「未连接」**,再点盾牌会重新弹系统框(实测)。本站全程没弹过通知权限框,不影响连接;断开是再点一次盾牌,不用确认(实测)。\n 失败时 → escalate\n6. 点盾牌下面那条横栏(默认写着「自动选择」)进「选择服务器」(Select Server)页。默认选中「自动选择」(Auto Select),页面说明是自动选延迟最低的(实测),新手可以不动(作者建议)。想手动选:点右上角闪电「延迟检测」,通的节点右边出现「7 ms」这类绿色数字,不通的只有一个红色三角;点有数字的那一行就选中并回到主界面(实测)。列表里的「直连」(Direct)不走节点,别选(作者建议)。代理模式是主界面的「规则 / 全局」(Rule / Global),默认「规则」,没有直连模式(实测),保持「规则」即可(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **karing-connected-check**(人):看状态栏有没有钥匙形的 VPN 图标,再用浏览器打开一个不开代理时打不开的网页。\n 预期:图标在、网页能打开,就完成了(作者建议)。**绿色「已连接」不代表节点能用**:实测选中一个不通的节点,主界面照样是绿色「已连接」、没有提示,浏览器报「ERR_EMPTY_RESPONSE」,下行流量停在 0;这时回「选择服务器」换一个有数字的节点。全都没有数字:先断开 Karing 确认手机本身能上网,能上网就把节点名和截图交给服务商,贴之前遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(README.md L17-L18(Full clash config supported, Partial clash.meta config supported)、L59(Android >= 8 (arm64-v8a, armeabi-v7a)),README_cn.md 同行号为中文版;公开的部分源码 lib/i18n/zh-CN.i18n.json L527 与 en.i18n.json L527(remarkExist,备注重名提示的中英文案))\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-release-assets-which-file-cli-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:c694b59 2026-10-01\n"},"karing-custom-routing":{"id":"karing-custom-routing","type":"howto","title":"Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查","aliases":["Karing 自定义分流","Karing 自定义规则","Karing 自定义分流组","Karing 分流规则","Karing 某网站直连","Karing 某个网站走代理","Karing 某个应用不走代理","Karing 指定节点","Karing final","Karing 规则不生效","Karing 分流规则探测","Karing 分应用代理","Karing iPhone 按应用分流","保存后,请到[分流规则]设置相关规则,否则不会生效","添加完毕后可能需要手动调整排序"],"primary_topic":"routing-rules","topics":["routing-rules","karing"],"intents":[],"applicability":{"client":["karing"],"os":["android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查\n\n主题:`基础概念` › `分流规则与代理模式`\n适用:karing / android/ios / any\n最后验证:2026-10-01\n\nKaring 里让某个网站或应用单独直连、单独走代理或走指定节点,要做**两步**:先在「自定义分流组」里建一个组,写上域名后缀(安卓还能写应用包Id);再到「分流规则」页给这个组选去向,比如「直连」或某个节点。**只做第一步不生效**;新组排在最后,被前面的组接住时还要拖到前面(实测)。规则从上往下匹配,都没命中的走最后的 final,默认是「当前选择」,也就是主界面横栏选中的那一项(实测)。\n\n加完先打开主界面「连接」列表、再访问那个网站,看那条连接的规则和出站(实测)。Karing 规则不生效,按这几处查:\n\n- **只建了组、没选去向**:组右边是空的,连接照样走 `final`。「分流规则」页里找不到这个组,看顶上「隐藏未启用的分流规则」是不是开着,开着时没选去向的组不显示(默认关)(实测)。\n- **被前面的组先接走**:「连接」里规则写的是别的组名,比如预置的「🌏 Google[自定义]」。到「自定义分流组」页长按你的组、拖到它前面(实测)。\n- **主界面是「全局」**:全局下自定义规则不起作用(实测)。\n- **安卓「分应用代理」把这个应用排除了**:它的流量根本不进 Karing,任何分流规则都管不到它(实测,见下文)。\n- **国内网站走了代理**:先看「分流」页里的「国家与地区」对不对,首次向导就提示设错可能导致分流错误;再看「连接」里它命中的是哪一组(实测)。\n\n## 怎么确认一个网站走哪里\n\n- **「连接」列表**:每条写着目标域名、应用、命中的规则和出站;组写作「组名[自定义]」,兜底写 `final`(实测)。点一条连接进「选择分流类型」,再点「域名」、选一个组,会打开只有一个「域名」框、已填好这个域名的编辑页(实测);保存后是追加还是覆盖原有条件,本站没测。\n- **「分流规则探测」**:在主界面「分流」页里。输入域名点「探测」,显示「规则:」「代理服务器:」。本站这次的结果与「连接」列表一致。**只能填域名**,填 IP 提示「无效域名」;**没连接时点「探测」会直接把 VPN 连上**,探测完也不断开(实测)。\n\n## final 和「当前选择」\n\n「分流规则」页最下面一栏是 final,接住所有没被哪一组接住的连接,默认「当前选择」,没有「无」可选(实测)。所以**大部分流量走哪个节点,还是主界面横栏说了算**(作者判断)。把 final 改成「直连」,没命中的网站就显示「final / 直连」(实测)。\n\n## 按应用分流:安卓两种办法,iPhone 没有\n\n- **安卓「分应用代理」**(主界面卡片):默认「启用」和「白名单模式」都开着、一个应用也没勾,这时所有应用照常经过 Karing,不是什么都不代理(实测)。关掉「白名单模式」、勾选 Chrome 后,**Chrome 完全不经过 Karing**:网页照样能开,但「连接」里看不到它,分流规则也管不到它(实测)。本站模拟器上 Chrome 是系统应用,要先关「隐藏系统应用」才找得到。\n- **安卓分流组的「应用包Id」**:应用的流量仍然进 Karing,按你选的去向走。实测把 Chrome 设成直连,「连接」里仍有它的连接,写「组名[自定义] / 直连」。\n- **iPhone**:主界面没有「分应用代理」卡片(实测);按公开的部分源码,编辑页也没有「应用包Id」,只能按域名、IP 这些条件分。\n\n## 适用范围与验证方式\n\nKaring 1.2.25.2802 安卓版在 Android 16 模拟器上实测:地区「中国」、首次向导预置分流保持默认(默认开 6 组),订阅来自本站的假订阅服务,节点在本机;以节点服务端有没有收到该域名的入站为准。iPhone 只核对了主界面。\n\n- 条件只测了「域名后缀」和「应用包Id」,去向只测了「直连」和单个节点。\n- 别的地区、真机、iPhone 上的分流行为都没有测。\n\n## 步骤\n1. 主界面的「规则 / 全局」选「规则」(默认就是)。**「全局」模式下自定义分流不起作用**:切到全局后,已设成直连的网站照样走了节点(实测)。\n 失败时 → escalate\n2. 主界面点「分流规则」→ 右上角铅笔,进「自定义分流组」页 → 右上角 ⋮ →「添加」(前面是 + 号的那一项)→「备注」填个组名 →「确定」→ 点列表里新出现的这一行进编辑页。网站填「域名后缀」,比如 `example.com`,实测它连 `www.example.com` 一起管住;安卓上某个应用填「应用包Id」,右边的 > 打开应用列表,勾选后要点右上 ✓ 才会填回。一行写一条,填完点右上 ✓(实测)。\n 失败时 → escalate\n3. **新组排在列表最后**,页面顶上提示「注意:添加完毕后可能需要手动调整排序,否则新添加的分流可能不会生效」。前面的组先接住的连接轮不到它:本站(地区为中国、向导预置保持默认)实测,管 google.com 的新组排在预置的「🌏 Google」后面时不生效;**长按这一行约 1 秒、拖到前面**,松手就生效,没有保存按钮(实测)。前面没有组接得住它时,排在最后也生效(实测)。\n 失败时 → escalate\n4. 返回「分流规则」页,在「自定义分流组」那一栏找到新组,**它右边是空的,表示还没有去向,这时不生效**,网站照样走 `final`(实测)。点它选去向:直连选「直连」,固定走某个节点就点那个节点(实测)。列表里另有「当前选择」「自动选择」「拦截」「自定义自动选择」,本站没测。\n 失败时 → escalate\n5. 一路返回主界面。连接状态下回到主界面时会自动重新加载:「运行时长」和连接数归零,之后的连接按新规则走,**不用断开重连**(实测)。\n 失败时 → escalate\n\n## 验证\n- **karing-routing-hit-in-connections**(人):先点主界面的「连接」卡片打开连接列表,再去重新打开那个网站或应用,回来找它的连接(列表只显示打开时还活着的和之后新建的连接)。\n 预期:规则一栏写「你的组名[自定义]」,出站是你选的去向(「直连」或节点名),就成了(实测)。写的是 `final`,说明没有一组接住它:回去看这个组有没有选去向、条件写得对不对。写的是别的组名,就是被那个组先接走了,把你的组拖到它前面。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n\n## 来源\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(公开的部分源码:lib/screens/home_screen_widgets.dart L1388-L1400(分应用代理卡片只在安卓);diversion_group_custom 的 _edit_screen.dart L402-L412(应用包Id 只在安卓))\n- exp-karing-routing-and-diagnostics-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:b5966b4 2026-10-02\n"},"karing-ios-first-run":{"id":"karing-ios-first-run","type":"howto","title":"第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点","aliases":["Karing 苹果手机","Karing iPhone 第一次用","Karing iPhone 导入订阅","Karing iPhone 添加订阅","Karing iPhone 选节点","“Karing”想添加VPN配置","Karing 新手模式","Karing 删除系统VPN配置"],"primary_topic":"karing","topics":["karing","subscription-import","basics"],"intents":[],"applicability":{"client":["karing"],"os":["ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点\n\n主题:`客户端` › `Karing`\n适用:karing / ios / any\n最后验证:2026-10-01\n\nKaring 在 iPhone(苹果手机)上第一次用:从 App Store 装(中国区商店查不到,见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region))→ 走完 5 页首次向导 → 自动进入「添加配置」页 →「添加配置链接」,填订阅链接、点右上角「保存」→ 回主界面点中间的盾牌,系统问「想添加VPN配置」时点「允许」→ 点盾牌下的「自动选择」横栏进「选择服务器」,做延迟检测、选有数字的节点 → 用 Safari 打开网页确认。\n\n**「已连接」不等于能上网**:选中不通的节点照样显示已连接,网页却打不开,要回去换节点;代理模式只有「规则」「全局」,默认规则(实测)。和安卓版的差别见下文。\n\n## 和安卓版的差别\n\n同一版本 1.2.25.2802 两边各实测了一遍(安卓版见 `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)),下面只列不同的地方:\n\n- **从 App Store 装**,没有 APK 可选。\n- **向导少一页**:没有安卓版的「TV 设置」,共 5 页(实测)。\n- **保存按钮**:iPhone 上是右上角的「保存」两个字,安卓是 ✓(实测)。\n- **允许 VPN**:iPhone 弹系统框「“Karing”想添加VPN配置」,点「允许」,可能还要输锁屏密码;安卓弹「Connection request」,点 OK(实测)。\n- **选了不通的节点**:两边主界面都照样「已连接」。iPhone 上 Safari 约 15 秒后报「已丢失网络连接」,安卓的浏览器报 `ERR_EMPTY_RESPONSE`(都是实测时、本机测试节点上的表现)。\n- **「国家与地区」的预选值**:iPhone 这次是手机所在地区,安卓两次安装跟着界面语言走(实测)。和所在地不一致就改(作者建议)。\n\n## 保存时报错\n\n报错弹在「提示」框里,按钮是「确定」「拷贝」「常见问题」,点「确定」表单不丢(实测)。订阅地址返回 404、空内容、不含节点这些情况本站没有在 iPhone 上测;安卓版实测到的报错原文见 `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run),iPhone 上写法是否相同没有核对。导入后没有节点或报格式错误,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n\n## 以后更新订阅\n\n「更新时间间隔」默认 12 小时(实测的表单默认值,没等到它真正触发)。手动更新看「我的配置」里那一条上的「更新 配置」按钮(实测看到,iPhone 上没有点过)。\n\n不想用了:iPhone「设置」→「VPN」里可以直接删除 Karing 的 VPN 配置,系统只确认一次、没有要密码(实测);Karing 自己的「设置」里也有「删除系统VPN配置」(实测看到,没有点过)。\n\n## 适用范围与验证方式\n\nKaring 1.2.25.2802(App Store 版)在 iPhone 12 mini、iOS 26.5 上删除重装后走过一遍,界面选简体中文,订阅来自本站的假订阅服务,Safari 经本机的 sing-box 节点真正打开过网页;价格与系统要求按美区 App Store 商品页。\n\n- 只测了一台 iPhone、一个 iOS 版本;英文界面没有走完,系统 VPN 框点「不允许」没有测。\n- 订阅和节点都在局域网:保存时弹出的本地网络授权框、第一次保存报 `No route to host` 都是这个原因,订阅地址在公网时一般不会遇到;延迟数字、哪个节点通也只代表本机节点。\n- 只导入过一种订阅(sing-box 格式),更新订阅、从剪贴板导入、扫描二维码都没有测。\n\n## 步骤\n1. 从 App Store 装。按 2026-09-24 的查询,中国区商店查不到它,账号要求见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)。Karing 免费,iPhone 要求 iOS 15.0 以上(按 App Store 商品页)。\n 失败时 → escalate\n2. 第一次打开没有系统弹框,直接进 5 页向导(实测):隐私说明「Your Privacy Comes First」(正文是中文),只有「Accept & Continue」一个按钮 → 语言 →「国家与地区」→「预置[自定义分流组]」→ 只有「新手模式」(默认开)的「设置」页,点右上角「完成」。**语言页默认高亮 English**,这台手机系统语言是简体中文也一样,要中文界面就在这页选「简体中文」(实测)。「国家与地区」页提示设错可能导致分流错误,本站这次预选的是手机当前所在的地区(实测,只装了一次);**和你所在地不一致就改成所在地**,其余保持默认(作者建议)。「预置」页默认只开了「Apple -> 直连」一项(实测)。隐私说明说可以在「关于」→「应用改进数据」关掉数据收集,本站在「关于」页没看到这个开关(实测,没点进「开发者选项」)。\n 失败时 → escalate\n3. 点「完成」后直接进「添加配置」页,以后从主界面的「添加配置」进(实测)。点「添加配置链接」,把服务商给你的订阅链接填进「配置链接/内容」框(实测)。订阅链接**等同于账号凭据,别发给别人、聊天助手或在线工具**。本站这次填好链接后「备注」出现了「1」,保存后它就是这条配置的名字(实测,自动填入的来由没有查清);UserAgent 等其它选项不用改(作者建议)。点右上角「保存」:成功弹「提示 / 添加成功」,点「确定」后仍停在「添加配置」页,点左上角返回主界面(实测)。实测那次失败也是弹「提示」框,点「确定」后表单内容还在,可以改了再保存。\n 失败时 → escalate\n4. 主界面点「我的配置」:新加的那条显示成「SB 1[4]」这样——`SB` 是拿到的订阅格式(sing-box),后面是备注名,方括号里是节点数(实测)。表单里的说明称服务商会按 UserAgent 下发不同格式;你的服务商实际给哪种,由服务方决定,本站未核实。\n 失败时 → escalate\n5. 点主界面中间的红色盾牌(带 ✕)。第一次会直接弹系统框「“Karing”想添加VPN配置」,点「允许」(实测)。**系统可能会转到「设置」要你输入锁屏密码**,输完再回 Karing:同一台 iPhone 装 Shadowrocket 的 VPN 配置时就要过;这次装 Karing 只看到画面短暂切到「设置」又回来,没有要密码(实测)。几秒后盾牌变成「已连接」,运行时长开始走;断开是再点一次盾牌(实测)。\n 失败时 → escalate\n6. 点盾牌下面那条写着「自动选择」的横栏进「选择服务器」页。「自动选择」默认高亮,页面说明是「自动选择延迟最低的服务器」(实测),新手可以不动(作者建议)。想手动选:点右上角闪电做延迟检测;订阅那一组默认是折叠的,组名就是备注名、方括号里是节点数(如「1[4]」),点一下才展开(实测)。通的节点显示绿色的毫秒数,不通的只有一个红色三角(实测;数字取决于线路,本站测的是本机节点)。点有数字的那一行就选中并回到主界面,横栏换成节点名(实测)。列表里的「直连」不走节点,别选(作者建议)。代理模式是主界面的「规则|全局」,默认「规则」(实测),保持即可(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **karing-ios-connected-check**(人):看主界面的盾牌是不是「已连接」、运行时长在走,再用 Safari 打开一个不开代理时打不开的网页。\n 预期:网页能打开,就完成了(作者建议)。**「已连接」不代表节点能用**:实测选中一个不通的节点,主界面照样是「已连接」;那次 Safari 约 15 秒后报「Safari浏览器打不开该网页,因为已丢失网络连接。」(实测时、本机测试节点,别的网络下等待时间和报错可能不同)。这时回「选择服务器」换一个有数字的节点。全都没有数字:先断开 Karing 确认手机本身能上网,能上网就把节点名和截图交给服务商,贴之前遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- karing-appstore:https://apps.apple.com/us/app/karing/id6472431552(开发者 SUPERNOVA NEBULA LLC;价格 Free;Compatibility 一节:iPhone 要求 iOS 15.0 或更高。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n- exp-ios-clients-and-store-region-cli-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:10cb9f6 2026-10-02\n"},"karing-not-working":{"id":"karing-not-working","type":"troubleshoot","title":"Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层","aliases":["Karing 连不上","Karing 闪退","Karing 断流","Karing 已连接但打不开网页","Karing 网络检测","Karing 日志在哪","Karing 调试日志","Karing 节点比别的客户端少","Karing 节点全是红色三角","Karing 代理服务器过多","已失效,请重新选择服务器","无可用服务器:配置可能已过期或被禁用"],"primary_topic":"troubleshooting","topics":["troubleshooting","karing"],"intents":[],"applicability":{"client":["karing"],"os":["android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层\n\n主题:`排错`\n适用:karing / android/ios / any\n最后验证:2026-10-01\n\nKaring 连不上、断流、闪退,或者节点比别的客户端少、有的节点不通:先用 Karing 自带的三样东西查清是哪一层——主界面的「网络检测」(网络、DNS、当前节点、目标网站逐栏测)、主界面的「连接」卡片(每条连接命中哪条规则、从哪个出口出去)、「设置 → 关于 → 开发者选项」里的日志。\n\n**最容易误会的一点:绿色「已连接」只说明 VPN 起来了,不说明节点能用。** 实测选中一个不通的节点,盾牌照样是「已连接」,也没有提示。下面六问依次查闪退、连不上、节点不通、规则走错、自己断开、节点变少;只是节点少的,直接看第六问。\n\n## 三个工具\n\n- **网络检测**:点「检测」逐栏列出网络联通性、Rule Set、DNS服务器、代理服务器、DNS、「HTTP连接」(写出命中的分流规则名与代理服务器名);没连接时点「检测」会直接连上 VPN(实测)。读法(作者建议):「网络联通性」失败是手机没网;「代理服务器」失败是节点或延迟检测地址的问题;它成功而「HTTP连接」失败,多半是网站或分流。实测选中不通的节点时,这一栏报 `i/o timeout` 后一直转圈(等了 3 分钟以上),不用等完。\n- **连接**:每条写着目标域名与端口、应用、流量、命中的规则和出站;只显示打开列表时还活着与之后新建的连接,所以**先打开列表、再访问网站**;右上 ⋮ 可以按域名、应用、规则、出站过滤(实测)。\n- **日志**:「设置」→「关于」→「开发者选项」。「开启调试日志」默认关,关着时 `service_core.log` 也记错误;打开后不用重连,会记下每条连接。「查看文件」只显示末尾约 20KB,⋮ →「分享」把文件本身(如 `app.log`)经系统分享面板发出去(实测)。\n\n## 交出去之前遮什么\n\n订阅链接**等同于账号凭据**,不要贴。实测日志里有节点地址与端口、访问过的域名和应用包名,报错框「拷贝」出来的文字也含节点地址和端口,交出去前遮掉;「查看文件」里的 `service_core.json` 等配置文件不要分享,只给日志(作者建议)。\n\n## 适用范围与验证方式\n\nKaring 1.2.25.2802。「实测」指安卓模拟器(Android 16)上用本站的假订阅、自制订阅和本机测试节点做的,报错原文和延迟只代表那个环境;iPhone 只测过「已连接但节点不通」和设置页。Karing 只公开了部分源码,发布版是否由它构建无法确认。真正的闪退、长时间断流、iPhone 的节点过多提示、电脑版都没有测。\n\n## 取证\n- **karing-opens**:Karing 能打开并停在主界面吗?(闪退或显示「应用启动失败[……]」的选「失败」)\n pass → shield-turns-connected;fail → app-crashes;unknown → shield-turns-connected\n- **shield-turns-connected**:盾牌是「已连接」吗?已经是就选「通过」(再点会断开);「未连接」时点一下盾牌,能变成「已连接」吗?(弹「提示」框、仍是「未连接」的选「失败」,记下框里的字)\n pass → proxy-check-ok;fail → vpn-start-failed;unknown → escalate\n- **proxy-check-ok**:「网络检测」里点「检测」,「代理服务器」一栏是「[节点名]连接成功」吗?(「网络联通性」就失败的,是手机本身没网,先把网弄好)\n pass → site-goes-through-node;fail → selected-node-down;unknown → site-goes-through-node\n- **site-goes-through-node**:先点主界面「连接」卡片打开列表,再重新访问那个网站,回来看它的连接:出站是一个节点吗?(写「直连」的选「失败」;列表只显示打开之后的连接,找不到的重访一次)\n pass → stays-connected;fail → routed-not-via-node;unknown → stays-connected\n- **stays-connected**:连上后能一直保持吗?(锁屏或放后台回来变成「未连接」的选「失败」)\n pass → node-count-matches;fail → disconnects-in-background;unknown → node-count-matches\n- **node-count-matches**:「我的配置」里订阅名后面方括号里的节点数,和别的客户端或服务商列的一样多吗?\n pass → escalate;fail → nodes-dropped;unknown → escalate\n\n## 原因\n- **app-crashes**(可能性 medium)→ 修复 reinstall-or-collect-log\n- **vpn-start-failed**(可能性 high)→ 修复 read-start-dialog\n- **selected-node-down**(可能性 high)→ 修复 switch-node-check-test-url\n- **routed-not-via-node**(可能性 medium)→ 修复 fix-routing\n- **disconnects-in-background**(可能性 medium)→ 修复 keep-alive-settings\n- **nodes-dropped**(可能性 medium)→ 修复 handle-dropped-nodes\n\n## 修复\n### reinstall-or-collect-log\n1. 「应用启动失败[……]」多数写着「请重新安装应用」,照做(按公开的部分源码)。没有提示就退出的,按正文「日志」一节把日志交给开发者或服务商(作者建议)。实测强行结束进程后日志还在;真正的闪退本站没有制造出来。\n验证:karing-site-opens\n\n### read-start-dialog\n1. 「Install failed. Please allow the app to install VPN configuration to the system.」:安卓的 VPN 请求被拒了,再点盾牌、系统框里点「OK」,别的 VPN 开了「始终开启」要先关(实测)。「[节点名]已失效」「已被禁用」:换一个节点;「无可用服务器:配置可能已过期或被禁用」:先更新订阅,仍然这样找服务商(按公开的部分源码)。连接时屏幕上方闪过「代理服务器[12011>12000]过多,可能导致连接缓慢或无法连接」的,是当前配置的出站太多(实测:选中上万节点那条订阅里的节点时出现,之后仍是「已连接」;iPhone 门槛按源码是 3000,没测),向服务商要精简的订阅(作者建议)。其它的:点「拷贝」,遮好后交给服务商。\n验证:karing-site-opens\n\n### switch-node-check-test-url\n1. 进「选择服务器」点闪电做延迟检测,选有毫秒数的节点(实测)。**全是红色三角时先看延迟检测地址**:实测把它改成到不了的地址,三个能用的节点也全变红色三角,「网络检测」的「代理服务器」一栏也报「连接失败」(同一个地址),「HTTP连接」却照常成功。地址在「设置」→「延迟检测」→「URL」,**先断开 VPN 再关掉「新手模式」才出现**,默认是 `www.gstatic.com/generate_204`(https),列表里有几个预置地址可换(实测)。**看完、地址改回默认后,把「新手模式」开回原来的状态,再连接、检测**:安卓上实测它关着时证书对不上的自签节点也显示数字,关着时出现的数字不能当作修好。地址没问题仍全红,把节点名和「网络检测」截图交给服务商(作者建议)。\n验证:karing-site-opens\n\n### fix-routing\n1. 网站被分流规则判成了直连。那条连接写着命中的规则;「分流」→「分流规则探测」输入域名也能查,实测与「连接」列表一致。改法见 `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)。想先确认:切到「全局」,先打开「连接」列表、再重新访问那个网站,确认它实际走了节点;这样能打开、规则模式打不开,就是分流的问题(作者建议;实测在 final 为「当前选择」、选中能用的节点时,全局模式下的连接都是 final / 该节点)。\n验证:karing-site-opens\n\n### keep-alive-settings\n1. **iPhone**:「设置」里的「系统休眠后断开连接」设了时长的,改成「禁用」(按公开的部分源码只在 iOS、macOS 上有;本站 iPhone 新装后显示「禁用」)。**安卓**没有这一项(实测);系统的电池优化、后台限制会结束后台应用,把 Karing 设成不受限制(作者建议)。长时间断流本站没有测。\n验证:karing-site-opens\n\n### handle-dropped-nodes\n1. 实测:8 个加密方式各不相同的 ss 节点,导入提示「添加成功」,只剩 3 个,salsa20、chacha20、bf-cfb 等 5 个被悄悄去掉(本站自制的订阅)。所以节点比别的客户端少,**可能**是加密方式不受支持:缺的若正是这类 ss 节点,问服务商有没有别的加密方式或协议的节点(作者建议)。另一种可能是服务商按 UserAgent 给了不同格式,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n验证:karing-node-count-check\n\n## 验证\n- **karing-site-opens**(人):先确认 Karing 打开后主界面盾牌是「已连接」(闪退、连不上的先看这一点),保持改过的设置,打开一开始打不开的网页;断流的照常用一段时间。\n 预期:能打开、不再断开就好了。仍然不行从第一问重走;六问都过了还不行,把日志和「网络检测」截图遮好后交给服务商(作者建议)。\n 通过 → resolved;失败 → karing-opens;无法判断 → escalate\n- **karing-node-count-check**(人):按上面处理后更新这条订阅(或导入服务商给的另一条),再看「我的配置」里订阅名后面方括号里的节点数。\n 预期:和别的客户端或服务商列的一样多就好了;仍然少,把缺的是哪几个节点(协议、加密方式)告诉服务商,贴之前遮掉服务器地址与订阅链接(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(公开的部分源码 lib/i18n/zh-CN.i18n.json L53-L68(已失效、已被禁用、无可用服务器、代理服务器过多、应用启动失败);lib/screens/home_screen.dart L1499-L1512(代理服务器过多:iOS 门槛 3000、其他 12000);lib/screens/settings_screen.dart L973-L1052(系统休眠后断开连接只在 iOS、macOS 显示))\n- exp-karing-android-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-routing-and-diagnostics-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-speed-test-android-gui-2026-10-02:验证记录(内部存档,未公开)\n\n最后修订:7f3facf 2026-10-02\n"},"lan-share-proxy":{"id":"lan-share-proxy","type":"howto","title":"让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口","aliases":["手机走电脑的代理","手机借电脑的代理上网","平板连电脑的代理","电视走代理","电视走电脑的代理","电视翻墙","允许局域网连接","局域网共享代理","开了局域网连接 手机无法连接","Wi-Fi 代理 填电脑 IP 和端口","苹果电视 旁路由","局域网共享后 Telegram 在应用里设代理","局域网连接的安全风险"],"primary_topic":"clients","topics":["clients","clash-verge-rev","v2rayn"],"intents":[],"applicability":{"client":["clash-verge-rev","v2rayn"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-29","freshness":"current","markdown":"# 让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口\n\n主题:`客户端`\n适用:clash-verge-rev/v2rayn / windows/macos/linux/android/ios / any\n最后验证:2026-09-29\n\n家里的手机、平板、电视没法装或不想装代理工具时,也能让它走电脑上正在用的代理:电脑上开启 Clash Verge Rev 的「局域网连接」或 v2rayN 的「允许来自局域网的连接」,再在那台设备的 Wi-Fi 设置里把代理填成电脑的局域网 IP 和端口(Clash Verge Rev 默认 7897,v2rayN 默认 10808,按源码)。两台设备要在同一个局域网里,比如连着同一个路由器。\n\n先知道三件事:\n\n- **开启后,能连到这台电脑这个端口的任何设备都能用你的代理,不用密码**:开启后电脑在所有网络地址上接受连接,默认不限制来源(按源码)。Clash Verge Rev 界面上没有限制来源或设密码的地方;v2rayN 能给局域网单开一个带用户名密码的端口,但安卓的 Wi-Fi 代理里没有这样一栏(填法见第 5 步)。所以用完就在电脑上关掉,在公共 Wi-Fi 上别开(作者建议)。\n- **Wi-Fi 里填的代理只管认这个设置的应用**:原生安卓的设置页自己就写着「浏览器会使用 HTTP 代理,但其他应用可能不会使用。」Telegram 这类有自己代理设置的应用,在应用里也能填,见第 6 步。\n- **电视**(包括接在电视上的盒子)要网络设置里有「代理」一项才能用这个办法;Apple TV 的使用手册没写有没有,见第 5 步。\n\n## 这些说法怎么核对的\n\n按 Clash Verge Rev 2.5.6、v2rayN 7.24.9 与 mihomo 内核的源码,安卓「设置」应用的 AOSP 源码,以及 Apple、Microsoft、Telegram 的官方文档核对,并在 Linux 虚拟机里实测了 Clash Verge Rev 的「局域网连接」;在一台中文 Windows 11 电脑上实测了两个客户端的整个流程,由一台 Mac 和一台三星安卓手机(One UI 8.5)经它上网,iPhone(iOS 26.5)核对了代理设置的字样。限制:Windows 只测了一台 Windows 11,没有 Windows 10;安卓只测了三星,原生安卓的字样按 AOSP 源码;iPhone 没做连通测试,iPad 与电视没有实际操作过。\n\n## 步骤\n1. **用 Clash Verge Rev 的**(用 v2rayN 的看下一步):在左侧「设置」页的「Clash 设置」一栏打开「局域网连接」开关,立即生效,不用重启(Linux、Windows 上实测)。Windows 上打开时可能马上弹出防火墙询问「是否要允许公共网络和专用网络访问此应用?」,点「允许」,详见第 4 步(Windows 11 上实测)。同一栏「端口设置」右边的数字就是等下要在设备上填的端口(混合代理端口,默认 7897,按源码)。电脑的局域网 IP 也在这里查:点「局域网连接」这几个字旁边的网络图标,弹出「网络接口」,每张网卡下面列着「IP 地址」(Linux、Windows 上实测);选和手机在同一个网段的那个,家里一般是 192.168 或 10 开头、前三段和手机 Wi-Fi 详情里的 IP 相同(作者建议)。开关自己弹回关并弹出报错的,就是没打开,带着报错原文求助(日志找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs),作者建议)。(网站上这一步配有截图)\n 失败时 → escalate\n2. **用 v2rayN 的**(用 Clash Verge Rev 的跳过):点主窗口的「设置」→「参数设置」,在「Core: 基础设置」页打开「允许来自局域网的连接」,点「确定」保存,v2rayN 会重新加载内核(Windows 上实测)。Windows 上点「确定」时可能弹出防火墙询问;换到用另一个内核、而那个内核还没有防火墙规则的节点时,也可能再弹一次;弹了就点「允许」,详见第 4 步(Windows 11 上实测)。设备上要填的端口是同一页最上面的「本地混合监听端口」(默认 10808);「为局域网开启新的端口」保持关着——它要和「允许来自局域网的连接」一起打开才生效,生效后局域网要改用本地端口加 2 的那个端口(Windows 上实测)。保存后主窗口最底下的状态栏显示「局域网:[mixed:10808]」这样的字(数字是你的端口);显示「局域网:none」就是没打开(Windows 上实测)。\n 失败时 → escalate\n3. **查电脑的局域网 IP**(第 1 步已经在 Clash Verge Rev 里查到的跳过)。**Windows**:「开始」→「设置」→「网络和 Internet」,无线连接点「WLAN」,再点「<网络名> 属性」这一行,往下滚到「IPv4 地址」(中文 Windows 11 上实测);有线点「以太网」,看同样的「IPv4 地址」(按 Microsoft 官方文档)。**macOS**:苹果菜单 →「系统设置」→ 边栏「网络」→ 点正在用的网络服务 →「详细信息」→「TCP/IP」(按 Apple 官方文档)。Linux 在系统的网络设置里看(作者建议)。路由器可能重新分配地址,设备哪天突然连不上了,先回来看一眼这个 IP 变没变(作者建议)。\n 失败时 → escalate\n4. **Windows 上**:Windows 防火墙默认拦下别的设备主动连进来的连接,被拦时设备上的请求会一直等到超时,不是马上报错(Windows 11 上用 curl 实测;安卓 Chrome 在电脑那个端口只听本机时也是转圈后显示 ERR_TIMED_OUT)。Clash Verge Rev 装了服务、开着虚拟网卡模式的,这一步不用做:服务运行的内核已经有放行规则「Clash Verge Service core (verge-mihomo.exe)」,不会弹窗,设备直接能连(Windows 11 上实测)。其他情况下,内核程序在防火墙里还没有规则时,打开局域网连接一般会弹窗(实测同一个内核进程只问一次,重启内核后才会再问)「是否要允许公共网络和专用网络访问此应用?」,按钮只有「允许」「取消」:点「允许」;点了「取消」,Windows 就记下阻止规则,以后不再问,一直拦着;这个程序已经有规则的(包括停用的),Windows 也不会再弹窗(Windows 11 上实测,与 Microsoft 官方文档一致)。点了「取消」或者没弹窗、设备还是连不上的,打开「设置 → Windows 安全中心 → 防火墙和网络保护 → 允许应用通过防火墙」,点「更改设置」,找到客户端的内核程序(列表里没有的,点「允许其他应用」浏览选中它),把名称前的框勾上,当前网络类别那一栏(「专用」或「公用」,在「设置 → 网络和 Internet」里看当前连接是哪一种)也要勾着,点「确定」。点过「取消」的程序照样在列表里,只是名称前的框没勾;勾上会把原来那条阻止规则改成允许,一般这样就通了(Windows 11 上实测)。Clash Verge Rev 的内核叫 verge-mihomo,v2rayN 的内核在它安装目录的 bin 文件夹里(例如 xray、sing-box,Windows 上实测)。勾上后还是连不上的,到「防火墙和网络保护」页的「高级设置」→「入站规则」里,看这个程序还有没有阻止规则,有就禁用:Microsoft 的文档写明阻止规则优先于允许规则(按 Microsoft 官方文档)。macOS、Linux 开着系统防火墙的,同样要放行内核程序(作者建议)。\n 失败时 → escalate\n5. **在另一台设备上填代理**。它要和电脑连在同一个路由器下;连的是访客 Wi-Fi 的,换到主 Wi-Fi(作者建议)。**安卓**:在 WLAN 设置里打开已连接网络的修改页面(各品牌手机入口不同),展开「高级选项」,「代理」选「手动」,「代理主机名」填电脑的局域网 IP,「代理端口」填第 1 或第 2 步的端口,保存(按 AOSP 源码里原生安卓的字样,品牌手机的叫法可能不同)。三星手机(One UI 8.5)上是「设置」的 Wi-Fi 页 → 已连接网络右侧的齿轮 → 点「查看更多」→「代理服务器」选「手动」,填「代理主机名」和「代理服务器端口」,点「保存」;安卓的 Wi-Fi 设置里没有填账号的地方,用 v2rayN 带账号的端口时,Chrome 打开网页会自己弹出「登录」框,填对就能用(三星手机上实测)。**iPhone / iPad**:「设置」→「无线局域网」,轻点已连接网络旁边的信息按钮,滑到最底下「HTTP代理」,点「配置代理」→「手动」,填「服务器」(电脑的局域网 IP)和「端口」,点右上角「保存」;用 v2rayN 带账号的端口的,打开同一页的「认证」开关填账号(iPhone 上核对了字样,没做连通测试;iPad 没有核对,按 Apple 官方使用手册)。**电视、电视盒子**:看它的网络设置里有没有「代理」一项,有就同样填,没有就用不了这个办法(作者建议)。Apple TV 的使用手册只写到在「设置」→「网络」里选当前 Wi-Fi 网络能打开附加配置选项,没写里面有没有代理、能不能手动设路由器和 DNS(按 Apple 官方文档),所以 Apple TV 能不能配合旁路由,本条答不了;旁路由本身(让另一台设备当网关)不在本条范围。**用完把设备上的代理改回「无」(iPhone 上是「关闭」)**:电脑关机或关了局域网连接后,设备上还留着代理,Wi-Fi 上就打不开网页;开着移动数据的三星手机会自己改用移动数据,看着照常能上网(三星手机上实测)。\n 失败时 → escalate\n6. **只在需要时做**:浏览器能打开网页、某个应用还是不通,可能是这个应用不用 Wi-Fi 里填的代理——原生安卓在「代理」选「手动」时自己就提示「浏览器会使用 HTTP 代理,但其他应用可能不会使用。」(按 AOSP 源码)。有自己代理设置的应用,可以在应用里单独填,例如 Telegram 官方说明的入口是安卓 Settings > Data and Storage > Proxy Settings、iOS Settings > Data and Storage > Proxy(英文界面的叫法),添加一个 SOCKS5 代理,服务器填电脑的局域网 IP,端口同上(按 Telegram 官方文档)。Clash Verge Rev 的混合端口 HTTP 和 SOCKS5 都收(按内核源码,Linux 上实测);v2rayN 的这个端口配置成混合(mixed)入站(按源码,Windows 上实测)。没有自己代理设置、又不认 Wi-Fi 代理的应用,这个办法管不到(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **lan-check**(人):手机先关掉移动数据:代理连不上时,三星手机会把 Wi-Fi 判成没通过验证、自己改用移动数据,这时网页开不开都说明不了有没有经过电脑(三星手机上实测)。然后在那台设备上打开一个平时要经代理才能打开的网页。用 Clash Verge Rev 的,同时看电脑上左侧的「连接」页。\n 预期:网页正常打开;Clash Verge Rev 的「连接」页里能找到「源地址」是那台设备 IP 的连接——连接很快就会结束,顶上「活跃」「已关闭」两个标签都要看;点一条连接,详情里有「源地址」,默认的表格视图也有这一列,在右边,窗口不够宽时要横向滚动才看得到(Linux 上实测)。打不开时按顺序查(作者建议):先确认电脑这端的代理本身能用:电脑上开着「系统代理」的,用电脑的浏览器打开同一个网页;没开的,先临时打开「系统代理」再试(只开局域网连接时,电脑自己的浏览器不走代理,打不开说明不了什么)。电脑也打不开的,是代理本身不通,先按 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup) 或 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 的最后一步把电脑这端弄好;电脑能打开、而 Clash Verge Rev「连接」页的「活跃」「已关闭」里都找不到来自那台设备的连接,多半是设备的请求没到电脑,回头核对设备上填的 IP 和端口、Windows 防火墙(第 4 步)、两台设备是不是连着同一个路由器;找得到来自那台设备的连接、网页还是打不开的,带着这条连接的「链路」和「规则」求助。用 v2rayN 的没有这个页面:当前节点用 Xray 内核时,主窗口的信息栏里出现 `from <那台设备的 IP>:… accepted` 这样的行,就说明设备的请求到了电脑(Windows 上实测);其他情况只能按设备上能不能打开网页来判断。浏览器能开、某个应用不通的,看第 6 步。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/components/setting/setting-clash.tsx L146-L169(「Clash 设置」里的「局域网连接」开关,标签旁的网络图标打开网络接口对话框)、L270-L282(「端口设置」显示的是正在用的混合端口);src/components/setting/mods/setting-comp.tsx L34-L35(图标紧跟在标签文字后面);src/components/setting/mods/guard-state.tsx L42-L79(改设置失败时开关弹回原值并报错);src-tauri/src/feat/config.rs L22-L23(切换 allow-lan 只更新内核配置,不重启内核);src/components/setting/mods/network-interface-viewer.tsx L24-L87(网络接口对话框:每张网卡的名字、IP 地址,缺省显示 IPv4);src-tauri/src/constants.rs L11 与 src-tauri/src/config/clash.rs L73、L77(混合端口默认 7897,allow-lan 默认关);src-tauri/src/core/listener.rs L250-L271(关着时代理端口只在本机回环地址上监听;打开且 bind-address 为 * 时在全部 IPv4 与 IPv6 地址上监听);src-tauri/src/enhance/mod.rs L306-L327(allow-lan 由应用接管,订阅里写的不算)、L534-L547(打开时把回环地址的 bind-address 放宽为 *);src/ 下没有 lan-allowed-ips、bind-address、authentication 的界面入口(2026-09-29 grep);src/hooks/use-connection-setting.ts L3(连接页默认表格视图);src/components/connection/connection-table.tsx L447-L451(表格的「源地址」列);src/components/connection/connection-detail.tsx L114-L117 与 src/components/connection/connection-row-view.ts L75-L78(详情里的「源地址」是连接来源的 IP:端口);src-tauri/tauri.conf.json L17(内核程序 verge-mihomo);src/locales/zh/settings.json L100、L103、L108、L140、L644-L646,src/locales/zh/connections.json L3、L14,src/locales/zh/layout.json L8、L12(界面文字))\n- exp-lan-share-proxy-gui-linux-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-firewall-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-lan-share-proxy-devices-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(Clash Verge Rev 2.5.6 自带的内核版本。listener/listener.go L709-L718(allow-lan 关时只监听本机回环地址,开且 bind-address 为 * 时监听全部地址);config/config.go L482-L494(默认 allow-lan 关、bind-address 为 *、lan-allowed-ips 为全部 IPv4 与 IPv6 地址、authentication 为空);listener/mixed/mixed.go L148-L163(混合端口按第一个字节分给 SOCKS4、SOCKS5 或 HTTP))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/v2rayN/Views/OptionSettingWindow.xaml L49、L84-L97、L180-L236 与 v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml L38、L45-L55、L133-L183(「Core: 基础设置」页:本地混合监听端口、允许来自局域网的连接、为局域网开启新的端口、认证用户名与密码);v2rayN/ServiceLib/Handler/ConfigHandler.cs L44-L56(本地端口默认 10808);v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayInboundService.cs L9-L53、L151-L152 与 v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxInboundService.cs L9-L51(允许局域网时本地端口改为在全部地址上监听;开了新端口时只有新端口对局域网开放,端口号为本地端口加 2,用户名与密码只加在它上面;入站类型 mixed);v2rayN/ServiceLib/Enums/EInboundProtocol.cs L5-L7(socks3 偏移 2);v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs L492-L514(状态栏「局域网:[mixed:端口]」或「局域网:none」);v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs L572-L585(参数设置点确定后刷新状态栏并重新加载内核);v2rayN/ServiceLib/Common/Utils.cs L1141-L1156(内核放在 bin 下按内核类型分的文件夹里);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L394、L417-L418、L432-L433、L570-L571、L663-L664、L672-L673、L729-L730、L900-L901(界面文字))\n- aosp-settings-7c59825:https://github.com/aosp-mirror/platform_packages_apps_settings/tree/7c598253ff60f06f8e6fe046f18fd88e9daa72d3(Android 开源项目「设置」应用。这个 commit 是 android.googlesource.com/platform/packages/apps/Settings 的 refs/heads/main(2026-09-29 用 git ls-remote 核对),GitHub 镜像里同一 commit 的文件 blob 与官方仓库一致(gh api 核对 res/values-zh-rCN/strings.xml 的 blob);链镜像而不链官方仓库网页,是因为后者当时对外链检查返回 503。res/layout/wifi_network_config.xml L447-L566(Wi-Fi 修改页的代理下拉框、提示行、主机名、端口、不使用代理的网址);src/com/android/settings/wifi/WifiConfigController2.java L1484-L1495(选「手动」时显示提示行与主机名、端口);res/values-zh-rCN/arrays.xml L133-L137(无 / 手动 / 代理自动配置 (PAC));res/values-zh-rCN/strings.xml L148、L150、L154、L162(代理、代理端口、代理主机名、「浏览器会使用 HTTP 代理,但其他应用可能不会使用。」)、L994(高级选项)、L1101(保存))\n- apple-iphone-wifi-settings:https://support.apple.com/zh-cn/guide/iphone/iphw5gjwl8k2/ios(更改所接入网络的设置:前往「设置」App,轻点「无线局域网」,轻点信息按钮……配置 DNS、HTTP 代理和其他网络设置:轻点一项设置,然后输入详细信息)\n- apple-ipad-wifi-settings:https://support.apple.com/guide/ipad/manage-wi-fi-settings-ipad5c26lnzvpiky/ipados(Manage settings for Wi-Fi and hotspots:Go to the Settings app, tap Wi-Fi, tap the info button……Configure DNS, HTTP Proxy, and other network settings: Tap a setting, then enter the details)\n- apple-tv-network-settings:https://support.apple.com/zh-cn/guide/tv/atvb00f5b993/tvos(在 Apple TV 4K 上更改 Wi-Fi 网络:前往「设置」→「网络」→ Wi-Fi……你还可以选择当前 Wi-Fi 网络访问附加配置选项(全页没有代理、DNS、路由器的说明))\n- apple-mac-tcpip:https://support.apple.com/zh-cn/guide/mac-help/mh14129/mac(在 Mac 上更改 TCP/IP 设置:苹果菜单 >「系统设置」,点按边栏中的「网络」,点按一种网络服务,点按「详细信息」,然后点按 TCP/IP)\n- ms-windows-network-settings:https://support.microsoft.com/zh-cn/windows/experience/connectivity-networking/essential-network-settings-and-tasks-in-windows(查找你的 IP 地址:转到网络和 Internet 设置,Wi-Fi 连接选择 Wi-Fi 再选择连接到的网络,以太网连接选择以太网,查找 IPv4 地址旁边列出的 IP 地址)\n- ms-firewall-rules-learn:https://learn.microsoft.com/zh-cn/windows/security/operating-system-security/network-security/windows-firewall/rules(入站和出站规则的规则优先级(显式阻止规则优先于任何冲突的允许规则);应用程序规则(Windows 防火墙默认阻止,必须有入站异常规则;没有允许规则时首次启动应用或在网络中通信时提示用户允许或阻止,响应否或取消提示则创建阻止规则,之后必须删除规则才会再次提示,否则继续阻止))\n- ms-firewall-allow-app:https://support.microsoft.com/zh-cn/windows/security/firewall/risks-of-allowing-apps-through-windows-firewall(在允许的应用列表中添加或删除应用:打开 Windows 安全中心,选择防火墙和网络保护 → 允许应用通过防火墙 → 更改设置,勾选应用旁边的复选框或允许其他应用;打开或关闭端口:高级设置 → 入站规则 → 禁用规则)\n- telegram-core-proxy:https://core.telegram.org/proxy(Adding a Proxy:Android: Settings > Data and Storage > Proxy Settings;iOS: Settings > Data and Storage > Proxy;Telegram apps generally support two types of proxies – SOCKS5 and MTProto. SOCKS5 proxies only require a server and port)\n\n最后修订:93d51f8 2026-09-30\n"},"latency-test-meaning":{"id":"latency-test-meaning","type":"concept","title":"节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)","aliases":["节点延迟 -1","延迟显示 -1","真连接延迟 -1","测试真连接延迟","测试延迟 Tcping","Tcping 和真连接","Clash Verge 延迟 Timeout","Clash Verge 延迟 Error","An error occurred in the delay test","延迟测试正常网页打不开","延迟很低但不能用","延迟和网速","节点测速","DIRECT 测速超时","统一延迟 unified-delay","节点全部 Timeout 却能上网","延迟正常网页还是很慢","v2rayN 真连接显示绿色"],"primary_topic":"nodes-latency","topics":["nodes-latency","clash-verge-rev","v2rayn","basics"],"intents":[],"applicability":{"client":["clash-verge-rev","v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)\n\n主题:`基础概念` › `节点与延迟测试`\n适用:clash-verge-rev/v2rayn / windows/macos/linux / any\n最后验证:2026-09-27\n标记:信息说明\n\n> 延迟测试是经这个节点访问一个测速地址、拿到回应要多少毫秒,含建立连接和测速服务器自己的回应时间;它不是网速,也不经过分流规则,系统代理和 TUN 关着也能测出数。-1、Timeout、Error 都只说明没测成,原因可能在本机、测速地址、节点参数或服务方。Clash Verge Rev 里这一次手动测试失败一般显示 Timeout,内核返回哪种失败都一样;Error 多半是内核记下的上一次失败,刚测过、没弹地址格式提示仍全是 Error 的,2.5.5 起先按正文排除「内核未运行」和服务不可用,再换测速地址重测;v2rayN 的 Tcping 只看端口能不能连上,真连接才真正经过节点。\n\n节点后面那个毫秒数(ms),是**经这个节点去访问一个测速地址、拿到回应要多久**。它不是网速;测速也不经过你的分流规则,系统代理和 TUN 都关着照样测得出数。所以数字好看不说明代理已经生效;显示 -1、Timeout 或 Error,也不一定说明节点坏了。\n\n- **Clash Verge Rev 显示 `Timeout`**:这一次手动测试没测成。真超时、端口拒绝连接、口令错,界面都是这一个词。`Error`:多半是界面上还没有这一次的手动结果,显示的是内核记下的上一次测试,那次失败了;插件调用本身出错、2.5.2 里用 proxy-providers 引入的节点手动测失败,也显示它(按源码,见下文)。**刚点过测速、没弹测速地址格式的英文提示,仍然全是 `Error`**:先看首页「系统信息」卡片的「运行模式」(「内核未运行」这个状态 2.5.5 起才有):显示「内核未运行」的,是内核停了、不是节点的问题,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)(2.5.6 在 Linux 上实测:内核停着时点测速全是 `Error`)。`-`:没有任何测试结果。\n- **v2rayN 显示 -1**:这一次没测成。「测试真连接延迟」超时或出错都记 -1(测试用的临时内核起不来时除外,见下文);「测试延迟 Tcping」只看服务器端口 5 秒内能不能连上,口令错了也照样出数字。\n- **节点全部 Timeout 却能上网**:测速只访问一个测速地址,它不回应时,能用的节点也显示超时(实测与源码见下文)。\n- **v2rayN 真连接显示绿色,网页却打不开**:真连接用的是另起的临时内核,不经过你的系统代理和分流设置,绿色只说明这个节点能拿到测速地址的回应。\n- **延迟低不等于网速快**,多少毫秒算正常也没有官方标准。\n\n**下一步**:\n\n- 数字正常但网页打不开:要查的是流量有没有交给客户端、走了哪个出口,见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)。\n- 只有个别节点红:换一个有数字的节点用(作者建议)。\n- 所有节点都红:Clash Verge Rev 刚点过测速、没弹那条英文提示仍全是 `Error` 的,先照上面看「运行模式」;用服务模式的,服务被停掉时这一行仍显示「服务模式」,先完全退出再打开,重开时弹「需要更新系统服务」、右边是「修复服务」的,是服务当前不可用,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 处理(Windows 上实测);没弹这个对话框、2.5.5 起、「运行模式」正常的,和其余情况一样,先换一个测速地址再测;2.5.4 及更早的版本内核停了也照样显示「用户模式」或「服务模式」,先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 确认内核在跑。Clash Verge Rev 在代理页该组表头点「延迟测试链接」按钮就能手填地址,地址要以 `http` 或 `https` 加 `://` 开头,不然点组表头的测速按钮只弹一条英文提示(大意是测速地址必须以 http 或 https 开头)、不会测;单个节点上点测速不做这项检查,会直接拿这个地址去测(2.5.5 起,按源码),v2rayN 在设置里改「真连接测试地址」;换了地址就有数,说明是原来那个地址的问题。换了地址仍然全红,先把改过的测速地址改回原来的值(手填的清空),再按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 一步步分清是本机还是服务方的问题。\n\n## 这个数字测的是什么\n\nClash Verge Rev 里实际干活的是 mihomo 内核。它对测速地址发一次只要响应头、不下载内容的请求(HTTP `HEAD`),**从开始经这个节点建立连接起计时,到拿到响应头为止**。所以这个数字包含了:你到节点建立连接、节点再去连测速地址、测速服务器自己回应要多久。实测把测速服务器故意放慢 1.5 秒,测出来就是 1505 毫秒左右;它慢到超过时限,节点再快也显示超时。\n\n**这对你意味着**:它不是单纯到节点的 ping,测速地址本身慢或不通,也会算到节点头上。\n\n测速地址和时限各家不一样,同一个节点在不同客户端里结果可能不同:\n\n- **Clash Verge Rev**:优先用代理页该组表头里手填的地址,其次是配置里该组的 `url`,再次是设置里的「默认测试链接」,都没有就用 Cloudflare 的测速地址(`cp.cloudflare.com/generate_204`,走 http);默认时限 10000 毫秒(设置里的「测试超时时间」)。\n- **mihomo 策略组的自动检查**:`url-test`、`fallback` 这类组默认每 300 秒测一次,`select`(手动选择)组不定时测;不写 `url` 时用 Google 的 `www.gstatic.com/generate_204`(https),不写 `timeout` 时 5000 毫秒。`url`、`timeout`、`lazy` 这几个字段的含义见官方文档,其中 `lazy` 默认开,没选到这个组时不测。`url-test` 组按测得的延迟自动选节点,只有当前节点失效、或比最快的慢出「容差」(`tolerance`,单位毫秒)以上才换。\n- **v2rayN 真连接**:默认 `www.google.com/generate_204`(https),设置里可换成几个预置地址或自己填。\n\n**统一延迟(`unified-delay`)**:官方说明是开启后「计算 RTT,以消除连接握手等带来的不同类型节点的延迟差异」,也就是去掉建立连接那部分的耗时。源码里的做法是在同一条连接上再发一次请求、只取第二次的耗时;第二次失败就保留第一次的结果,测速地址用的是 http 而不是 https 时,日志还会记一行 `failed to get the second response from`——**这一行不等于测速失败**,数值照常给出。mihomo 自己默认不开它,而 Clash Verge Rev 生成的默认内核设置里把它设成了开(设置页的「统一延迟」开关)。开和不开测出来的数含义不同,别拿来直接比(作者据上面的机制给的提醒;实测时测速目标不支持连接复用,没能观察到它正常工作时的差异)。\n\n## 它不经过分流规则,也不管系统代理开没开\n\n延迟测试是**直接拿指定的那个节点去连**,不看当前的模式和规则。实测把 mihomo 切到「直连」模式,对节点测速仍然出数,节点端也确实收到了连接;同一时刻普通流量走的是直连。在 Clash Verge Rev 2.5.2 上,系统代理和 TUN 都关着,测速照样出数。v2rayN 的真连接测试另起一个临时内核,每个节点配一个只监听本机的入口直通这个节点,不带你设的分流规则(Xray 内核的测试配置把路由规则整个清空)。\n\n还有两个它测不到的:\n\n- **只测一个地址**。测速地址不回应时显示超时,而同一个节点转发别的网站完全正常,这一点实测过。反过来,数字好看也只说明这一个地址能访问。\n- **只测 TCP 转发**。测试本身是一次 HTTP 请求,节点能不能转发 UDP(游戏、语音常用)测不出来;v2rayN 另有「测试 UDP 延迟 (多选)」。\n\n**这对你意味着**:测速正常而网页打不开时,要查的是「流量有没有交给客户端、交过去后走了哪个出口」,去 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 查;模式怎么选见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes),系统代理与 TUN 的区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。\n\n## Clash Verge Rev 上的 -、Timeout、Error\n\n内核的延迟接口测完之后的回答分三种:测成了回毫秒数;到了时限回 504 `Timeout`;别的失败回 503,内容是 `An error occurred in the delay test`。测成了但不到 1 毫秒(例如测速地址就在本机或局域网),取整后是 0,也回 503。在 Clash Verge Rev 2.5.2 自带的 mihomo(控制接口报告版本 v1.19.29)上实测:口令错、端口拒绝连接的节点立即回 503(本机回环上不到 1 毫秒;口令错时回 503 还是等到超时,取决于节点服务端:这次的服务端认证失败后立刻断开,别的服务端没有测过);不可达的地址等满 10 秒回 504;测速地址不回应时,正常节点也回 504。上面引用的内核源码是 v1.19.31,和 v1.19.29 相比,测速、延迟接口、策略组默认值这几处没有改动。\n\n按源码,Clash Verge Rev 自带的插件收到**任何非成功的回答(503 和 504 都算),一律记成 0**,界面把 0 显示成 `Timeout`。按 2.5.2、2.5.5 与 2.5.6 的源码,界面这样显示:\n\n| 显示 | 意思 |\n|---|---|\n| `-` | 没有任何测试结果:没手动测过,内核也没有记录(例如只在手动选择组里、从没被测过的节点) |\n| 毫秒数 | 测成了 |\n| `Timeout` | 这一次手动测试失败——**不一定是真的超时**,端口被拒、口令错也显示它;界面自己等满时限也记这个 |\n| `Error` | 界面上还没有这一次的手动结果(例如刚重开应用),于是显示内核记下的最近一次测试,那次失败就是 `Error`;那一次可能是策略组的自动检查,也可能是之前的手动测试。插件调用本身出错也记成它,例如内核已经停了、界面连不上它。2.5.5 起,点了测速仍全是 `Error` 的,先确认点组表头测速按钮时没弹出以 `Test URL must start with` 开头的英文提示:弹了说明手填的测速地址格式不对、这次根本没测,显示的可能还是旧结果(按源码);确实测了仍全是 `Error`,可能是这一次的调用出错(2.5.2 里 proxy-providers 引入的节点另说,见下文),先看首页「运行模式」是不是「内核未运行」,是的见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)(2.5.6 在 Linux 上实测:内核停着时点测速全是 `Error`) |\n\n**2.5.2 和 2.5.5 有一处不同**:2.5.2 对订阅配置里用 proxy-providers 单独引入的节点,不用这一次的手动结果,只显示内核记下的最近一次测试,所以手动测失败也显示 `Error` 而不是 `Timeout`;2.5.5 去掉了这个判断,这类节点和其它节点显示得一样,2.5.6 与 2.5.5 相同。这一条只按源码核对,没有拿这类节点实测。\n\n**这对你意味着**:看到 `Timeout` 别急着判定「节点太慢」,它只说明这次没测成。`Timeout` 和 `Error` 都表示没测成:普通节点这一次手动测试失败,一般显示 `Timeout`;`Error` 多半是显示内核记下的上一次失败,也可能来自插件调用本身出错(例如内核停了,这时先去 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error),别找服务方),或者 2.5.2 里用 proxy-providers 引入的节点。数字的颜色是界面自己的分档(2.5.5 里小于 250、250 到 399、400 及以上各一种颜色),不是好坏标准。\n\n**`DIRECT` 没法拿来对照**:Clash Verge Rev 的代理页对 `DIRECT`、`REJECT` 这类内置出口不显示延迟,所以在它里面没法靠测 `DIRECT` 判断是不是测速地址的问题。内核本身对 `DIRECT` 测速也是去访问同一个测速地址(命令行实测 `DIRECT` 对本机测速地址测出了数值);在别处直接调内核接口看到 `DIRECT` 超时,按同一套机制,说明的是测速地址在你的网络里直连访问不到,不说明直连坏了(推论,没有在访问不到测速地址的网络里实测过)。\n\n## v2rayN 的 Tcping、真连接与测速\n\nv2rayN 有三种测试(下面是中文界面的菜单名),测的东西完全不同:\n\n- **「测试延迟 Tcping (多选)」**:只和服务器端口建一次 TCP 连接,连上就记耗时,5 秒没连上记 -1。它不发任何代理协议数据,所以**口令、协议参数、TLS 设置错了照样出数字**。另外,按源码,7.24.9 只有「5 秒超时」会被记成 -1,连接被拒时这次结果不会写入;7.25.4 连接被拒也记 -1。两个版本在域名解析失败时都不写结果,界面停在测试开始时显示的「测试中...」(界面上的表现没有实测)。\n- **「测试真连接延迟 (多选)」**:经临时内核用 HTTP GET 访问真连接测试地址,连续两次取较小的耗时;没在时限内完成或中途出任何错,都记 -1,时限按源码 7.24.9 是 9 秒、7.25.4 是 5 秒;**不看返回的状态码**。\n- **「测试速度 (多选)」**:经节点下载测速文件算速率,和延迟是两回事。「一键多线程测试延迟和速度」里,延迟不大于 0 的节点直接跳过测速。\n\n**临时内核起不来时,不会记 -1**。延迟列停在测试开始时的「测试中...」。只选一个节点时不会重测,界面上就停在这里;多选时,有一批没测成就会转入逐个节点重测(重测的是全部所选节点),内核仍起不来的节点在速度那一列显示「运行 Core 失败,请查看提示信息」。「一键多线程测试延迟和速度」和「测试速度」里内核起不来,也是在速度列显示这一句。这一段按源码推断,界面没有实测。\n\n**Hysteria2、TUIC 这类节点别用 Tcping 判断**:它们走的是 UDP(QUIC),而 Tcping 一律用 TCP 去连节点端口。这时得到 -1、停在「测试中...」,或者端口上碰巧有别的程序而出个数字,都说明不了节点好坏,要看真连接(按源码推断,没有实测)。\n\n用脚本按上面的源码测法复现过(**不是运行 v2rayN 本体**):口令错的节点 Tcping 有数、真连接为 -1;端口无人监听时连接立刻被拒而不是超时;不可达地址 5 秒后记 -1。\n\n延迟列直接显示数字:不大于 0 为红色,1 到 500 为绿色,超过 500 为浅红。这同样只是配色。\n\n**这对你意味着**:Tcping 有数、真连接 -1,说明服务器端口开着,但经这个节点没拿到测速地址的回应——可能是节点参数不对,也可能是测速地址在节点那头不通,不一定是网络慢。只看 Tcping 判断节点能不能用是不够的。\n\n## 几个流传的说法\n\n- **「-1 就是节点在维护或被封了」**:源码里 -1 只表示这一次没测成,超时或出错都记 -1(临时内核起不来时不记 -1,见上文)。本机网络、测速地址不通、节点参数错,都会得到 -1,不能据此断定服务方出了什么事。\n- **「真连接延迟就是刷网页的真实体验」**:它是在不带分流规则的临时内核里,对一个测速地址请求两次取较小值,而且不看状态码。它只说明经这个节点能拿到这个地址的回应。\n- **「延迟越低网速越快」**:延迟测试只取一个空页面或一次 `HEAD` 的回应,带宽要另测(v2rayN 的「测试速度」)。\n- **「测速正常说明代理已经生效」**:测速绕过分流规则,系统代理和 TUN 关着也出数,说明不了这个。\n- **「多少毫秒以内算正常」**:没有官方标准。两个客户端的颜色分档各不相同,是界面设计,不是质量线。\n- **「加了 `expected-status`,测速按钮就会按状态码报失败」**:官方文档里它默认为 `*`,对状态码不做要求。Clash Verge Rev 测单个节点时只把时限和测速地址交给内核,不带状态码要求,所以手动测速不会因为状态码判失败。配置里写了 `expected-status` 的 `url-test`、`fallback` 组才受影响:自动检查时状态码不符的节点被记为不可用,自动选节点时跳过它。命令行实测也看到,状态码不符时接口照样回数值,只是按这个测速地址存下的记录标成了不可用。\n\n## 这些结论是怎么核对的\n\n在 macOS 上运行过 Clash Verge Rev 2.5.2(从它自带内核的控制接口读结果,系统代理和 TUN 全程关着),另用命令行 mihomo v1.19.31 复现了测速机制;内核停着时测速全是 `Error`,是在 Linux 上运行 Clash Verge Rev 2.5.6 时看到的;其余按 Clash Verge Rev 2.5.2、2.5.5 与 v2rayN 7.24.9 的源码核对(v2rayN 的 Tcping 失败记法与真连接时限另按 7.25.4 的源码);2.5.6 与测速有关的源码和 2.5.5 相同。\n\n- 本条自己的实验没有看 Clash Verge Rev 的界面:`-` 与「`Error` 是内核记下的上一次失败」只按源码;端口被拒、不可达都显示 `Timeout`,另在 macOS 的 2.5.2 界面上看到过。\n- 没有运行 v2rayN,Tcping 与真连接的对比是用脚本按源码测法复现的。\n- Windows 上只实测了服务被停掉后界面仍显示「服务模式」、重开弹「需要更新系统服务」这一种,测速本身没有在 Windows 上测;Linux 只看过内核停了的这一种。\n- 实测的节点和测速地址都在本机,毫秒数不代表真实线路。\n\n\n## 本文术语\n- **节点**:一台替你转发流量的代理服务器;订阅里一般有很多个,你在客户端里选一个来用。\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/adapter.go L166-L200(每一次 URLTest 结束都写节点的延迟历史与按测速地址的存活记录,不论是谁发起;状态码不符只把按地址的记录置为不可用)、L202-L278(计时从拨号开始、HEAD 请求、不跟随跳转、统一延迟的第二次请求)、L47-L53(AliveForTestUrl);hub/route/proxies.go L106-L148(延迟接口:到时限回 504 Timeout,其它失败或取整为 0 回 503,L135);adapter/outboundgroup/parser.go L165-L176 与 constant/adapters.go L65(默认测速地址 gstatic generate_204、默认 5000 毫秒、select 组不定时检查、其它组默认 300 秒);adapter/outboundgroup/urltest.go L108、L127、L138-L139 与 fallback.go L109(自动选节点跳过按地址记为不可用的节点、tolerance);adapter/provider/healthcheck.go L184(自动检查带上组的 expected-status);config/config.go(UnifiedDelay 默认 false)。与 v1.19.29 对比(GitHub compare v1.19.29...ab405ba,148 个文件):上述文件中只有 constant/adapters.go 新增两个协议枚举,其余未改动)\n- metacubex-docs-repo-517f4c2:https://github.com/MetaCubeX/Meta-Docs/tree/517f4c2303aae17eee681129bde6422e9f7a4e67(docs/config/proxies/index.md L62-L67(udp 字段:在 TUIC 等基于 UDP 的协议中默认开启);docs/config/proxies/hysteria2.md L70-L76(obfs 为 QUIC 流量混淆器))\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(统一延迟(unified-delay)一节)\n- metacubex-wiki-proxy-groups:https://wiki.metacubex.one/config/proxy-groups/(通用字段 url、lazy、timeout、expected-status)\n- metacubex-wiki-url-test:https://wiki.metacubex.one/config/proxy-groups/url-test/(tolerance:节点切换容差,单位 ms)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src/utils/delay.ts(classifyDelay、默认超时 10000);src/services/delay.ts L248-L261(getDelayFix:先用本次手动结果,没有才取内核历史的最后一条,0 改记 1e6;不区分节点来源)以及 getUrl 兜底地址、measureDelay 到时记 0 与异常记 1e6、formatDelay 与 formatDelayColor;src/hooks/use-proxy-delay-state.ts L12-L18、L39(DIRECT、REJECT 等内置出口 isPreset,不显示延迟);src/components/proxy/proxy-head.tsx L69-L76(测速地址优先顺序)与 L129-L140、L191-L200(表头「延迟测试链接」按钮与手填地址的输入框);src/locales/zh/proxies.json(延迟测试链接);src/locales/zh/settings.json(默认测试链接、测试超时时间、统一延迟);src-tauri/src/config/clash.rs L112(默认内核设置 unified-delay 为 true)与 src-tauri/src/config/runtime.rs L7;Cargo.lock(tauri-plugin-mihomo 钉在 17c7757))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)比对:src/services/delay.ts、src/utils/delay.ts、src/components/proxy/、src/hooks/use-proxy-delay-state.ts、src-tauri/src/config/clash.rs、src/locales/zh/proxies.json 没有改动,行号同 v2.5.5(getDelayFix L248-L261、proxy-head.tsx L69-L76、clash.rs L112);Cargo.lock L7376-L7378(tauri-plugin-mihomo 钉在 ba8434c);src/services/delay.ts L328-L335(测速调用抛错时记 1e6)与 src/utils/delay.ts L23(大于 1e5 显示为 error);src/components/proxy/proxy-head.tsx L100-L103 与 src/utils/network.ts L14-L21(手填测速地址不以 http 或 https 加 :// 开头时只弹 proxies.feedback.warnings.invalidTestUrl、不测,这一检查 v2.5.5 已有、v2.5.2 没有);src/locales/zh/proxies.json L93(该提示在中文界面也是英文原文,以 Test URL must start with 开头))\n- tauri-plugin-mihomo-ba8434c:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/ba8434c08c869916b8041d707ad66599bb5230b2(Clash Verge Rev v2.5.6 钉的版本。src/mihomo.rs L945-L970 delay_proxy_by_name(请求只带 timeout 与 url;非成功状态记 delay 0;连不上内核时 send 直接返回错误,不记 0)。与 17c7757 相比只给代理集合、规则集合的更新加了超时,这个函数没变)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/services/delay.ts L188-L203(getDelayFix 以 if (!proxy.provider) 开头:来自 proxy-provider 的节点不用本次手动结果,只取内核历史的最后一条,0ms 以 error 显示)、L205-L215(provider 节点改走 provider 的 healthcheck 接口)与 L338-L353(formatDelay、formatDelayColor);src/types/global.d.ts L108(provider 字段:记录是否来自 provider);src/components/proxy/proxy-head.tsx L69-L70;src-tauri/src/config/clash.rs L109(默认内核设置 unified-delay 为 true);src-tauri/Cargo.lock L7308-L7310(tauri-plugin-mihomo 钉在 cf97ff9))\n- tauri-plugin-mihomo-17c7757:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/17c7757389ca73d29882753ecf7a160de29aabbe(src/mihomo.rs L944-L970 delay_proxy_by_name(请求只带 timeout 与 url 两个参数,L951;内核回非成功状态时 mark it timeout,记 delay 0))\n- tauri-plugin-mihomo-cf97ff9:https://github.com/clash-verge-rev/tauri-plugin-mihomo/tree/cf97ff99e390a9b437d5cf94c6f454f024fc8f69(src/mihomo.rs L758-L783 delay_proxy_by_name(请求同样只带 timeout 与 url,L764;非成功状态记为 delay 0))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Services/SpeedtestService.cs:L39-L67(各测试的入口)、L108-L128(GetClearItem 先把延迟列设为测试中)、L187-L227(真连接分批;失败批次只在 pageSize/2 大于 0 时重测,最后转入 RunMixedTestAsync)、L229-L237(RunRealPingAsync 起不来临时内核时直接返回 false,不写 -1)、L356-L380(RunMixedTestAsync 起不来内核时把运行 Core 失败写进速度列)、L479-L507(GetTcpingTime 一律用 TCP 套接字连接,只接住 5 秒超时);DoRealPing、DoSpeedTest、DoUdpTest;ServiceLib/ViewModels/ProfilesViewModel.cs L292-L300(延迟为空串时不更新延迟列);ServiceLib/Handler/ConnectionHandler.cs L69-L99(GetRealPingTime:GET 两次取较小、9 秒、任何异常为 -1);ServiceLib/Services/CoreConfig 目录下 V2ray 与 Singbox 两个服务里生成测速配置的函数(每节点一个本机入站直通出站;V2ray 版 L87-L200,清空路由规则);ServiceLib/Global.cs L164-L172(真连接测试地址预置项);ServiceLib/Resx/ResUI.zh-Hans.resx(菜单名、测试中...、运行 Core 失败、真连接测试地址);v2rayN.Desktop/Converters/DelayColorConverter.cs(配色))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Handler/ConnectionHandler.cs L69-L105(GetRealPingTime:GET 两次取较小,总时限与建连时限都是 Global.LocalFetch,任何异常为 -1);ServiceLib/Global.cs L100(LocalFetch 5 秒);ServiceLib/Services/SpeedtestService.cs L550-L584(GetTcpingTime:域名解析在 try 之外;连接时接住所有异常,记 -1)、L201-L235(RunTcpingAsync:GetTcpingTime 抛出的异常只写日志,不写结果))\n- exp-latency-test-meaning-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-latency-test-meaning-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-all-nodes-timeout-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- metacubex-wiki-proxies:https://wiki.metacubex.one/config/proxies/(出站代理 › 通用字段:proxies(代理节点,内容为数组);name、type(必须,代理节点类型)、server(代理节点服务器)、port;侧栏「出站代理」下的 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC、WireGuard 等各协议页。这是 mihomo 内核的文档)\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(打开代理(或开启 Tun 模式))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(Meta 内核、Alpha 内核、CFW、CFA 四节;UA 一节(订阅服务商按 UA 下发不同配置、返回 YAML 格式的 mihomo 配置即正确);服务模式一节(开了服务模式时由服务进程拉起内核))\n\n最后修订:dc501fa 2026-10-02\n"},"latest-version":{"id":"latest-version","type":"reference","title":"Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本","aliases":["Clash Verge Rev 新版本什么时候发布","Clash Verge 下一版什么时候出","Clash Verge 新版发布了","Clash Verge 新版本要不要升级","Clash Verge Rev 当前正式版","Clash Verge autobuild 版本","Clash Verge autobuild 在哪下载","Clash Verge autobuild 和正式版的区别","Clash Verge autobuild 下载链接失效","GitHub Releases 老版本被覆盖","Clash Verge 测试版","Clash Verge 预发布版","Clash Verge rc 版","Clash Verge rc 版和正式版的区别","Clash Verge Pre-release 预发布","Clash Verge v2.5.4-rc.2 发布说明 下载链接 404","Clash Verge Verge 版本 v2.5.4","Clash Verge 怎么看版本号","Verge 版本号","Clash Verge 怎么看内核版本","Clash Verge 侧栏 NEW 按钮","Clash Verge 检查更新 当前已是最新版本","Clash Verge 更新对话框 前往发布页","Clash Verge 从 autobuild 回到正式版","已经是最新内核版本","Mihomo Alpha 内核"],"primary_topic":"reference","topics":["reference","clash-verge-rev","updates"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本\n\n主题:`参考`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n标记:信息说明\n\n**日常使用装正式版就行;有新版时先看这一版的更新说明,再决定升不升。** 说明里有你正遇到的问题或要用的功能就升;都没有,可以等一等再升(作者建议,官方没有这样说)。\n自己装的是哪一版,看「设置」页「Verge 高级设置」里的「Verge 版本」;手动查新版点同一处的「检查更新」。\n看说明:点侧栏红色的 `NEW` 按钮或「检查更新」,打开的「新版本 v…」对话框里有说明(只在简体中文界面显示);看不到说明就去发布页看这一版的说明。\n启动时自己弹出的「新版本 (v…) 已下载完成,是否立即安装?」里没有说明,想先看就点「稍后」,再按上面去看。\nLinux ARM(安装包文件名带 arm64、armhf、aarch64、armhfp 的)不要点「更新」,直接去发布页手动装新版,原因见下文。\n官方把正式版(Stable)定为适合日常使用,autobuild(滚动更新的测试版)适合测试反馈、可能有缺陷。\n发布页是 <https://github.com/clash-verge-rev/clash-verge-rev/releases>:标着 Latest 的是当前正式版;名字带 `-rc`、标着 Pre-release 的是预发布;autobuild 是单独的一页 <https://github.com/clash-verge-rev/clash-verge-rev/releases/tag/autobuild>,在列表里排得很靠后。\n\n官方安装包只在这里发布:官方安装页写明「目前仅通过 GitHub Release 发布,请注意辨别」,同一页另列了 WinGet(发版流程自动提交)、Arch Linux 的 AUR 包,以及注明社区维护的 Scoop。\n网上自称 Clash Verge Rev「官网」「下载中心」的其他网站不是官方发布渠道,怎么辨别见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)。官方文档页是 README 里链接的 clash-verge-rev.github.io,会跳转到 clashverge.dev。\n正式版没有公布发版时间(README 和官方安装页都没写),出了就会出现在发布页上;2026-09-27 时应用内更新给的是 v2.5.6。\n首页「最后检查更新」右侧的时间也能点:查到新版时只提示「有可用更新」并跳到设置页,再点「检查更新」才打开对话框。\n\n## 更新时的几种提示是什么意思\n\n- **「当前已是最新版本」**:应用内更新读的是一份更新清单,每次发正式版时按当时标 Latest 的那一版生成,维护者也可以手动重新生成,平时两者一致。\n rc 和 autobuild 都不进这份清单,发布页最上面那一版标着 Pre-release 时,应用照样说已是最新,这是正常的。\n GitHub 上标 Latest 的那一版比你装的新、应用却说已是最新:应用先读两个第三方镜像上的清单,镜像会不会晚一些没有核对;\n 过一会儿再点「检查更新」,或者直接去发布页手动下载,排查见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)。\n- **侧栏 Clash Verge 标志旁的红色小按钮**(2.5.6 上写 `NEW`,2.5.5 上写「新建」):应用自己的定期检查查到了新正式版,点它打开「新版本」对话框;\n 关掉「自动检查更新」后这个按钮就不出现了。\n- **「新版本 v…」对话框**:右上角「前往发布页」打开这一版的发布页,底部是「取消」「更新」。简体中文界面的说明各小节默认折叠,点标题展开;\n 其他界面语言(包括繁体中文)只显示一句「有新版本可用」的对应译文。说明按系统分组时,先看有没有你的系统、有没有你正遇到的问题。\n- **「新版本 (v…) 已下载完成,是否立即安装?」**:「自动检查更新」开着(默认开)时,应用启动 10 秒后在后台检查,之后每 24 小时一次,有新版就先下载;下载完通过签名校验、在配置目录留下 `update_cache`,而且缓存的版本比正在用的新,下次启动时这样问。\n Linux ARM 更新到 2.5.6 时签名校验不过、不留缓存,不会这样问(arm64 实测,armhf 按同样缺签名文件推断,见下面「Linux ARM 在应用里更新不成」)。\n 点「立即安装」就是更新,本条没有实测;不想升就点「稍后」,照常启动,但每次启动都会再问(Linux 上实测,询问是用手工放置的下载缓存触发的)。\n 想不再被问,两步都要做:从托盘退出后删掉配置目录里的 `update_cache` 文件夹(启动时这一问只看有没有下载好、版本比正在用的新的更新包,不看「自动检查更新」开没开),再关掉「自动检查更新」,否则下次启动约 10 秒后又会下载一份。删掉缓存后不再问、这一问不看开关,都按源码,没有实测(删缓存见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed));开着时启动约 10 秒开始后台检查、关掉后不再后台检查,在 2.5.5 上实测过。\n 关掉后手动检查会遇到下面「新版本 v」那种情况。\n- **「此版本为重大更新,不支持应用内更新,请卸载后手动下载安装」**:更新说明里写了 break change 的版本不能在应用里更新,后台也不会替你下载;\n 后台这时会发出一条英文通知 `New version v… contains breaking changes. Please update manually.`,但 2.5.6 的界面不显示这类通知(按源码),实测界面上也没看到。\n 照提示先卸载再装:卸载前点「设置 → Verge 高级设置 → 配置目录」,从托盘退出 Clash Verge Rev,把打开的文件夹整个复制到别处,以后拷回去之前先删掉里面的 `singleton-instance.json`、`singleton-instance.lock`,不然 Windows 上 2.5.6 会起不来(Windows 卸载界面里的「删除应用程序数据」别勾,不勾就不删配置;两点都是 Windows 实测,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)),\n 再从发布页下载安装包(选哪个文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file),下载后核对见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)),步骤见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)。\n- **对话框标题只有「新版本 v」、没有说明**:关掉了「设置 → Verge 基础设置 → 杂项设置」里的「自动检查更新」时会这样,点「更新」没有反应(2.5.5 实测,2.5.6 这部分代码没改);\n 开着自动检查、但应用从新版发布前就一直开着没重启,按源码也可能这样,没有实测。\n 办法:打开「自动检查更新」并保存,等十几秒再点「检查更新」(2.5.6 上实测保存后不用重启);一直开着自动检查的,从托盘退出再打开;还是「新版本 v」就去发布页手动下载,详见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)。\n 没改过「应用日志等级」的,保存「杂项设置」会顺带把它存成 Warn,要按日志排错时在同一窗口改回 Info(2.5.5 实测,2.5.6 源码相同)。\n- **Linux ARM 在应用里更新不成**:按 2.5.6 的发版流程,arm64、armhf 的 deb 与 aarch64、armhfp 的 rpm 不附签名文件,应用下载完校验签名就失败,\n 右上角弹出红字 `Invalid encoding in minisign data`,版本不变。\n arm64 上从 2.5.5 更新到 2.5.6 实测如此,报错前先下载了将近 10 分钟(这台虚拟机上的耗时,取决于网络,当时后台也在同时下载)。\n 流程不改,Linux ARM 每次都只能去发布页手动装新版;这句报错和其他更新失败的排查见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)。\n\n## 正式版、预发布(rc)、autobuild 的区别\n\n- **正式版**:每次发版单独一页,新版出来不会清掉旧版的安装包(只有 autobuild 会);应用内更新推送的就是标 Latest 的正式版。\n 例外是 v2.5.4:后来发布页上只剩预发布 v2.5.4-rc.2,原来的 v2.5.4 下载地址现在是 404(见下一条)。\n- **预发布(rc)**:名字带 `-rc`,标为 Pre-release;发出时不更新应用内更新的清单,所以装正式版的人不会被提示去装它。官方没有说明 rc 适合谁用,日常使用按官方说法选正式版。\n rc 的 tag 和版本号都带 `-rc`:发版流程要求 tag 与 package.json 里的版本号完全一致,所以装上后「Verge 版本」也带 `-rc`(例如 v2.5.4-rc);按源码,同号的正式版比它高,出了就会提示升级。\n **例外是 v2.5.4-rc.2**:它原本是 2026-09-20 发出的正式版 v2.5.4,应用内更新的清单推送过它;后来发布页上它变成了预发布 v2.5.4-rc.2(什么时候、怎么变的,GitHub 不留记录,没有查到),09-21 应用内更新的清单改回 v2.5.2。\n 所以「Verge 版本」显示 v2.5.4 的,装的就是这个包(它的版本号是 2.5.4):可能是清单推送它的那段时间经应用内更新装上的,也可能是从发布页下载 v2.5.4-rc.2 装的;出了更高的正式版应用照样会提示(见下面最后一条)。\n 它的发布说明里的下载链接还指向原来的 v2.5.4 地址,都是 404,同名文件在同一页底部的 Assets 里能下载。\n- **autobuild(测试版)**:官方文档称为测试版,Arch Linux 另有对应的 AUR 包。定时任务每天北京时间 06:00、18:00 各检查一次,需要时才真的构建,所以不是每次到点都有新包;也可以手动触发。\n 版本号是基础版本号后面加 `+autobuild.`、构建日期(北京时间)和最近一次改动应用代码的提交号,例如 `2.5.6+autobuild.0926.b057bd9`;这个提交号不一定是构建所用的那个提交。\n **安装包会被原地替换的只有 autobuild 这一页**:新包出来后旧安装包会被清掉,所以旧的下载链接会失效(404),回到 `autobuild` 这一页找现有的安装包。\n 换包时旧包先删、新包后传,中间有十几分钟一个安装包都没有(实测时长见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)),过半小时再来看。\n- **Releases 里还有几页不用下载**:「Clash Verge Rev Alpha」(alpha,官方标为废弃),以及「Auto-update Stable Channel」「Auto-update Alpha Channel」「Auto-update Autobuild Channel」\n (updater、updater-alpha、updater-autobuild),放的是应用内更新用的清单。\n- **从预发布或 autobuild 回到正式版**:出了同号或更高的正式版,应用会提示更新。Linux 上实测,v2.5.4-rc.2 和 `2.5.6+autobuild.0926.b057bd9` 点「检查更新」都弹出「新版本 v2.5.6」;\n 按源码 autobuild 遇到同号的正式版也提示,照提示更新就回到正式版(Linux ARM 例外,见上;更新这一步本身没有实测)。\n 想马上回去,或者应用没有提示(autobuild 的版本号比最新正式版还高时不会提示,例如 2026-09-25 的 `2.5.6+autobuild.0925.897a117` 比当时的正式版 2.5.5 高):\n 去发布页下载标 Latest 的那一版手动安装(选文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file))。装回的版本号比现在低时,配置兼不兼容官方没有说明,先按上面的办法备份配置目录,降级的做法和注意事项见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n\n## 内核版本\n\n- 「设置」页「Clash 内核」一行右侧是正在用的内核和它的版本。每个安装包带两个内核:Mihomo(默认,内核窗口里标着「正式版」)和 Mihomo Alpha(标着「预览版」,官方术语页称为测试版本,更新更频繁),\n 打包时分别取 mihomo 当时的正式发布与 Alpha 预发布,所以 autobuild 带的是它构建那一刻的内核,不一定是最新的。\n- 内核不跟着「检查更新」走,由内核窗口里的「升级内核」单独升级(操作见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)):用 Mihomo 时对照 mihomo 最新的正式发布,用 Mihomo Alpha 时对照最新的 Alpha 预发布。\n **只有提示「已经是最新内核版本」才表示版本一样**;出现别的报错,只说明这次没升成,不代表没有新版本。Linux 用 deb 装的,「升级内核」会报权限错误,见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)。\n\n适用范围里的「已验证」:Linux arm64 虚拟机上实测了检查更新;应用内更新与升级内核只做到半路:应用内更新止于签名错误,Mihomo Alpha 升级内核止于权限错误(Mihomo 提示已是最新),都没有装上新版本;Windows 11 实机上实测了检查更新、后台下载(写好了缓存,没有装)和升级内核(普通身份报拒绝访问,以管理员身份运行升级成功);其余按 2.5.6 源码、官方文档与 GitHub 的发布及 Actions 记录核对。\n限制:macOS 没有实机操作;应用内更新装完并重启,Windows、Linux 上都没有看过;Linux 只测了 arm64,x86_64 Linux 的应用内更新没有实测;没有点过「立即安装」,只看了简体中文界面。\n\n\n| 渠道 | 版本号的样子 | 从哪里获取 | 应用内「检查更新」会不会提示 | 来源 |\n| --- | --- | --- | --- | --- |\n| 正式版 | vX.Y.Z,例如 v2.5.6 | GitHub Releases 上对应版本号的发布(每次发版单独一页,新版出来不会清掉旧版的安装包;例外是 v2.5.4,后来发布页上只剩预发布 v2.5.4-rc.2,原来的下载地址 404);标着 Latest 的是当前正式版。官方安装包只在 GitHub Release 发布,官方安装页另列了 WinGet(winget install ClashVergeRev.ClashVergeRev,发版流程自动提交)、Arch Linux 的 AUR 包 clash-verge-rev-bin 和社区维护的 Scoop;自称官网、下载中心的其他网站不是官方渠道 | 会:读的是每次发正式版时按当时标 Latest 的那一版生成的更新清单(维护者也可以手动重新生成),比你装的版本新就提示 | cvr-repo-v2-5-6, cvr-install, exp-latest-version-gui-linux-2026-09-27, exp-latest-version-rc2-actions-cli-2026-09-27, exp-cvr-installer-gui-windows-2026-09-30(适用 clash-verge-rev · windows/macos/linux · any;已验证 clash-verge-rev 2.5.5, 2.5.6@2026-09-30(windows),clash-verge-rev 2.5.6@2026-09-27(macos),clash-verge-rev 2.5.5, 2.5.6@2026-09-27(linux)) |\n| 预发布(rc) | tag 和版本号都带 -rc(发版流程要求两者一致),例如 v2.5.4-rc,装上后「Verge 版本」也带 -rc。例外是 v2.5.4-rc.2:它原本是正式版 v2.5.4,后来在发布页上变成了预发布,装上后显示 v2.5.4 | GitHub Releases 上名字带 -rc、标着 Pre-release 的发布(autobuild 那一页也标着 Pre-release,但名字是 autobuild、版本号带 +autobuild);v2.5.4-rc.2 发布说明里的下载链接指向原来的 v2.5.4 地址,都是 404,从同一页底部 Assets 下载 | 不会提示你装 rc(例外:v2.5.4-rc.2 原先作为正式版 v2.5.4 被推送过);装了 rc 之后,出了同号或更高的正式版会提示你升到正式版 | cvr-repo-v2-5-6, cvr-repo-v2-5-4-rc-2, exp-latest-version-rc2-actions-cli-2026-09-27, exp-cvr-update-failed-cli-2026-09-27(适用 clash-verge-rev · windows/macos/linux · any;已验证 clash-verge-rev 2.5.6@2026-09-27) |\n| autobuild(测试版) | 基础版本号+autobuild.月日(北京时间).最近一次改动应用代码的提交号,例如 2.5.6+autobuild.0926.b057bd9(提交号不一定是构建所用的提交) | GitHub Releases 上名为 autobuild 的预发布(不在列表顶端,直接打开 releases/tag/autobuild),只有这一页,安装包原地替换、旧的会被清掉,换包期间可能一时没有安装包(定时每天北京时间 06:00、18:00 各检查一次,需要时才构建;也可以手动触发);Arch Linux 可装 AUR 的 clash-verge-rev-autobuild-bin | 不会提示你装 autobuild;装了 autobuild 之后,同版本号或更高的正式版会提示你装;autobuild 的版本号比最新正式版还高时不提示,要手动装回正式版 | cvr-repo-v2-5-6, cvr-install, exp-latest-version-gui-linux-2026-09-27, exp-cvr-update-failed-cli-2026-09-27, exp-latest-version-rc2-actions-cli-2026-09-27(适用 clash-verge-rev · windows/macos/linux · any;已验证 clash-verge-rev 2.5.6@2026-09-27(windows/macos),clash-verge-rev 2.5.6+autobuild.0926.b057bd9@2026-09-27(linux)) |\n| 内核 Mihomo(默认) | 「设置」页「Clash 内核」一行右侧显示,形如 v1.19.31(内核窗口里标着「正式版」) | 打包在安装包里(构建时取 mihomo 当时的正式发布);「升级内核」对照 mihomo 最新的正式发布 | 不会;内核用「Clash 内核」窗口里的「升级内核」单独升级,见 upgrade-core | cvr-repo-v2-5-6, cvr-guide-term, exp-latest-version-gui-linux-2026-09-27, exp-cvr-gui-windows-2026-09-29(适用 clash-verge-rev · windows/macos/linux · any;已验证 clash-verge-rev 2.5.6@2026-09-30(windows),clash-verge-rev 2.5.6@2026-09-27(macos/linux)) |\n| 内核 Mihomo Alpha | 同上,形如 alpha-f103639(内核窗口里标着「预览版」;Mihomo 与 Mihomo Alpha 在「Clash 内核」窗口里二选一) | 打包在安装包里(构建时取 mihomo 当时的 Alpha 预发布);「升级内核」对照最新的 Alpha 预发布 | 不会;内核用「Clash 内核」窗口里的「升级内核」单独升级,见 upgrade-core | cvr-repo-v2-5-6, cvr-guide-term, exp-latest-version-gui-linux-2026-09-27, exp-cvr-gui-windows-2026-09-29, exp-cvr-service-gui-windows-2026-09-29(适用 clash-verge-rev · windows/macos/linux · any;已验证 clash-verge-rev 2.5.6@2026-09-30(windows),clash-verge-rev 2.5.6@2026-09-27(macos/linux)) |\n\n(table,共 5 行)\n\n## 相关条目\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(README.md L31、L35-L41(发布页地址;我应当怎样选择发行版:Stable 适合日常使用,AutoBuild 适合测试反馈、可能存在缺陷,Alpha 已废弃)、L43(「文档页」链接到 clash-verge-rev.github.io);.github/workflows/release.yml L3-L7、L62-L79(每个 v*.*.* 的 tag 建一个同名发布;tag 带 -rc 的标为预发布)、L43-L60(tag 必须等于 v 加 package.json 的版本号,否则退出)、L170-L178(发布)、L293、L419-L426(Linux ARM 作业只上传 deb 与 rpm,不上传 .sig)、L538-L542(生成应用内更新清单的 release-update 在发布之后才跑,tag 带 -rc 时跳过)、L591-L607(正式版向 WinGet 提交,-rc 跳过);.github/workflows/updater.yml L3(清单也可以手动重新生成,workflow_dispatch);.github/workflows/autobuild.yml L3-L7(cron 0 10,22 * * *,北京时间 06:00、18:00;定时任务按默认分支 dev 执行,dev 的提交 1638ab4 上相同)、L60(版本号用 autobuild-latest)、L113-L130(autobuild 发布标为预发布;clean_old_assets 清旧安装包);.github/workflows/check-commit-needs-build.yml L60-L146(需要时才构建:最近一次改动应用代码的提交与 autobuild 现有的相同就不构建);.github/workflows/clean-old-assets.yml;scripts/release-version.mjs L40-L58(取最近一次改动应用代码的提交)、L61-L82(月日按 Asia/Shanghai)、L255-L258(基础版本号取当前 package.json,加 +autobuild.月日.提交号);scripts-workflow/get_latest_tauri_commit.bash;scripts/updater.mjs L5、L43-L48(清单要推送的版本取运行时的 getLatestRelease)、L76-L84(说明取 Changelog 并附 See More;pub_date 是脚本运行的时刻)、L103-L108、L213-L237(各平台签名按 Release 里的 .sig 填写,缺省为空);scripts/updater-fixed-webview2.mjs L17-L19 与 src-tauri/webview2.x64.json L28-L31(内置 WebView2 版的清单同样取 Latest);src-tauri/tauri.conf.json L33-L43(更新地址:两个第三方镜像上的清单在前,github.com 的在最后);src-tauri/src/lib.rs L47-L53 与 src-tauri/src/core/updater.rs L104-L109(远端更高,或本机是同版本号的 +build 构建,就提示更新);src/services/update.ts L81-L92;src-tauri/src/core/updater.rs L152-L186、L307-L328(启动时询问已下载的更新,点「稍后」保留缓存;L160-L172 缓存的版本不高于正在用的版本时删掉缓存、不问)与 src-tauri/src/utils/resolve/mod.rs L168-L185(启动时先问已下载的更新,不看自动检查更新开关)、updater.rs L412-L417(关掉自动检查更新只停后台下载)、L411-L437、L443-L453(后台发现 break change 时发英文提示、不下载)、L490-L501(启动 10 秒后检查,之后每 24 小时);src-tauri/src/config/verge.rs L375(自动检查更新默认开);src/components/setting/setting-verge-advanced.tsx L46-L61、L126-L127、L163-L172(检查更新自己查一次后打开对话框;Verge 版本);src/components/setting/setting-verge-basic.tsx L265-L266(杂项设置在 Verge 基础设置里);src/components/home/system-info-card.tsx L100-L116(首页最后检查更新:有新版只提示并跳到设置页);src/components/setting/mods/update-viewer.tsx L63(只认简体中文 zh)、L181(对话框读自动检查那份结果)、L218-L240(break change 不能应用内更新;没有说明时点更新直接返回)、L308-L323(前往发布页的地址拼 updateInfo.version);src/hooks/use-update.ts L22-L44(关掉自动检查更新时前端不查询;结果 1 小时内不重查,每 24 小时刷新,窗口在后台时不刷新);src/components/layout/update-button.tsx L17-L32(侧栏红色 New 按钮只在前端检查查到新版时出现,点开更新对话框);src/components/setting/mods/misc-viewer.tsx L42、L63、L110-L113(「应用日志等级」没设置过时按 Warn 显示并随保存写回;选项 Trace/Debug/Info/Warn/Error/Silent);src/components/setting/setting-clash.tsx L306-L316(Clash 内核一行);src/components/setting/mods/clash-core-viewer.tsx L97-L110;src-tauri/src/feat/core_upgrade.rs L45-L70(版本相同时不升级);scripts/prebuild.mjs L163-L171(打包时取 mihomo 正式发布与 Prerelease-Alpha 的 version.txt);src/locales/zh/settings.json L111、L183、L193、L202、L207、L303-L304、L411、L437-L444、L680-L681;src/locales/zh/shared.json L98(有可用更新);src/locales/zh/home.json L59;crates/clash-verge-i18n/locales/zh.yml L32-L36)\n- cvr-repo-v2-5-4-rc-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/13676d3335b4242a8342541bdd510295502268c1/src-tauri/tauri.conf.json(第 2 行 \"version\": \"2.5.4\"(v2.5.4-rc.2 这个 tag 指向的提交,也是 v2.5.4 这个 tag 指向的提交))\n- tauri-updater-v2-11-0-signature:https://github.com/tauri-apps/plugins-workspace/blob/6aa2854f314481a459be1189b02c65a2450789ab/plugins/updater/src/updater.rs(L740(下载完成之后才校验签名)、L1524-L1529(签名解不开就报错))\n- tauri-updater-2-12-0:https://github.com/tauri-apps/plugins-workspace/tree/5baf71a47292d8490f0ba3d53f15224e55c48327(plugins/updater/src/updater.rs L740-L746、L1530-L1543(2.5.6 起同样是下载完成之后才校验签名))\n- cvr-install:https://www.clashverge.dev/install.html(发布地址(仅通过 GitHub Release 发布,请注意辨别);Windows 的 WinGet 安装(winget install ClashVergeRev.ClashVergeRev)与社区维护的 Scoop;Arch Linux(正式版与测试版的 AUR 包))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(Meta 内核;Alpha 内核)\n- exp-latest-version-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-update-failed-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-update-failed-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-latest-version-rc2-actions-cli-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:4f8a238 2026-09-30\n"},"launch-at-startup":{"id":"launch-at-startup","type":"howto","title":"开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复","aliases":["开机自启","开机自动启动","开机启动设置不了","静默启动","开机不弹窗口","启动后隐藏窗口","开机自动连接","开机后很久才连上","开机后没连上","始终开启的 VPN"],"primary_topic":"clients","topics":["clients","clash-verge-rev","clash-party","v2rayn","karing","v2rayng"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn","karing","v2rayng"],"os":["windows","macos","linux","android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-02","freshness":"current","markdown":"# 开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复\n\n主题:`客户端`\n适用:clash-verge-rev/clash-party/v2rayn/karing/v2rayng / windows/macos/linux/android / any\n最后验证:2026-10-02\n\n**开机自启在各软件自己的设置里打开;不想开机弹窗口,再打开同一页的「静默启动」或「启动后隐藏窗口」。注意静默启动对每次启动都生效:开着它时从菜单点图标也不出窗口,再点一次才出来。** Clash Verge Rev 在「设置 → 系统设置」,Clash Party 在设置页,v2rayN 在「设置 → 参数设置 → v2rayN 设置」,Karing 电脑版只有 Windows 版有「开机启动」(按公开的部分源码)。安卓上 v2rayNG「开机时自动连接」、Karing「系统启动后自动连接」默认都关。\n\n两个 Clash 客户端按自启项模拟启动后,系统代理恢复了(Linux 实测,没有验证真实重启登录);虚拟网卡(TUN)要看服务或权限在不在,见第 6 步。安卓上别把系统的「始终开启的 VPN」和 v2rayNG 的「开机时自动连接」同时打开,见第 5 步。开机后很久才连上,见第 7 步。\n\n## 这些说法怎么核对的\n\n按各客户端源码与 Clash Verge Rev 官方 FAQ 核对。实测:Linux 虚拟机上两个 Clash 客户端(观察 1–7,开机是按自启项启动来模拟的);原生安卓 16 模拟器上 v2rayNG、Karing(观察 1–18);Windows 11 实机上的两项。没测:真实重启登录、macOS、v2rayN 与 Karing 电脑版、厂商安卓系统。\n\n## 步骤\n1. **Clash Verge Rev**:「设置 → 系统设置」打开「开机自启」;同一栏的「静默启动」让它启动时不出窗口、直接进轻量模式,内核和系统代理照常起来(Linux 实测)。Linux 上开关写的是 `~/.config/autostart/Clash Verge.desktop`,不带静默参数,关掉就删(实测);macOS 用 LaunchAgent(按源码)。**Windows** 建计划任务:普通身份打开时叫「Clash Verge」(按源码);以管理员身份运行时叫「Clash Verge (Admin)」,开机后就是管理员身份,但普通身份关不掉,报 `admin auto-launch task exists; run the app as administrator to remove it`(实测)。静默启动失效或有两个启动项,官方 FAQ 的办法是以管理员身份打开后把「开机自启」关掉再打开一次,平时一直以管理员身份运行的则改用普通身份开关一次;升级后自启失效(每次安装会清除旧启动项),按平时的身份重新开关一次就行(按官方 FAQ)。\n 失败时 → escalate\n2. **Clash Party**:设置页打开「开机自启」;同一页「静默启动」开着时不出窗口,内核和系统代理照常起来(Linux 实测)。Linux 上写 `~/.config/autostart/mihomo-party.desktop`,不带静默参数,关掉就删,设置页按这个文件在不在显示开关(实测)。**Windows** 建计划任务「mihomo-party」,打开开关时会要求管理员授权;以管理员身份打开时设的,开机后才是管理员身份(按源码,没实测)。macOS 加登录项(按源码)。**两个客户端的静默启动对每次启动都生效**:开着它时从菜单点图标也不出窗口,像点了没反应,其实已在后台运行,再点一次窗口才出来(Linux 实测)。\n 失败时 → escalate\n3. **v2rayN**:「设置 → 参数设置」切到「v2rayN 设置」页,打开「开机启动 (可能会不成功)」,要开机不弹窗口再打开「启动后隐藏窗口」,点「确定」。提示写着「以管理员权限设置此项,在启动后获得管理员权限」:Windows 上以管理员身份设的才是最高权限的计划任务,否则写注册表启动项(都按源码,没实测)。\n 失败时 → escalate\n4. **Karing 电脑版**:Windows 版「设置」里有「开机启动」和「启动后隐藏窗口」,macOS、Linux 版没有开机启动这一项;三个系统都有「启动后自动连接」,默认开(都按公开的部分源码,没实测)。\n 失败时 → escalate\n5. **安卓**:v2rayNG 侧边栏「设置」→「进阶设置」勾选「开机时自动连接」(默认不勾),之后开机会自己连上,不弹窗口,不管关机前连没连;要先选中过节点(按源码)。开机时没网也显示已连接,网络回来后自己经节点;关掉「允许后台使用」也能连上,只是没有常驻通知(都是实测)。Karing「设置」里的「系统启动后自动连接」默认关,提示「重新连接后生效;需要系统支持,部分系统可能还需要开启[自启动]」:打开后要再连接一次,下次开机才会自己连上(实测)。也可以交给系统:VPN 设置里点 v2rayNG 那一行的齿轮,打开「始终开启的 VPN」,开机后由系统连上(实测;进入 VPN 列表的路径没逐级核对)。**别和 v2rayNG 的「开机时自动连接」同时开**:三次重启都是先连上、几秒后断开且不再连,流量直接不走代理;再开「屏蔽未使用 VPN 的所有连接」则完全上不了网(实测;原因按源码只能推测)。只开其中一个都正常。以上只在原生安卓模拟器上测过,厂商系统的自启动管理没测。\n 失败时 → escalate\n6. **开机后系统代理和虚拟网卡(TUN)恢复不恢复。** 下面两个 Clash 客户端的 Linux 实测都是按自启项的启动命令模拟登录启动,没有验证真实重启登录。系统代理:退出前开着的,按自启项启动后 1 秒内恢复(两个 Clash 客户端,Linux 实测);v2rayN 按「系统代理」下拉框保存的选项设置(按源码)。虚拟网卡:Clash Verge Rev 装了服务、服务在运行的,按自启项启动后恢复,Clash Party 的 Linux deb 版也是(实测)。**Clash Verge Rev 启动时服务没在运行**:内核不起、系统代理也不恢复,停在「需要更新系统服务」对话框,服务后来起来也不会自己接上;点「修复服务」约 1 秒全部恢复;点「继续使用 SIDECAR」只恢复系统代理,虚拟网卡被关掉并保存,以后开机也不会再开,要自己重新打开(Linux 实测,Windows 没测)。没装服务又不是管理员身份的,启动时就关掉虚拟网卡(按源码),见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)、`Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。Clash Party 在 Windows 上不是管理员身份启动会被悄悄关掉(实测),以管理员身份打开后把「开机自启」关掉再打开(按源码)。v2rayN 见 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)。\n 失败时 → escalate\n7. **开机后很久才连上、或开机后用不了**:退出再打开也一样慢的,不是开机的问题,按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 或 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查(作者建议)。只在开机时慢的:可能是软件起来时网络还没好。两个 Clash 客户端在 Linux 上按自启项模拟启动、让网络晚几十秒才通时,系统代理照样设上,网络好了几秒内代理自己恢复;但启动时那次订阅更新失败后,要等一整个自动更新间隔才再试,界面上没有提示(实测)。启动时也只更新设了自动更新间隔的订阅(实测)。开机后节点不对,就手动更新一次订阅(作者建议)。Windows 上实测一次,Clash Verge Rev 开机自启后校验配置用了 26 秒才启动内核。Clash Party 开机后虚拟网卡不通见 `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working),要切一下「DNS 覆写」才能用见 `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override);Clash Verge Rev 节点为空见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error);软件没起来就上不了网见 `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)。\n 失败时 → escalate\n\n## 验证\n- **las-check**(人):重启电脑或手机,登录后不要手动打开代理软件,等一两分钟,再打开一个平时要经代理才能打开的网页。电脑上平时靠虚拟网卡(TUN)的,别手动去开 TUN;系统代理原本也开着的,先暂时关掉它再打开一次那个网页,测完开回来,原本就关着的保持关着。\n 预期:软件自己起来了(电脑托盘有图标,手机状态栏有 VPN 钥匙图标),网页能打开;电脑上关机前开着系统代理的,它已开着;靠 TUN 的,在系统代理关着时网页照样能打开(只开着系统代理时能打开,证明不了 TUN 恢复了)。软件没起来的,回到对应那一步看开关(作者建议);起来了却打不开或很久才通的,看第 7 步。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 的 DNS 覆写:「是否开启 DNS 覆写?」怎么选、为什么被自动关闭、和虚拟网卡的关系`(见 clash-party-dns-override)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/locales/zh/settings.json L13、L19、L22-L23(「系统设置」里的「开机自启」「静默启动」与提示原文);src/components/setting/setting-system.tsx L50-L95(两个开关);src-tauri/src/core/autostart.rs L13-L36(Windows 按是否管理员建计划任务,其余系统用 tauri-plugin-autostart);src-tauri/src/lib.rs L98-L113(macOS 用 LaunchAgent);src-tauri/src/utils/schtasks.rs L11-L12(任务名「Clash Verge」「Clash Verge (Admin)」)、L134-L185(登录时触发,不要求网络可用)、L331-L380(管理员建任务时删掉普通任务;普通身份关不掉管理员任务,报 admin auto-launch task exists);src-tauri/src/utils/resolve/mod.rs L54-L97(启动顺序:先处理 TUN 可用性,再起内核)、L236-L239(静默启动时不显示窗口);src-tauri/src/module/lightweight.rs L81-L92、L111-L122(静默启动时进入轻量模式、销毁主窗口);src-tauri/src/feat/tun.rs L19-L37 与 src-tauri/src/core/runstate/health.rs L91-L102(启动时服务没装、又不是管理员就关掉 TUN 并保存))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(「静默启动失效」(任务管理器中有两个启动项或开机启动时静默启动失效:用管理员权限启动软件后开关一次开机启动设置;平时一直用管理员权限的,用普通用户权限开关一次);「自启动失效」(每次安装会清除旧启动项,重新开关一次开机启动))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/sys/autoRun.ts L12(启动项名 mihomo-party)、L31-L73(计划任务:管理员身份打开时 HighestAvailable,否则 LeastPrivilege;登录后延迟 3 秒;不要求网络可用)、L104-L106(Linux 按 ~/.config/autostart/mihomo-party.desktop 是否存在显示开关)、L111-L217(打开:Windows 非管理员时经 UAC 建任务,失败才写注册表 Run 项;macOS 登录项;Linux 写 .desktop)、L219-L253(关掉时删除);src/renderer/src/components/settings/general-config.tsx L268-L292(开机自启开关,非管理员时先发提示)、L358-L366(静默启动开关);src/renderer/src/locales/zh-CN.json L79-L80、L84(「开机自启」、UAC 提示原文、「静默启动」);src/main/window.ts L178、L246-L250(静默启动时不显示主窗口);src/main/core/permissions.ts L348-L374(启动时没有权限就静默关掉虚拟网卡))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Handler/AutoStartupHandler.cs L9-L40(按开关先清再设启动项)、L44-L78(Windows:普通身份写注册表 Run 项,管理员身份建计划任务)、L88-L120(计划任务登录时触发、最高权限)、L129-L174(Linux:~/.config/autostart/v2rayN.desktop)、L176-L250(macOS:LaunchAgents);v2rayN/v2rayN/Views/OptionSettingWindow.xaml L662、L700-L720、L780-L791 与 v2rayN/v2rayN.Desktop/Views/OptionSettingWindow.axaml L478、L491-L504、L564-L566(v2rayN 设置页的开机启动、提示与启动后隐藏窗口);v2rayN/v2rayN/Views/MainWindow.xaml.cs L146-L149、L318-L325 与 v2rayN/v2rayN.Desktop/Views/MainWindow.axaml.cs L152-L155、L362-L369(启动后隐藏窗口);v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs L115-L122(启动时没有权限就把 TUN 关掉)、L222-L229(启动时按保存的系统代理选项设置);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L417-L418、L432-L433、L456-L467、L666-L667、L717-L718、L732-L733、L945-L946(界面文字))\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(公开的部分源码:lib/screens/settings_screen.dart L826-L852(电脑版:「启动后隐藏窗口」只在 Windows 显示,「启动后自动连接」)、L910-L930(「开机启动」只在 Windows 显示,失败时弹出原因)、L1223-L1235(安卓:「系统启动后自动连接」及提示);lib/app/modules/setting_manager.dart L130、L1676-L1677(启动后隐藏窗口默认关,启动后自动连接默认开,系统启动后自动连接默认关);lib/screens/home_screen.dart L1074-L1080(电脑版启动时没连着就自动连接);lib/i18n/zh-CN.i18n.json L202-L206、L248、L266(界面文字))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/res/xml/pref_settings.xml L280-L285(「进阶设置」里的开机时自动连接);res/values-zh-rCN/strings.xml L156、L161-L162(界面文字);java/com/v2ray/ang/receiver/BootReceiver.kt L21-L42(开机广播:开关打开且选中过节点时才启动 VPN 服务);AndroidManifest.xml L42、L239-L246(接收开机广播)、L186-L188(VPN 服务声明 SUPPORTS_ALWAYS_ON))\n- exp-launch-at-startup-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-launch-at-startup-android-gui-2026-10-02:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:f3e0b30 2026-10-02\n"},"mihomo-error-catalog":{"id":"mihomo-error-catalog","type":"reference","title":"mihomo 内核报错信息表","aliases":["mihomo 报错","内核报错","内核日志报错"],"primary_topic":"reference","topics":["reference","troubleshooting"],"intents":[],"applicability":null,"freshness_mode":"versioned","last_verified_at":"2026-09-18","freshness":"current","markdown":"# mihomo 内核报错信息表\n\n主题:`参考`\n适用:通用\n最后验证:2026-09-18\n标记:信息说明\n\nmihomo 内核在日志与配置报错里输出的英文原文,按场景整理。Clash Verge Rev、Clash Party、FlClash、\nClashMetaForAndroid 都以 mihomo(或其分支)为内核;每句适用哪些客户端见各行的适用范围,客户端界面是否展示、怎么展示未逐一核实。\n\n- 原文取自 `MetaCubeX/mihomo` v1.19.31 的源码,逐条人工校对,并追过调用链:只收会走到日志输出或错误返回的报错(被调用方丢弃、或触发不了的不收)。\n- 表中只收报错里**固定不变的部分**:动态内容在末尾时直接省略,夹在中间时用 `<…>` 标出(如 `<名称>`)。\n 拿整行日志来对照,包含表中那段文字即是同一条报错;冒号后面通常是更具体的原因。\n- 「尚未归类」表示还没有能处理这句报错的排错条目。一行归到某个排错条目的条件是:用户在客户端里看到这句报错的各种情况,\n 都落在那个条目的排查路径上,而且条目给的修复与验证在这些情况下都成立。\n\n## 适用范围是怎么核的\n\n每行标出的「已验证」,含义是:这句原文在下表「核对的内核」源码里逐字存在,并且按这个客户端运行内核的方式(独立进程或嵌入 App)\n核过会走到输出它的那段代码。其中 Clash Party 2.0.2 内置哪个内核版本**没有直接记录**,表中的 v1.19.29 是按发版日期推断的,\n它那一列的「已验证」以这个推断为前提。**没有**在客户端上实际触发过这些报错,也没有逐一核对界面怎么展示。\n\n| 客户端 | 核对的版本 | 核对的内核 | 怎么确定的 |\n|---|---|---|---|\n| Clash Verge Rev | 2.5.2 | mihomo v1.19.29 | 发版说明写明 |\n| Clash Party | 2.0.2 | mihomo v1.19.29(推断) | 发版说明未写;构建时取当时最新发版,按发版日期推断(v1.19.29 与 v1.19.30 之间只有这一个) |\n| FlClash | 0.8.98 | 作者维护的 mihomo 分支(commit 70f0570,2026-08-23) | 源码锁定 |\n| ClashMetaForAndroid | 2.11.34 | mihomo v1.19.31 | 源码锁定 |\n\nFlClash 与 ClashMetaForAndroid 把内核嵌在 App 里运行,按它们加载配置的方式,`Parse config error` 与 `configuration file … is empty` 这两句不会出现;\n它们的 Android 版用系统的 VPN 接口建 TUN,TUN 那几句也不会出现。FlClash 配置出错时,会把原因写进一句自己的日志\n`config apply failed, falling back to the built-in default`,冒号后面就是下面列出的原文。\n\n## 读这张表之前\n\n### TUN\n\n- `Start TUN listening error`:内核通过 `ReCreateTun` 创建 TUN 失败时输出的总括日志,冒号后才是真正的原因。失败后内核会把记录的 TUN 启用状态设为关闭;客户端开关如何显示未核实。\n- `[TUN] default interface lost by monitor`:默认网卡监视器报告「当前没有默认网卡」时的记录(例如断网或切换网络的瞬间),通常不是故障本身。监视器随后报告有了默认网卡时,会输出 `default interface changed by monitor`。这两句记录的是网卡状态,不代表网络能否正常访问;若持续出现而网络确实正常,才值得排查。\n- `Start Tun interface timeout`:仅 Windows。一次 TUN 网卡创建失败、且这次失败耗时 1 秒以上时输出,冒号后是原因;耗时不足 1 秒的失败既不打这句也不重试。最多尝试三次,第三次的日志虽然仍写着 `retrying`,但不会再试。若最终仍失败,会接着出现 `Start TUN listening error`。\n\n### proxy-provider\n\n- `initial proxy provider <名称> error`:配置里某个 `proxy-providers` 源初始加载失败,冒号后是具体原因。只有配置里写了 `proxy-providers` 才会有这句;客户端界面里「导入 / 更新订阅」失败,未必对应这一句。\n- `[Provider] <名称> pull error`:配置里某个 `proxy-providers` 源自动更新失败时输出:包括按间隔的后台拉取,以及本地文件类型的源在文件变更后重新加载;冒号后是具体原因。若该源之前加载成功,本次失败不会替换已有节点,常见表现是「节点还能用但一直不更新」。\n- `` file must have a `proxies` field ``:内容解析后 `proxies` 为空值:例如缺少 `proxies` 键(订阅服务返回一段 JSON 格式的错误信息就会这样),或 `proxies` 的值写成了 `null`。YAML 解析失败时,内核会先尝试把内容当作节点链接或 base64 节点列表转换,转换成功就不会报这句。它会跟在 `initial proxy provider … error:` 或 `[Provider] … pull error:` 后面出现。\n- `file doesn't have any proxy`:`filter` 为空(未设置或为空字符串),且解析、筛选后一个节点都没剩时输出。可能是源给了空列表,也可能是 `exclude-filter` / `exclude-type` 把节点全部排除了,别只盯着订阅。`filter` 非空时,同样的空结果会改报 `doesn't match any proxy, please check your filter`。\n- `doesn't match any proxy, please check your filter`:`filter` 非空,且解析、筛选后一个节点都没剩时输出。不一定是 `filter` 写错:源本身为空、或 `exclude-filter` / `exclude-type` 排除了全部节点,也会报这句。依次检查原始节点列表、`filter`、`exclude-filter`、`exclude-type`。\n- `parse proxy provider <名称> error`:创建配置里某个 `proxy-providers` 源时失败:字段类型不对、`type` 不受支持、`path` 指到了允许的目录之外,或者内联节点(`type: inline`)/ 备用节点(`payload`)解析失败。这一步还没开始拉取远程订阅;拉取或读取订阅内容时的报错是 `initial proxy provider … error`。\n\n### 配置\n\n- `Parse config error`:解析配置失败,冒号后是具体原因。独立运行的内核在首次启动时遇到它会退出;收到 SIGHUP 重新加载配置失败时也会打这句,但不退出。客户端通过配置接口热加载失败时,错误作为接口响应返回、不带这个前缀,客户端怎么展示未核实。\n- `configuration file <路径> is empty`:读取到的配置文件为 0 字节,本次配置加载失败:独立运行的内核在首次启动时会因此退出,通过配置接口按路径热加载时则返回错误。先检查客户端当前使用的配置或订阅是否真的下载成功了。\n- `proxy <名称> is the duplicate name`:配置的 `proxies` 列表里有两个节点同名。节点名与内置名称(`DIRECT`、`REJECT`、`PASS` 等)相同也会报这句,即使没有真正的重复。同一个 `proxy-providers` 源在一次解析里出现重名时,后出现的会被跳过、不报这句;多个源之间的重名不在此列。\n- `rules[<序号>] [<规则>] error: proxy [<名称>] not found`:某条规则最后一段指定的策略组或节点不存在。按名字精确匹配,差一个字符(包括 emoji、空格)也算不存在;策略组改名或删除后,引用它的规则就会报这句。写在子规则里时,开头是 `sub-rules[<名>]`。\n- `proxy group[<序号>]: <组名>: '<名称>' not found`:某个策略组引用了不存在的名字:`proxies` 里写了不存在的节点或策略组,或 `use` 里写了不存在的 `proxy-providers`——两种情况报的是同一句。按名字精确匹配,差一个字符(包括 emoji、空格)也算不存在;订阅改了节点名、而自定义策略组还写着旧名字时,就会报这句。\n- `` The `global-client-fingerprint` configuration is removed, please set `client-fingerprint` directly on the proxy instead ``:配置里还写着已废弃的 `global-client-fingerprint`。内核照常启动,但这项全局设置不再生效;起作用的是各节点自己的 `client-fingerprint` 字段。\n\n### Geo 数据\n\n- `can't download GeoSite.dat`:配置里用到了 GEOSITE 匹配(最常见的是规则),但本地没有 GeoSite.dat 或文件已损坏,内核去下载也失败了,本次配置加载因此失败:独立运行的内核在首次启动时会退出,通过配置接口热加载时返回错误,FlClash 会改用不含原配置节点的内置默认配置。默认下载地址在 GitHub,连不上 GitHub 时就会失败;冒号后是具体原因。\n- `can't download GeoIP.dat`:配置里用到了 GEOIP 匹配(最常见的是规则),且开了 `geodata-mode`,但本地没有 GeoIP.dat 或文件已损坏,内核去下载也失败了,本次配置加载因此失败:独立运行的内核在首次启动时会退出,通过配置接口热加载时返回错误,FlClash 会改用不含原配置节点的内置默认配置。默认下载地址在 GitHub,连不上 GitHub 时就会失败;冒号后是具体原因。\n- `can't download MMDB`:配置里用到了 GEOIP 匹配(最常见的是规则),且没开 `geodata-mode`,但本地没有 MMDB 或文件已损坏,内核去下载也失败了,本次配置加载因此失败:独立运行的内核在首次启动时会退出,通过配置接口热加载时返回错误,FlClash 会改用不含原配置节点的内置默认配置。默认下载地址在 GitHub,连不上 GitHub 时就会失败;冒号后是具体原因。\n\n\n- `Start TUN listening error` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash · windows/macos/linux · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18)\n- `[TUN] default interface lost by monitor` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash · windows/macos/linux · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18)\n- `Start Tun interface timeout` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash · windows · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18)\n- `initial proxy provider <名称> error` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `[Provider] <名称> pull error` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- ``file must have a `proxies` field`` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `file doesn't have any proxy` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `doesn't match any proxy, please check your filter` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `parse proxy provider <名称> error` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `Parse config error` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18)\n- `configuration file <路径> is empty` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18)\n- `proxy <名称> is the duplicate name` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `rules[<序号>] [<规则>] error: proxy [<名称>] not found` → `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `proxy group[<序号>]: <组名>: '<名称>' not found` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- ``The `global-client-fingerprint` configuration is removed, please set `client-fingerprint` directly on the proxy instead`` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `can't download GeoSite.dat` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `can't download GeoIP.dat` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n- `can't download MMDB` → 尚未归类 [来源 mihomo-repo](适用 clash-verge-rev/clash-party/flclash/clash-meta-android · any · any;已验证 clash-verge-rev 2.5.2@2026-09-18,clash-party 2.0.2@2026-09-18,flclash 0.8.98@2026-09-18,clash-meta-android 2.11.34@2026-09-18)\n\n(error-catalog,共 18 行)\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n\n## 来源\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471\n\n最后修订:72209a2 2026-09-27\n"},"one-site-not-working":{"id":"one-site-not-working","type":"troubleshoot","title":"只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路","aliases":["只有一个网站打不开","别的网站都正常只有这个打不开","个别网站打不开","某个应用开代理后用不了","开代理后提示地区不支持","提示所在地区不支持","开了代理还是反复人机验证","谷歌一直要人机验证","开代理后微信要求安全验证","国内应用开代理要验证","Telegram 一直连接中","Telegram 图片加载不出来","微软商店开代理后打不开","UWP 应用不走代理","程序不认系统代理","全局模式下检测网站显示直连"],"primary_topic":"troubleshooting","topics":["troubleshooting","routing-rules","clash-verge-rev","clash-party","karing","v2rayn","v2rayng"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","karing","v2rayn","v2rayng"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路\n\n主题:`排错`\n适用:clash-verge-rev/clash-party/karing/v2rayn/v2rayng / windows/macos/linux/android/ios / any\n最后验证:2026-10-01\n\n别的网站都正常,只有某个网站或应用不行:打不开、提示所在地区不支持、反复要人机验证、国内应用(微信、银行之类)开代理后要求安全验证、Telegram 一直「连接中」或图片加载不出来、微软商店这类应用开代理后连不上。**先查客户端这一侧:它进没进客户端、走的是节点还是直连。**适用 Clash Verge Rev、Clash Party、Karing、v2rayN、v2rayNG:\n\n1. **别的网站也打不开**:是代理整体没通,不是这一条。\n2. **在客户端里找它的记录**:只开系统代理时 Clash Verge Rev 的「日志」页里没有它,多半是程序不读系统代理,开虚拟网卡(TUN);别的客户端找不到时先临时切全局对照(找不到不一定是没进来),全局也不行再确认它是不是真交给了客户端(只开系统代理的非浏览器程序、Karing 排除的应用、微软商店应用)。\n3. **看它的出口**:该翻墙的走了直连、国内的走了节点,给它单独加一条分流规则。\n4. **都对了还提示地区不支持、要人机验证**:该走节点的网站,看浏览器的 WebRTC 有没有带出你自己的地址(检测页干净不等于这个网站拿不到);连接的出口对了还不行,换个节点试或问服务方;国内的保持直连问客服(作者建议)。\n\n## 各客户端在哪看\n\n先打开这一处,再访问那个网站或程序。\n\n- **Clash Verge Rev**:「日志」页(默认等级 Info),每条连接一行,形如 `[TCP] … --> 域名:443 match Match using 组名[节点名]`,规则模式下 `using` 后面就是出口(实测);全局模式只写 `using GLOBAL`,要到「代理」页看 `GLOBAL` 当前选的是节点还是 `DIRECT`(命令行内核实测),见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。**别拿「连接」页判断有没有**:实测几毫秒就结束的请求在那里看不到,「日志」页每次都有(本站只在 Clash Verge Rev 上测到)。\n- **Clash Party**:侧栏「连接」,详情里的「规则」「代理链」(Windows 上实测)。\n- **Karing**:主界面「连接」卡片里的规则和出站(安卓实测)。\n- **v2rayN**:「信息」栏里形如 `accepted tcp:域名:443 [socks -> proxy]` 的行(macOS 上实测),最后一个词 `proxy` 是节点、`direct` 是直连(按源码);开了「启用日志存到文件」就不在信息栏,见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)。\n- **v2rayNG**:侧边栏「Logcat」,下拉刷新后搜索域名,同样的行(安卓实测)。\n\n## 检测网站显示的出口和预期不一样\n\nLinux 虚拟机里实测 Clash Verge Rev 只开系统代理:同一个网页里普通请求经节点,WebRTC 的 UDP 却直接从本地网络出去,网页拿到的是本地的公网地址;开虚拟网卡后两者都经节点。这是「开着代理,检测网站却显示直连」的一种可能(作者说明),详见 `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)。那一条写的是 Clash Verge Rev,检测页本身与客户端无关;别的客户端里这条 UDP 走哪,用本条第二、三问看。\n\n本站只讲客户端这一侧,**不评价哪里的节点能用、哪家服务认哪里**。手机收不到推送、用着用着断见 `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)。\n\n## 适用范围与验证方式\n\nClash Verge Rev 2.5.6、Clash Party 2.0.3、Karing 1.2.25.2802、v2rayN 7.24.9、v2rayNG 2.2.6。实测用本机测试节点和自制订阅,各客户端在括号里写的系统上看过;规则命中在内核层测过。Telegram、微软商店应用没有实际运行,按 Telegram 桌面版源码与官方说明、微软文档。\n\n## 取证\n- **osf-others-work**:别的平时要经代理才能打开的网站,现在能打开吗?(也打不开的选「失败」)\n pass → osf-conn-found;fail → osf-proxy-down;unknown → osf-conn-found\n- **osf-conn-found**:先打开客户端里看记录的地方(见正文第一节),再重新打开那个网站或程序:有它的记录吗?(Clash Verge Rev 看「日志」页:别的网站都有、只有它没有,选「失败」;v2rayN、v2rayNG 的日志与 Clash Party、Karing 的连接列表里找不到,或日志里什么都没有,选「无法判断」——这几家会不会漏掉很短的请求本站没测)\n pass → osf-exit-as-intended;fail → osf-no-connection;unknown → osf-global-opens\n- **osf-exit-as-intended**:它的出口是你想要的吗?要翻墙的网站、Telegram 应当是节点,国内网站和国内应用(微信、银行之类)应当是直连。(不是的选「失败」)\n pass → osf-webrtc-clean;fail → osf-routed-wrong;unknown → osf-webrtc-clean\n- **osf-global-opens**:临时切到全局再试,能用了吗?(Clash Verge Rev、Clash Party 还要在 `GLOBAL` 里点一个节点,别停在 `DIRECT`;v2rayN 是状态栏路由下拉框的「V4-全局(Global)」;试完切回。v2rayNG 切全局要重新导入预设、会删没锁定的规则,不必为此去做;它和国内网站、应用都选「无法判断」)\n pass → osf-routed-wrong;fail → osf-app-captured;unknown → osf-app-captured\n- **osf-app-captured**:它不属于下面这几种不进客户端的情形吧?(只开着系统代理而它不是浏览器、Karing 安卓版「分应用代理」把它排除了、它是 Windows 微软商店里的应用:属于的选「失败」,拿不准选「无法判断」。都不是的选「通过」——但客户端里看不到它、切全局也没用,仍没法确认它进了客户端,本条查到这里为止)\n pass → escalate;fail → osf-no-connection;unknown → osf-no-connection\n- **osf-webrtc-clean**:(只问浏览器里、应当走节点的网站;国内网站、浏览器之外的程序选「无法判断」)用同一个浏览器打开 WebRTC 检测页(见 `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)),列出的地址里没有你自己网络的公网地址吗?(关着代理时查到的那个地址出现了,选「失败」;拿不准选「无法判断」。检测页干净只说明它自己用的那台 STUN 服务器那条路干净,网站自己可能用别的服务器、被规则分到直连)\n pass → osf-exit-side;fail → osf-webrtc-exposes;unknown → osf-exit-side\n\n## 原因\n- **osf-proxy-down**(可能性 medium)→ 修复 osf-fix-whole-proxy\n- **osf-no-connection**(可能性 medium)→ 修复 osf-fix-get-it-in\n- **osf-routed-wrong**(可能性 high)→ 修复 osf-fix-route\n- **osf-webrtc-exposes**(可能性 low)→ 修复 osf-fix-webrtc\n- **osf-exit-side**(可能性 medium)→ 修复 osf-fix-other-node\n\n## 修复\n### osf-fix-whole-proxy\n1. 代理整体没通,不是这一条的情况(作者建议按客户端查):Clash Verge Rev 见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet),Karing 见 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working),v2rayNG 见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet),Clash Party 见 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run),v2rayN 见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run);测速全失败见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout),只在某个网络下这样见 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)。\n验证:osf-verify-others-back\n\n### osf-fix-get-it-in\n1. **只开着系统代理时**:并非所有程序都读系统代理,官方举的例子是游戏和命令行(官方说明);Linux 虚拟机里实测,命令行程序不经过 Clash Verge Rev,开虚拟网卡(TUN)后被接管、经节点。先开虚拟网卡(作者建议):Clash Verge Rev 见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy),Clash Party 是侧栏「虚拟网卡」,v2rayN 是状态栏「启用 Tun」。Telegram 这类有自己代理设置的程序,也可以在里面填客户端的本机端口,入口见 [Telegram 官方说明](https://core.telegram.org/proxy);桌面版默认跟随系统代理(按源码)。\n2. **Windows 上微软商店这类应用**(UWP):微软文档说打包应用默认挡着本机回环连接,而系统代理指向的正是本机地址,所以它们开着系统代理也连不上(作者推断)。先开虚拟网卡(作者建议);Clash Verge Rev 在 Windows 的「设置」→「Clash 设置」里还有「UWP 工具」,用来解除这项限制(按源码,没实测)。\n3. **手机上**:Karing 安卓版「分应用代理」排除了它时,它根本不进 Karing(实测),见 `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)。\n4. **开着虚拟网卡也没有记录**:可能没接管它,也可能域名没解析出来(作者说明),按虚拟网卡那一条查:Clash Verge Rev 见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working),Clash Party 见 `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working),v2rayN 见 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)。\n验证:osf-verify-site-works\n\n### osf-fix-route\n1. 出口不对是分流规则分错了,给它单独加一条(作者建议):Clash Verge Rev 见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute),Clash Party 见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override),Karing 见 `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing),v2rayN、v2rayNG 见 `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)。国内的选直连,要翻墙的选节点。全局下能用、规则下不行也是这一类;别一直停在全局,全局下国内网站也绕到节点(实测,内核层)。\n2. **记录里只有 IP、没有域名的**(Telegram 常见:桌面版启动时连的就是一串 IP,按源码):域名规则接不住它,它落到兜底规则(命令行内核实测);改按 IP 段或程序名加规则(作者建议)。\n验证:osf-verify-site-works\n\n### osf-fix-webrtc\n1. 只开系统代理时,WebRTC 向外询问地址的 UDP 请求不经过客户端(官方说明系统代理不能代理 UDP;Linux 虚拟机里 Chrome、Firefox 实测),开虚拟网卡后进了 Clash Verge Rev、按规则走(实测)。浏览器侧的开关、要不要管,见 `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)(作者建议)。网站会不会据此判断你在哪,本站无法确认(作者说明)。\n验证:osf-verify-site-works\n\n### osf-fix-other-node\n1. 出口符合预期,确认的是这个网站的连接走对了:交给节点的连接由节点去连(实测),网站看到的是节点的出口(作者说明)。WebRTC 检测页干净只说明检测页那一条路,这个网站自己的 WebRTC 走哪仍无法确认,它可能用别的 STUN 服务器(作者说明);放心不下的按 `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak) 设浏览器开关,让网页的 UDP 不再绕过代理。本站不评价哪里的节点能用、哪家服务认哪里。该走节点的,换一个节点(换个地区的)再试;国内网站、应用已经直连还要验证的,保持直连,问这家服务的客服(作者建议)。\n验证:osf-verify-other-node\n\n## 验证\n- **osf-verify-others-back**(人):按那一条处理完,打开一个平时要经代理才能打开的网站。\n 预期:能打开了,再看一开始那个:也好了就不用再查,还不行接着答第二问。仍然打不开,回那一条继续查。\n 通过 → osf-conn-found;失败 → escalate;无法判断 → escalate\n- **osf-verify-site-works**(人):保持改过的设置,先打开看记录的地方,再重新打开那个网站或程序(程序完全退出再开)。\n 预期:它能正常用了(打得开、不再提示地区不支持或反复要验证、Telegram 不再一直「连接中」),记录里也是你想要的出口,就好了。仍然不行从第一问重走(作者建议)。\n 通过 → resolved;失败 → osf-others-work;无法判断 → escalate\n- **osf-verify-other-node**(人):该走节点的:换上另一个节点(换个地区的更好),确认记录里走的是它,再打开那个网站或程序。国内网站、应用已经直连的:保持直连,按这家服务客服的答复处理后再打开。\n 预期:换了节点能用,就先用它;直连的按客服答复处理后能正常用了,也就好了(作者建议)。换了几个节点都不行,带着网站或应用名、提示原文、试过哪些节点,去问节点的服务商或这家服务的客服;贴之前遮掉订阅链接和节点地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理(程序自发读取「约定」位置的端口信息,并非所有程序都遵守;不能代理 UDP 流量);Tun 模式(拦截和处理所有流量 TCP/UDP,不依赖开发人员))\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(Tun 模式:在系统中安装虚拟网卡,以接管不支持「系统代理」的程序(例如游戏和命令行))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/config/clash.rs L76(默认日志等级 info);src/locales/zh/layout.json L10(「日志」页);src/components/setting/setting-clash.tsx L318-L329(「UWP 工具」只在 Windows 上显示);src-tauri/src/core/win_uwp.rs L9-L25(不是管理员时以管理员身份运行 enableLoopback.exe);src/locales/zh/settings.json L112、L143(UWP 工具与说明原文))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/renderer/src/components/connections/connection-detail-modal.tsx L150-L156(连接详情的规则、代理链))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(ServiceLib/Global.cs L55-L57(出站标签 proxy、direct、block);v2rayN/Views/StatusBarView.xaml L55-L65(状态栏「启用 Tun」开关);ServiceLib/Handler/ConfigHandler.cs InitBuiltinRouting L2601-2664(V4-全局(Global) 等三套预设的名称);v2rayN/Views/StatusBarView.xaml L73-95(状态栏的路由下拉框))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/AppConfig.kt L104-L106(出站标签 proxy、direct、block))\n- tdesktop-repo:https://github.com/telegramdesktop/tdesktop/tree/fb2e33209517e1a34637d837bfadb3783f2fd59c(Telegram/SourceFiles/core/core_settings_proxy.h L82(代理设置默认 System);Telegram/Resources/langs/lang.strings L815、L1281-L1283(Connection type、Disable proxy、Use system proxy settings、Use custom proxy);Telegram/SourceFiles/mtproto/mtproto_dc_options.cpp L31-L38(启动用的内置数据中心地址是 IP))\n- telegram-core-proxy:https://core.telegram.org/proxy(Adding a Proxy:Android: Settings > Data and Storage > Proxy Settings;iOS: Settings > Data and Storage > Proxy;Telegram Desktop: Settings > Advanced > Connection Type;Telegram for macOS: Settings > Data and Storage > Use Proxy)\n- ms-uwp-loopback-learn:https://learn.microsoft.com/zh-cn/windows/uwp/communication/interprocess-communication(回送一节(为了保持安全性和网络隔离,默认情况下,打包的应用程序会阻止 IPC 的环回连接;打包的应用程序连接到未打包的应用程序或服务时,运行 CheckNetIsolation.exe LoopbackExempt -a -n=<PACKAGEFAMILYNAME> 添加环回豁免,需要管理员权限))\n- exp-webrtc-and-single-site-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-rules-misroute-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-rules-misroute-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-dns-leak-detected-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-dns-gui-linux-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-routing-and-diagnostics-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-xray-allowinsecure-removed-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-where-are-logs-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-v2rayn-routing-presets-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:6f516cb 2026-10-02\n"},"policy-group-not-found":{"id":"policy-group-not-found","type":"troubleshoot","title":"Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)","aliases":["Clash Verge 重启后节点全没了","Clash Verge 代理页一个节点都没有","Clash Verge 节点消失 全部直连","启动订阅配置校验失败,已使用默认配置启动","配置验证未通过,使用默认最小配置启动","订阅配置校验失败,请检查订阅配置文件,变更已撤销","订阅已保存,但未能确认已应用到内核","proxy [🚀 节点选择] not found","rules error proxy not found","订阅改了策略组名 自定义规则失效","订阅改了组名后规则报错","规则里的策略组不存在","未获取到代理信息","更新订阅报 proxy not found"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","routing-rules"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 重启后「代理」页一个节点都没有、网页全部直连,或者更新订阅时弹出带 `proxy [名称] not found` 的报错:说明有一条规则写的代理组名(也可能是节点名),在订阅里已经不存在。典型的诱因是服务商给代理组改了名(比如换了 emoji),而你自己加的规则(「编辑规则」、扩展覆写配置、扩展脚本)还写着旧名。这时订阅本身不一定坏了,先别急着换订阅。**第一步**:在「订阅」页右键正在用的订阅(切换订阅时报的,是你没能切过去的那一张),打开「编辑规则」,在规则列表上方的搜索框里输入报错里的那个名字;没看到报错原文的,点「订阅」页顶部的火焰图标(鼠标停上去显示「重新激活订阅」),报错会再弹一次——切换订阅时报的,这样重现不了,改为再点一次那张卡片。在「高级」里把旧名字改成新名字。搜不到的,按下面取证里「是你自己写进去的吗」那一问列的地方逐个找;都没有,是订阅自己引用了不存在的名字,按下面「修复」里找服务商的那一步做。改的是正在用的订阅,按源码,保存后会立即重新生成配置,节点回来,不用重启;改的是切换时没切过去的那一张,保存时不会校验它,要回「订阅」页再点一次那张卡片,切过去才算好。\n\n本条说的「代理组」,就是「编辑规则」里「代理策略」下拉列出的那些名字,有的订阅叫它策略组。本条只写 Clash Verge Rev;FlClash 等客户端遇到同一句报错时,界面反应和修法都不同。\n\n**一个名字对不上,整份配置都不能用,不是只跳过那一条。**内核按名字逐字查找规则引用的对象,查不到就把整份配置判为无效。Clash Verge Rev 在不同时刻的反应不一样。前两种在 2.5.2 上实机跑过(看的是应用日志和内核接口,弹出的提示没有亲眼看到,提示原文按源码);第三种按源码:\n\n- **运行中更新订阅**:内核继续用旧配置,一切照常能用;但新下载的订阅已经存下了。按源码会弹出更新失败的提示(2.5.5、2.5.6 写的是「订阅已保存,但未能确认已应用到内核」)。\n- **下次重启**:客户端退回一份自带的默认配置,里面没有节点、代理组和规则。代理端口照常开着、看上去还连着,其实所有连接都直连,不经过任何节点。按源码会弹出「启动订阅配置校验失败,已使用默认配置启动」。\n- **切换订阅,或保存「编辑规则」这类订阅自己的编辑器**:提示「订阅配置校验失败,请检查订阅配置文件,变更已撤销」,回到改之前的状态。\n\n这对你意味着:更新失败那一刻就是最好的修复时机,等到重启才发现,就变成了「节点全没了」。\n\n## 名字要一字不差\n\n官方文档只说规则的「代理策略」要选配置里的节点分组,可以是 `DIRECT`、`REJECT` 或代理组名称,例子里的组名带 emoji;mihomo 官方的规则页也只给了「规则,内容,策略」的例子。「名字不存在就整份拒绝」这件事,官方文档里没有写,下面是按内核源码和实测:\n\n- 实测大小写不同、emoji 后面少一个空格,都算不存在;内置策略也一样,`direct` 写成小写同样报错。规则类型(`domain-suffix`)写小写倒没关系。\n- 规则里名字两头的半角空格会被去掉,全角空格不会;组名**本身**末尾带的空格也不会被去掉。这样的组任何规则都引用不到,就算从下拉里选中它,保存后照样报 not found,报错里的名字看上去却和组名一模一样。遇到这种情况换一个组,或者请服务商去掉组名里的空格。\n- 排在兜底 `MATCH` 后面、永远轮不到的规则,写错了照样让整份配置失败。\n- 订阅只是改了组名、你没加过任何东西时,配置能正常通过。所以出这个错,要先找自己写过的地方。\n\n官方文档还写明,「编辑规则」里加的规则不会随订阅更新而失效。正是因为规则留着、订阅里的组名却变了,才会出这个错。\n\n代理组里的成员名对不上,情况不一样:Clash Verge Rev 交给内核之前,会把组成员里不存在的节点名、组名悄悄删掉,不报错。实测脚本加的组里写了不存在的节点名,那个名字没了,配置照常通过。所以你自建的组里写着旧节点名时,看到的是那个节点从组里消失,不是本条的报错,见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)。按源码还有两种例外,本条不展开:组里同时引入了代理集合(`use`)时旧名字不会被删,报 `proxy group[序号]: 组名: '名称' not found`;组的成员全被删光时,报 `` `use` or `proxies` missing ``。\n\n## 界面上会看到什么\n\n- 红色提示按源码默认只显示 8 秒,很容易错过。错过了可以在「订阅」页点顶部的火焰图标(鼠标停上去显示「重新激活订阅」)再触发一次校验(切换订阅时报的除外:它校验的是还原回来的那份,要再点一次你要切过去的那张卡片);按源码,这时的提示开头也写着「变更已撤销」,但你并没有改东西,只看后面含 `not found` 的那一行。或者看应用日志:更新时是「[订阅更新] 更新失败」,启动时是「[首次启动] 配置验证未通过,使用默认最小配置启动」,后面都跟着那段 `not found`。\n- 2.5.5、2.5.6 在「规则」模式下,「代理」页这时按源码会显示「未获取到代理信息」。Linux 版 2.5.6 上激活一份节点和策略组都为空的本地配置时,看到的也是这段文字(记录里没写当时是哪种模式);本条这种情况本身没有在界面上复现。2.5.2 没有这段文字。「全局」模式下全局组里还剩 `DIRECT`、`REJECT` 两项(内核接口实测);按源码,全局模式下「代理」页列的就是这个组,所以会列出这两项,不会显示成空状态(没有在界面上看过)。\n- 官方 FAQ 另记了「代理界面异常,不显示任何内容」,那是界面本身的问题,代理仍在工作(它说的两个原因,Linux 上实测在 2.5.6 上不会让代理页空白,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error))。本条的情况不一样:有上面的提示或日志,而且「连接」页里的链路全是 `DIRECT`。\n\n## 怎么避免再遇到\n\n下面是作者建议:自己加规则时尽量用 `DIRECT`、`REJECT`,或者引用不常改名的组;组名从「编辑规则」的「代理策略」下拉里选,别在「高级」里手打。更新订阅后一旦看到失败提示,趁还没重启就按下面「修复」一节的步骤改掉。\n\n报错原文的对照见 `mihomo 内核报错信息表`(见 mihomo-error-catalog),规则怎么加见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)。\n\n## 这些结论是怎么核对的\n\n在 macOS 上用 Clash Verge Rev 2.5.2 实机复现过(直接改写界面保存的文件,从应用日志和内核接口读结果),名字匹配的细节用命令行 mihomo 逐项测过;2.5.5、2.5.6 只核对了源码;「代理」页的空状态只在 Linux 版 2.5.6 上用一份空的本地配置看过类似情形。\n\n- 界面上的提示、「编辑规则」的下拉、拖动与保存都没有亲眼看到,按源码写;「代理」页只在 Linux 版 2.5.6 上看过空配置时的类似情形,本条这种情况没有复现。\n- 实测的恢复是由定时更新触发的,「保存后立即恢复」按源码写;Windows 没有实测,Linux 上本条的情况没有复现。\n\n## 取证\n- **pgnf-not-found-in-message**:出问题时弹出的红色提示里,或者 Clash Verge Rev 的应用日志里,有没有一行含 `proxy [名称] not found`(前面通常是 `rules[序号] [整条规则] error:`)?**没加过规则、覆写或脚本的也照实回答**:订阅自己引用了不存在的名字也会报这一句,名字是不是你写的,下一问再分,不是你写的会带你去找服务商;报错是 `proxy group[…]` 开头的那种,不归本条,也选「没有」。(红色提示按源码只显示 8 秒。错过了,到「订阅」页点顶部那排小图标里的火焰图标——鼠标停上去显示「重新激活订阅」——它会重新生成配置再校验一次,名字对不上就再弹一次;切换订阅时报的,它校验的是切换失败后还原回来的那份订阅,重现不了,改为再点一次你要切过去的那张卡片;提示开头写着「变更已撤销」是通用说法,只看后面含 `not found` 的那一行。也可以按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 打开应用日志,找「更新失败」或「配置验证未通过」那几行)\n pass → pgnf-name-in-own-edits;fail → pgnf-other-core-error;unknown → sub-downloads-ok(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))\n- **pgnf-other-core-error**:提示或日志里有没有别的报错,比如最后一行是 `test failed` 的那一段?(没见过任何报错提示、日志里也找不到的,选「没有」;只有下载时的报错、没有 `test failed` 的(比如 `failed to fetch remote profile`、`invalid yaml`、`profile does not contain`),也选「没有」,接着查订阅下载)\n pass → sub-config-passes-core-test(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed));fail → sub-downloads-ok(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed));unknown → sub-downloads-ok(见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))\n- **pgnf-name-in-own-edits**:报错里 `proxy [ ]` 方括号里的那个名字,是你自己写进去的吗?依次找:这个订阅右键菜单里的「编辑规则」「扩展覆写配置」「扩展脚本」,以及「订阅」页最下方的「全局扩展覆写配置」「全局扩展脚本」。在「编辑规则」的搜索框里输入这个名字最快。你在「编辑代理组」里删掉过订阅自带的某个组,或在「编辑节点」里删掉过某个节点、而某条规则直接写着这个节点名,也选「是」\n pass → pgnf-stale-name-in-own-edits;fail → pgnf-sub-refs-missing-name;unknown → escalate\n\n## 原因\n- **pgnf-stale-name-in-own-edits**(可能性 high)→ 修复 pgnf-fix-own-reference\n- **pgnf-sub-refs-missing-name**(可能性 low)→ 修复 pgnf-fix-ask-provider\n\n## 修复\n### pgnf-fix-own-reference\n1. **名字写在「编辑规则」里**:在「订阅」页右键报错的那个订阅(一般是正在用的;切换订阅时报的,是你要切过去的那个),选「编辑规则」。编辑器左半边是添加规则的表单,右半边是规则列表。先在列表上方的搜索框输入报错里的旧名字,引用它的规则会一起列出来(内核一次只报它碰到的第一处,搜一下能一次找齐)。**最省事的改法是点标题栏右边的「高级」,直接在文本里把旧名字改成新名字**:规则的先后顺序不变,旧名字是组名还是节点名都能这样改。新名字要和订阅里逐字一致:实测大小写不同、emoji 后面少一个空格都算不存在,`DIRECT` 写成小写也不行,只有两头的半角空格会被忽略。现在的组名可以看左边表单「代理策略」的下拉:按源码,下拉里的组名读的是订阅文件、不是运行中的内核,所以即使「代理」页已经一个节点都没有,这里列的也是订阅**现在**的组名。下拉里只有内置策略和代理组,**不列单个节点**(见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)):旧名字是某个节点的名字、这条规则原来固定走那个节点的,在「高级」里改成订阅里现在对应的节点名,不要换成一个组,否则它就不再固定走那个节点。**改用表单的**:列表里的规则只能删、不能直接改,所以要删掉再加回去。按源码,「添加前置规则」每条都插在前置规则的最前面,「添加后置规则」每条都加在后置规则的最后面;加好以后,可以在列表里按住这条规则拖回原来的位置(前置、后置两段各自能拖动排序,按源码,没有在界面上拖过)。做法:先记下要改的每一条的类型、内容和位置,点右边的删除图标;再在左边按原样选「规则类型」、填「规则内容」,「代理策略」从下拉里选现在的代理组,点对应的添加按钮,然后把它拖回记下的位置;全部加完,对照记下的顺序核对一遍。要改的条数多,用「高级」改更省事。都改完再保存。这一步的界面按 2.5.2、2.5.5、2.5.6 源码写,没有亲眼看到。\n2. **你在「编辑代理组」或「编辑节点」里删过订阅自带的组或节点**:打开同一个编辑器,找到带删除线的那一项,点它右边的撤销图标(弯箭头),保存。按源码,在「编辑代理组」里删掉的组,引用它的规则不会跟着删,所以会报这个错;在「编辑节点」里删掉的节点会同时从各个代理组里去掉,只有直接写着这个节点名的规则会报错。\n3. **名字写在扩展覆写配置或扩展脚本里**(这个订阅的,或全局的):打开它,把写死的旧名字改成现在的,保存。全局的两项对每一份订阅都生效:只有某一份订阅里有这个组时,换到别的订阅就会报这个错。要么改成每份订阅都有的名字(`DIRECT`、`REJECT` 这类内置策略总是在),要么把它挪进那份订阅自己的「编辑规则」里(作者建议)。\n4. **让改动生效**:改的是正在用的订阅(或全局的那两项),按源码,保存时 Clash Verge Rev 会立刻重新生成配置交给内核,校验通过节点就回来,不用重启(实测是等下一次定时更新重新生成配置后恢复的,没有在界面上点保存)。如果又弹出「订阅配置校验失败……变更已撤销」和下一段 `not found`,说明还有别的地方写着不存在的名字;按源码,改的是订阅自己的那几项时,保存失败会把刚才那处改动也撤回。所以同一个编辑器里的几处要一起改好再保存;几处分在不同编辑器里的,先改全局的两张卡片(它们被拒也不撤回),最后改这个订阅自己的;这个订阅自己的两个编辑器里都有(比如「编辑规则」和它的扩展覆写配置)时,单独保存哪一个都会被另一处挡住、撤回,这时先在「订阅」页点另一个订阅切过去,把这份的几处都改好保存(它不是正在用的订阅,保存时不校验),再点回它的卡片,切换时一起校验(这一段按源码推断,没有实测);没有别的订阅可切的,去求助。改的是全局的两张卡片时,文件不会撤回,要重新打开那张卡片把改动修好再保存(见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config))。改的是切换时被撤销的那份订阅,保存时不会拿它和订阅合在一起校验,改完回「订阅」页再点一次那张卡片,切换时才会校验。\n验证:pgnf-original-action-works\n\n### pgnf-fix-ask-provider\n1. 名字不在你写过的任何地方,说明是订阅下发的配置自己引用了不存在的组或节点,要服务商来改。把报错那一行发给服务商(**不要带订阅链接**)。等他们修好之前:错误是更新订阅时才出现的话,Clash Verge Rev 运行中还在用旧配置,**先别重启**,重启就会退回没有节点的默认配置;已经重启、节点没了的,有别的订阅可以先切过去,切换失败会自动还原,不会更糟。也可以临时绕开:在「编辑规则」的列表里找到报错的那条订阅自带规则,点删除图标(它会带上删除线,不会真的从订阅里删掉),保存后节点就回来,代价是这条规则的分流暂时不起作用;服务商修好、更新订阅后,回来看一眼,那条规则还带删除线就点撤销恢复。这几条是作者按源码行为给的建议,没有实测。\n验证:pgnf-original-action-works\n\n## 验证\n- **pgnf-original-action-works**(人):回到最初出问题的那个动作再做一遍:节点消失的,看「代理」页;更新订阅报错的,右键这个订阅点「更新」;切换订阅被撤销的,再点一次那张卡片;打开虚拟网卡模式之类的开关时报错的,再开一次。然后打开一个平时要走代理的网页,到「连接」页找到它。前面这几项都做到了,最后退出 Clash Verge Rev 再打开一次;有一项没做到(又弹出失败提示、最初那个动作没成、「代理」页没有组和节点、链路是 `DIRECT`),**先别重启**,直接按没通过处理——更新失败时旧配置还在运行,重启会退回没有节点的默认配置。在等服务商修的,等服务商修好、更新成功之后再做这一遍。\n 预期:没有再弹出带 `not found` 的提示,也没有弹出别的失败提示;「代理」页列出了订阅里的组和节点;那个网页的连接,「链路」一栏是节点(或「组名 / 节点名」),不是 `DIRECT`。**还要核对最初那个动作这次成了**:更新订阅报错的,卡片上的更新时间变成刚才;切换订阅被撤销的,那张卡片变成选中(高亮)的样子、成为正在使用的订阅——切换失败会还原回原来那份,这时「代理」页列的是原来那份的组和节点,不能只看它;打开开关时报错的,开关保持打开。重启之后仍然如此。按源码,保存或更新的不是正在用的那份订阅时不会交给内核校验,所以只看到「保存成功」或「更新成功」还不算通过:切换订阅的以那张卡片切过去为准,其余以重启后的样子为准。没通过、报的是另一个名字的:从第一问重走,按新名字再找。报的还是同一个名字、而你已经按修复步骤改过的:先核对改的是报错的那份订阅、新名字与订阅里逐字一致(组名从「代理策略」下拉里选);从下拉里选的仍报同一个名字,可能是组名本身末尾带空格(见正文「名字要一字不差」),换一个组或请服务商改。在等服务商修的,服务商修好之前重做也还是一样,先用「修复」里找服务商那一步的临时绕开。仍然一样的,别再重复改,这一步选「无法判断」去求助。\n 通过 → resolved;失败 → pgnf-not-found-in-message;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n\n## 来源\n- cvr-guide-rules:https://www.clashverge.dev/guide/rules.html(1. 编辑订阅规则(此处编辑的规则不会随着订阅更新而失效);4. 代理策略选择(DIRECT、REJECT 或代理组名称))\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(代理界面异常,不显示任何内容)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(页首规则示例(规则,内容,策略 的写法))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(config/config.go L703-L706(规则出错,整份配置解析失败)、L891-L896(内置策略名)、L954(proxy group[序号] 前缀)、L1096-L1112(parseRules:按名字精确查表,查不到报 proxy [名称] not found);rules/common/base.go L37-L49(按逗号切分后每段只去掉首尾半角空格,只有规则类型转大写);adapter/outboundgroup/parser.go L117-L118(组没有成员时报 `use` or `proxies` missing)、L223-L233(组成员查不到报 '名称' not found))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/feat/profile.rs L184-L222(更新订阅:先存盘,只有当前订阅才重新生成并校验,失败提示「订阅已保存,但未能确认已应用到内核」);src-tauri/src/config/config.rs L140-L192(启动校验失败改用默认配置);src-tauri/src/core/manager/config.rs L132-L150(默认配置只有基础设置);src-tauri/src/cmd/profile.rs L42-L63(重新激活订阅)、L259-L313(切换订阅校验失败还原到之前的订阅);src-tauri/src/cmd/save_profile.rs L101-L120、L154-L180(只有影响当前运行配置的保存才重新生成并校验,失败还原文件);src-tauri/src/enhance/mod.rs L706-L785(cleanup_proxy_groups:组成员里不存在的名字交给内核前被删掉,组里 use 了存在的代理集合时除外)、L966(调用处);src-tauri/src/enhance/seq.rs L79-L141(编辑节点里删掉的节点同时从各组去掉,规则不动);src/components/profile/rules-editor-viewer.tsx L309-L360(列表项只有删除 / 撤销与前后置移动,没有编辑)、L364-L384 与 L776(onReorder:前置、后置两段拖动排序,交给 grouped-virtual-list.tsx 的 DragDropProvider 与 SortableItem)、L469-L540(策略下拉读订阅文件)、L594-L611(高级按钮)、L616-L765(左半边的添加表单)、L772(搜索框);src/components/profile/rule-item.tsx L56、L90-L101;src/components/profile/group-item.tsx L73、L102-L104;src/components/profile/proxy-item.tsx L44、L73-L74(删除线与撤销图标);src/pages/profiles.tsx L745-L752(火焰图标,标题「重新激活订阅」);src/services/notice-service.ts L55-L60(错误提示 8 秒);src/locales/zh/shared.json L109-L110;src/locales/zh/rules.json L28-L37;src/locales/zh/proxies.json L60-L63(未获取到代理信息);src/components/proxy/proxy-groups.tsx、proxy-empty-state-model.ts(列表为空时才显示空状态))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)逐文件对比:本条引用的 src-tauri/src/feat/profile.rs、config/config.rs、core/manager/config.rs、cmd/profile.rs、cmd/save_profile.rs、enhance/ 整个目录,以及 src/components/profile/rule-item.tsx、group-item.tsx、proxy-item.tsx、src/pages/profiles.tsx、src/services/notice-service.ts、src/components/proxy/proxy-groups.tsx 与 proxy-empty-state-model.ts 都没改(L64-L73:列表为空时,内核没在运行或取不到数据算「内核暂不可用」,否则算「未获取到代理信息」);src/components/proxy/use-render-list.ts 没改(L261-L266 非规则模式只列 GLOBAL 组,L297 与 L311 全局下总是展开组成员,L351-L352 用 slice(1) 只去掉组标题,列表因此不为空);src/components/profile/rules-editor-viewer.tsx 只给「规则内容」输入框关掉了自动大写(L684-L690,其后行号顺延 7 行):L364-L384 的 onReorder 在 L780-L784 传给 GroupedVirtualList,grouped-virtual-list.tsx 没改(DragDropProvider 加 SortableItem,前置、后置两段可拖动排序);src/pages/_layout/utils/notification-handlers.ts 新增的「启动内核失败」提示只在内核没起来时触发,启动校验失败的提示仍在 L191-L192)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/config/config.rs L96-L101、L127-L178(启动校验失败改用默认配置);src-tauri/src/feat/profile.rs L206-L226(更新订阅失败);src-tauri/src/cmd/save_profile.rs L181-L195;src-tauri/src/enhance/mod.rs L544-L612(cleanup_proxy_groups)、L767(调用处);src-tauri/src/enhance/seq.rs(与 2.5.5 相同);src/components/profile/rules-editor-viewer.tsx L298-L321 与 L347-L370(前置、后置两段各包在 DndContext 与 SortableContext 里)、L383-L406(拖动结束后重排)、L480-L545(策略下拉)、L744-L773(添加前置 / 后置规则)、L784(搜索框);src/components/profile/rule-item.tsx L27(useSortable)、L75、L108-L110;src/components/profile/group-item.tsx L102、L131-L133;src/pages/profiles.tsx L824-L831(火焰图标);src/services/notice-service.ts L44;src/locales/zh/shared.json L99-L100;src/locales/zh/profiles.json(编辑规则、编辑代理组、编辑节点、扩展覆写配置、扩展脚本、重新激活订阅))\n- exp-policy-group-not-found-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-policy-group-not-found-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-cvr-add-custom-rule-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-extend-config-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n\n最后修订:9e28947 2026-09-28\n"},"proxy-left-on-no-internet":{"id":"proxy-left-on-no-internet","type":"troubleshoot","title":"退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有","aliases":["关掉代理软件后上不了网","退出代理软件后电脑没网","卸载代理软件后上不了网","代理软件闪退后上不了网","Clash Verge 退出后上不了网","Clash Verge 卸载后上不了网","Clash Party 闪退后上不了网","Clash Party 退出后上不了网","v2rayN 退出后上不了网","v2rayN 卸载后上不了网","关了代理浏览器打不开网页","代理服务器拒绝连接","无法连接到代理服务器","ERR_PROXY_CONNECTION_FAILED","系统代理没关","系统代理残留","系统代理指向本机地址","任务管理器结束代理软件后没网"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","clash-party","v2rayn","tun-and-service"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有\n\n主题:`排错`\n适用:clash-verge-rev/clash-party/v2rayn / windows/macos/linux / any\n最后验证:2026-10-01\n\n退出、强行结束或卸载了代理软件(或者它闪退了)之后,电脑上不了网:浏览器什么都打不开,Chrome 显示「未连接到互联网」「代理服务器出现问题,或者地址有误。」,错误码 `ERR_PROXY_CONNECTION_FAILED`(Linux 虚拟机实测)。**多半是系统代理还开着,指向已经没人监听的本机地址(以 127 开头)。**适用 Clash Verge Rev、Clash Party、v2rayN(Windows、macOS、Linux):\n\n1. **它真的退出了吗**:点窗口 × 不算退出。还在运行就先关掉系统代理,再正常退出。\n2. **系统代理还开着吗**:开着、指向以 127 开头的本机地址,就是留下来的。重新打开这个客户端再正常退出,或者直接在系统设置里关掉。\n3. **只有某一个程序上不了网**:是它自己设了代理(浏览器扩展、环境变量)。\n4. **开过虚拟网卡(TUN)的**:看虚拟网卡还在不在。\n5. 都不是:和代理软件无关,查网络本身。\n\n## 各系统在哪看、怎么关\n\n- **Windows**:「设置 → 网络和 Internet → 代理」。「手动设置代理」下「使用代理服务器」显示「开」就是开着:点右边的「编辑」(微软说明里叫「设置」),关掉「使用代理服务器」,点「保存」。「自动设置代理」下的「使用设置脚本」开着、地址指向以 127 开头的本机地址的也要关,Clash Verge Rev 的 PAC 模式、v2rayN 的「Pac 模式」写的是这一项(按源码)。\n- **macOS**:苹果菜单 →「系统设置」→ 边栏「网络」→ 正在用的网络服务 →「详细信息」→「代理」,把「网页代理 (HTTP)」「安全网页代理 (HTTPS)」「SOCKS 代理」「自动代理配置」里服务器是以 127 开头的本机地址的关掉(Apple 说明,本站没在 Mac 上测)。\n- **Linux(GNOME)**:「设置」→「网络」,点「代理」一节里的「代理」,关掉最上面的「网络代理」开关;或者终端运行 `gsettings set org.gnome.system.proxy mode 'none'`。两种都立即见效,都只把 `mode` 改成 `'none'`,填过的地址留着但不生效(虚拟机里单独运行的 GNOME「设置」46.7 实测,真实桌面上的位置没核对)。`gsettings get org.gnome.system.proxy mode` 显示 `'manual'` 或 `'auto'`(PAC,按源码)就是开着。KDE 等桌面没测。\n\n## 什么时候会留下\n\n程序没走正常退出就没了,系统代理就来不及改回去(作者说明)。Linux 虚拟机实测 Clash Verge Rev 2.5.6、Clash Party 2.0.3:\n\n- **正常退出**会关掉;点窗口 × 只是隐藏,代理照常。\n- **主进程被强行结束**(模拟闪退)就留下:Clash Party 的内核跟着被结束;Clash Verge Rev 的内核还活着,下一次有连接经过就退出,之后同样连不上。Windows 上 Clash Party 同样留下。\n- **运行中卸载**不结束程序、不动系统代理,之后正常退出照样关掉;卸载后程序又被强关就会留下(Clash Party 实测),而且没法再打开它来清,只能在系统设置里关。Clash Verge Rev 装了服务、开着虚拟网卡时卸载,约 14 秒后它自己清掉系统代理,并弹「需要更新系统服务」。\n\n## 适用范围与验证方式\n\nClash Verge Rev 2.5.6、Clash Party 2.0.3、v2rayN 7.24.9。实测在 Linux 虚拟机(GNOME 代理设置、Chrome for Testing),Clash Party 另在 Windows 11 实机;其余按源码与微软、Apple 的说明。macOS、Windows 上的 Clash Verge Rev 与 v2rayN、PAC 方式的残留、真实的注销关机都没测。\n\n## 取证\n- **plo-client-gone**:代理软件真的退出了吗?任务管理器(Mac 是「活动监视器」)里没有它,也没有名字带 `mihomo`、`xray`、`sing-box` 的内核进程。点窗口的 × 只是把窗口藏起来,Clash Party 的「轻量模式」会留着内核(实测);Clash Verge Rev 的 `clash-verge-service` 退出后本来就在,不算。(都没有选「通过」;还有一个在选「失败」;不会看选「无法判断」)\n pass → plo-sysproxy-off;fail → plo-still-running;unknown → plo-sysproxy-off\n- **plo-sysproxy-off**:系统代理关着吗?按正文「各系统在哪看、怎么关」去看,**看开关,别看地址**:正常退出后地址照样留着(实测)。(都关着选「通过」;开着、地址是以 127 开头的本机地址或 `localhost` 的选「失败」;开着但地址不是本机的,或者找不到这些设置,选「无法判断」)\n pass → plo-only-one-app;fail → plo-sysproxy-left;unknown → escalate\n- **plo-only-one-app**:系统代理关着,是不是只有某一个浏览器或程序上不了网,别的都正常?(是的选「失败」;全都上不了网选「通过」;没有别的可对照选「无法判断」)\n pass → plo-tun-gone;fail → plo-app-own-proxy;unknown → plo-tun-gone\n- **plo-tun-gone**:(之前开着虚拟网卡(TUN)的才回答,没开过选「通过」)它的虚拟网卡已经不在了吗?Clash Verge Rev、Clash Party 的叫 `Meta` 或 `Mihomo`,v2rayN 用 Xray 时叫 `xray_tun`。Windows 在「控制面板 → 网络和共享中心 → 更改适配器设置」里看,Linux 用 `ip -brief link`,macOS 选「无法判断」。(还在的选「失败」)\n pass → plo-not-residue;fail → plo-tun-left;unknown → escalate\n\n## 原因\n- **plo-still-running**(可能性 medium)→ 修复 plo-fix-quit\n- **plo-sysproxy-left**(可能性 high)→ 修复 plo-fix-sysproxy\n- **plo-app-own-proxy**(可能性 low)→ 修复 plo-fix-app-proxy\n- **plo-tun-left**(可能性 low)→ 修复 plo-fix-tun\n- **plo-not-residue**(可能性 medium)→ 修复 plo-fix-network\n\n## 修复\n### plo-fix-quit\n1. **它还在运行**:在软件里关掉系统代理和虚拟网卡,再正常退出:Clash Verge Rev 是托盘或「设置 → Verge 高级设置」里的「退出」,Clash Party 是托盘或设置页底部的「退出应用」,v2rayN 是托盘「退出」。两个 Clash 客户端这样退出都会关掉系统代理(Linux 虚拟机实测,Clash Party 另在 Windows 实测);v2rayN 按源码也会,「系统代理」选了「不改变系统代理」的除外。\n验证:plo-verify-web\n\n### plo-fix-sysproxy\n1. **客户端还装着**:重新打开它,再正常退出。Clash Verge Rev、Clash Party 重新打开时不提示,而是把同一份系统代理重新写一遍、恢复能用,正常退出时才关掉(Linux 虚拟机实测)。v2rayN 按状态栏「系统代理」下拉框来写,选「清除系统代理」就关掉,不管当初是谁打开的(按源码)。\n2. **已经卸载,或者不想再打开它**:按正文「各系统在哪看、怎么关」在系统设置里关掉。\n3. **关了又自己开回来**:多半还有一个代理软件在运行,又写了一遍(作者推断);Clash Verge Rev 开着「系统代理守卫」(默认关)时也会改回去(按源码)。同一时间只开一个代理软件(作者建议)。\n验证:plo-verify-web\n\n### plo-fix-app-proxy\n1. **只有它不行**:多半是它自己设了代理(作者推断)。浏览器看自己的代理设置和代理扩展,改成跟随系统;Firefox 默认跟随系统代理(Linux 虚拟机实测)。命令行程序看 `http_proxy`、`https_proxy`、`all_proxy` 环境变量:两个 Clash 客户端托盘里的「复制环境变量」复制的就是设置它们的命令(按源码),粘进过终端启动脚本的要删掉(作者建议)。\n验证:plo-verify-app\n\n### plo-fix-tun\n1. **虚拟网卡还在**:重新打开这个客户端,关掉虚拟网卡再正常退出;已经卸载的,重启一次电脑再看(作者建议)。Linux 虚拟机实测两个 Clash 客户端:内核没了网卡就跟着消失,`ip rule` 里留下几条标着 `[detached]` 的规则,没看到影响上网。Windows 上多出来的网卡见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n验证:plo-verify-web\n\n### plo-fix-network\n1. **没找到残留**:上不了网多半和代理软件无关(作者推断)。按 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network) 第一问查这个网络本身:跳出登录页的先登录,什么都打不开的查网线、Wi-Fi,或找网络的提供方(作者建议)。\n验证:plo-verify-network\n\n## 验证\n- **plo-verify-web**(人):客户端已经退出(或者在里面关掉了系统代理和虚拟网卡),新开浏览器,打开一个平时不开代理也能打开的网页,比如国内网站。\n 预期:能打开了,就解决了;之后想再用代理,打开客户端再开系统代理就行。仍然打不开,再看一遍系统代理有没有又被打开,然后从第一问重走(作者建议)。\n 通过 → resolved;失败 → plo-client-gone;无法判断 → escalate\n- **plo-verify-app**(人):改完后把那个浏览器或程序完全退出再重新打开(命令行程序开一个新的终端窗口),打开同一个网页。\n 预期:那个程序也能上网了,就解决了。仍然不行,带着程序名和它的报错原文求助(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **plo-verify-network**(人):按 `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network) 处理后(或者重启电脑后),打开平时不开代理也能打开的网页。\n 预期:网络本身通了、网页能打开,就解决了,之后再开代理照常用。仍然打不开,是这个网络还没通,要找网络的提供方,本条帮不上(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/core/tray/mod.rs L978-L980 与 src-tauri/src/feat/window.rs L113-L142(托盘「退出」走 quit:先停内核再退出);src-tauri/src/core/manager/lifecycle.rs L118-L142(停内核前清系统代理;macOS 服务模式下例外)、L687-L707(停内核时清系统代理)、L518-L547(内核起来后按设置写系统代理);src-tauri/src/core/proxy_control.rs L510-L560(清除走 reset_sysproxy);src-tauri/src/core/sysopt.rs L416-L478(「系统代理」关着时把全局代理与 PAC 都写成关;PAC 地址是本机地址上的 /commands/pac)、L531-L568(清除系统代理);src-tauri/src/config/verge.rs L353、L370(系统代理、系统代理守卫默认关);src/locales/zh/settings.json L455-L474(系统代理设置、系统代理守卫及其说明);crates/clash-verge-i18n/locales/zh.yml L75、L86(托盘「复制环境变量」「退出」);src-tauri/src/feat/proxy.rs L105-L135(复制环境变量:http_proxy、https_proxy、all_proxy))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/lifecycle.ts L100-L120(退出前关系统代理:Windows、Linux 直接关,macOS 经 helper);src/main/utils/init.ts L474-L489(启动时按「系统代理」开关写系统代理,关着就写成关);src/main/sys/sysproxy.ts L158-L185(关系统代理时自动代理与手动代理都关);src/main/core/manager.ts L191-L228(主进程一退出看门狗就结束内核);src/main/resolve/tray.ts L502-L535(托盘「复制环境变量」:http_proxy、https_proxy、all_proxy))\n- sysproxy-rs-44aaf00:https://github.com/clash-verge-rev/sysproxy-rs/tree/44aaf00ec9c6779e5a461a55d882eddff7841c98(src/windows.rs L34-L45(关系统代理时只留直连标志)、L69-L80(PAC:设自动代理脚本标志和脚本地址);src/linux.rs L36-L46、L146-L173(GNOME:org.gnome.system.proxy 的 mode 设成 manual 或 none)、L586-L630(自动代理:开时 mode 设成 auto、关时设成 none,两种情况都写 autoconfig-url))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Manager/AppManager.cs L122-L148(退出时 UpdateSysProxy 强制清除);v2rayN/ServiceLib/Handler/SysProxy/SysProxyHandler.cs L7-L67(「不改变系统代理」之外,强制清除时 Windows、Linux、macOS 各自清掉)、L109-L116(Pac 模式写本机地址上的 /pac);v2rayN/ServiceLib/Enums/ESysProxyType.cs L3-L9;v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs L685-L690(启动、重载内核后按下拉框写系统代理);v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs L374-L376(改下拉框时写);v2rayN/ServiceLib/Sample/proxy_set_linux_sh L22-L52(GNOME:gsettings 的 mode 设成 manual 或 none);v2rayN/v2rayN/Views/StatusBarView.xaml.cs L88-L92 与 v2rayN/v2rayN.Desktop/App.axaml.cs L144-L148(托盘「退出」);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L408-L409、L456-L467(退出、清除系统代理、不改变系统代理、Pac 模式、自动配置系统代理))\n- ms-windows-proxy-server:https://support.microsoft.com/zh-cn/windows/experience/connectivity-networking/use-a-proxy-server-in-windows(在 Windows 中使用代理服务器:设置 → 网络 & Internet → 代理;「手动代理设置」下「使用代理服务器」旁选择「设置」,在「编辑代理服务器」对话框里打开或关闭「使用代理服务器」,选择「保存」;「使用设置脚本」旁选择「设置」,在「编辑设置脚本」对话框里打开「使用设置脚本」、输入脚本地址、保存)\n- apple-mac-proxy-settings:https://support.apple.com/zh-cn/guide/mac-help/mchlp2591/mac(在 Mac 上更改代理设置:苹果菜单 >「系统设置」,点按边栏中的「网络」,点按一种网络服务,点按「详细信息」,然后点按「代理」;选项有自动发现代理、自动代理配置、网页代理 (HTTP)、安全网页代理 (HTTPS)、SOCKS 代理)\n- exp-proxy-residue-uninstall-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-webrtc-and-single-site-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:b5532fc 2026-10-02\n"},"proxy-modes":{"id":"proxy-modes","type":"howto","title":"Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项","aliases":["Clash Verge 全局模式","Clash Verge 代理模式怎么选","Clash Verge 切到全局模式反而上不了网","Clash Verge 全局模式所有网站打不开","全局模式还是打不开谷歌","全局模式 GLOBAL 列表选 DIRECT","GLOBAL 策略组的选择","GLOBAL 默认选中 DIRECT","dial GLOBAL i/o timeout","Clash Verge 更新订阅后全局模式变成直连","Clash Verge 直连模式打不开网页全局能打开","Clash Verge 规则模式、全局模式、直连模式的区别","Clash Verge 改成全局代理","Clash Verge 全局模式在哪里切换"],"primary_topic":"clash-verge-rev","topics":["clash-verge-rev","basics"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项\n\n主题:`客户端` › `Clash Verge Rev`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\n**切到「全局」反而上不了网,先看全局列表里选中的是哪一项。** Clash Verge Rev 的全局模式不看任何规则,把所有流量交给内核里一个叫 `GLOBAL` 的组;全局模式下代理页那张列表就是它。订阅没有自己写 `GLOBAL` 组时,开头两项是 `DIRECT`(直连)和 `REJECT`(拒绝),后面才是订阅里的节点和策略组。第一次用、还没在里面选过时,选中的是 `DIRECT`。\n\n策略组是订阅里把几个节点打包成的一项,名字通常像「节点选择」;点它,流量就交给这个组:多数组用的是它当前选中的那一项,负载均衡类的组则按策略把连接分给组里的不同节点。\n\n- **被墙的网站(比如谷歌)还是打不开、国内网站正常**:先看是不是停在了 `DIRECT`,或者选了一个当前选中 `DIRECT` 的策略组。这时流量全部直连,一条也没经过节点。\n- **所有网站都打不开**:选中的是 `REJECT`,会立即失败,日志里没有拨号错误;或者选中的节点连不上——本站实测节点地址不通时,约 5 秒后才失败,日志里是 `dial GLOBAL ... i/o timeout`;别的原因失效的节点,报错和耗时本站没有测。\n\n**这对你意味着**:切到全局后,要在列表里点一个能用的节点,或者走代理的那个策略组。另外,「全局」和「虚拟网卡模式(TUN)」不是一回事;v2rayN、v2rayNG 里的「全局」又是另一套东西,见文末。\n\n## 全局模式下选哪一项,流量去哪\n\n| 列表里选中的是 | 结果 | 这对你意味着 |\n|---|---|---|\n| `DIRECT` | 不经过任何节点,从本地网络直接出去 | 等于没开代理:被墙的网站打不开,国内网站正常 |\n| `REJECT` | 立即失败 | 所有网站都打不开 |\n| 一个连不上的节点(比如服务器地址不通) | 本机实测约 5 秒后失败 | 所有网站都打不开,而且要转一会儿才报错;别的原因失效的节点,耗时本站没有测 |\n| 一个能用的节点 | 经过这个节点 | 正常 |\n| 订阅里的策略组 | 交给这个组:多数是经过组里当前选中的那一项,负载均衡类的组按策略分给组里的不同节点 | 那一项是节点就正常;是 `DIRECT` 或 `REJECT`(比如名字带直连、拦截的组),结果和上面对应的那一行一样 |\n\n证据分两层。`DIRECT`、连不上的节点、能用的节点这三行,是在 macOS 上用 Clash Verge Rev 2.5.2 和本机测试节点跑出来的,又用命令行 mihomo 内核复核过。`REJECT` 和策略组这两行只在命令行 mihomo 上测过,Clash Verge Rev 上没有测。「约 5 秒」只是这两次观察到的时间,没有核对它是不是固定值。\n\n为什么会这样:内核官方文档写明全局模式「需要在 GLOBAL 策略组选择代理/策略」。按内核源码,订阅配置里没写 `GLOBAL` 组时,内核自己生成一个,成员依次是 `DIRECT`、`REJECT`、配置里 `proxies` 下的各节点、各策略组——放在「代理集合」(proxy-providers)里的节点不直接列进来,只能通过策略组选到。选择类的策略组(`GLOBAL` 就是这一类)没被选过、或者选中的名字已经不在组里时,用组里的第一项,官方文档对策略组的默认值也是这样写的。所以没选过的 `GLOBAL` 实际是直连,不会报错。订阅自己写了 `GLOBAL` 组的,列表以订阅写的为准(按源码,本站没有测过这种订阅)。\n\n**选择会被记住,但被选中的节点消失后会退回直连。** 内核默认保存策略组的选择(这个选项的作用见官方文档),重启后还是上次那一项(命令行内核上实测,没有在 Clash Verge Rev 上测)。Clash Verge Rev 自己也给每份订阅记一份选择:你在代理页点过的每一项(包括全局列表)都记进当前订阅,切换到这份订阅时(2.5.5 起另外在内核启动后)再重新下发给内核;被记下的名字在组里已经不存在时,它不会替你改选别的节点。所以如果被选中的节点从配置里消失了——比如更新订阅后它改了名或下线了——`GLOBAL` 会按内核的规则退回第一项 `DIRECT`,流量随之直连。**这对你意味着**:全局模式昨天还好好的,更新完订阅就不走代理了,回代理页看一眼选中的是不是变成了 `DIRECT`。这一条的依据是命令行内核上手工改节点名的实验,加上 Clash Verge Rev 的源码;本站没有在 Clash Verge Rev 界面上实测更新订阅。\n\n同一个机制也让「第一次用是 `DIRECT`」有例外:内核按组名记选择,而每份订阅里的全局组都叫 `GLOBAL`。换一份新订阅时,如果之前在 `GLOBAL` 里选过的那个名字新订阅里也有,会沿用那一项,不是 `DIRECT`(按源码,本站没有实测)。\n\n## 首页那句「所有流量均通过代理服务器」说强了\n\nClash Verge Rev 首页「代理模式」卡片对全局的说明是「所有流量均通过代理服务器,适用于需要全局科学上网的场景」。实测全局模式下列表停在 `DIRECT` 时,流量并不经过任何节点。准确的说法是官方术语页那句:全局模式下「所有流量均从手工选定的代理节点/本地网络出去」——这里的「本地网络」就是 `DIRECT`。\n\n## 直连模式:不是「关掉 Clash」\n\n直连模式下代理页不显示任何列表,只有「直连模式」四个字;全局列表里之前选了什么都不起作用,所有连接都走 `DIRECT`。\n\n但直连不等于没经过 Clash:Clash Verge Rev 自己的说明是「所有流量不经过代理节点,但经过 Clash 内核转发」。内核直连时由它自己解析域名,用 DNS 设置里的 `direct-nameserver`,没填就用 `nameserver` 等设置。所以遇到「直连模式打不开网页、全局选了节点反而能开」,一个可能的原因是内核的 DNS 设置(这是按源码的推断,本站没有复现过这种故障);规则模式里走 `DIRECT` 的网站也会一起受影响。**作者建议**:想确认是不是 Clash Verge Rev 引起的,别拿直连模式当「关代理」来测——把「系统代理」和「虚拟网卡模式」都关掉(或者退出客户端)再试,试完把原来开着的开关打开回去。\n\n## 全局模式不是虚拟网卡模式\n\n「系统代理」和「虚拟网卡模式」决定本机程序的流量怎么进到 Clash Verge Rev,「全局」只决定进来以后从哪出去;两者的区别、要不要开虚拟网卡,见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。上面的步骤把系统代理排在虚拟网卡模式之前,那是作者的安排,官方没有规定开启顺序。开了虚拟网卡模式就不需要再打开系统代理。\n\n打开虚拟网卡模式失败时,按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 排查。选对了出口还是打不开网页,按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 逐项排除。规则模式下国内网站走了代理、或某个网站不走代理,那是规则的事,见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)。\n\n## v2rayN、v2rayNG 的「全局」\n\n这两个客户端里叫「全局」的首先是一套**路由预设**:v2rayN 的「V4-全局(Global)」、v2rayNG 预设规则集里的「全局 (Global)」,内容是阻断 UDP 443 端口(QUIC),局域网直连,其余都走代理。v2rayN 在运行 sing-box 或 mihomo 内核时,「当前代理」标签页里另有一个「规则模式」下拉框,用 Xray 内核时这个标签页不显示(按源码)。下拉框的选项,7.24.9 是规则、全局、直连三项;7.25.4 去掉了这三个固定的中文选项,改为显示内核报上来的模式名,内核没报时是英文的 Rule、Global、Direct,选中的模式也不再存进 v2rayN 的设置(按源码)。怎么切、切完怎么生效,见 `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.2、2.5.5、2.5.6 的源码与官方文档核对(2.5.6 与 2.5.5 相比,本条引用的文件里只有设置文案、内核启动记录与提示处理三个文件有改动,本条依赖的那几段都没改);模式切换、全局列表里 `DIRECT`、连不上的节点、能用的节点三项,以及直连模式下的代理页、托盘菜单、首页卡片文字、「连接」页的链路显示,在 macOS 上的 2.5.2 实机跑过;Linux 虚拟机里的 2.5.6 看过三种模式下的代理页、全局列表默认选中的项、没导入或没激活订阅时的提示,也打开过系统代理开关;其余实测只在命令行 mihomo v1.19.31 上做过。\n\n- 系统代理只在 Linux 版 2.5.6 上打开过(按 `gsettings` 里的地址用 curl 访问,没有用浏览器);Windows、2.5.5 以及 macOS 上的 2.5.6 没有在客户端上实际操作过。Linux 上只看了代理页三种模式、空状态与全局默认选中的项,全局模式下的流量、`REJECT` 和「连接」页的链路都没有在 Linux 上测。\n- 本条自己的实验里,虚拟网卡模式只在 Linux 上看到了要求安装服务的对话框,没有真的打开;点「安装服务」后虚拟网卡模式自动打开,是另一次 Linux 2.5.6 实验看到的,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- 实测用的是本机测试节点,没有测真实出网;Linux 虚拟机里没有托盘和浏览器。\n\n## 步骤\n1. 在左侧「代理」页顶部选「规则」「全局」或「直连」,它们决定进到 Clash Verge Rev 的流量从哪里出去。「规则」按配置里的规则,决定每个连接走哪个节点还是本地网络;「全局」不看规则,让所有流量都走你在代理页列表里选中的**那一项**——可以是一个节点、一个策略组,也可以是 `DIRECT`(直连)或 `REJECT`(拒绝);「直连」让所有流量都从本地网络出去,这时代理页只显示「直连模式」四个字,没有列表。**日常用「规则」就行,这是作者的建议**;官方术语页只给了三种模式的定义。切完以后,已经打开的网页可能还走原来的出口:设置里的「自动关闭连接」默认开着,切模式时会关掉已建立的连接;你关掉过它的话,重开浏览器或重开 Clash Verge Rev 再看。\n 失败时 → escalate\n2. **只有选了「全局」才做这一步**,选「规则」「直连」的直接跳到下一步。全局模式下代理页只剩一张列表,也就是内核里的 `GLOBAL` 组(2.5.2 与 Linux 版 2.5.6 上实测,页面上都不显示这个组名);托盘菜单的「代理」子菜单这时也只列这一组,名字叫 `GLOBAL`。订阅没有自己写 `GLOBAL` 组时,前两项是 `DIRECT`、`REJECT`,后面是订阅里的节点和策略组;订阅自己写了 `GLOBAL` 组的,列表和顺序以订阅为准。**优先点一个节点**;要选策略组,就选用来走代理的那个(名字通常像「节点选择」「PROXY」),别选名字带「直连」「拦截」「国内」的组——这类组当前选中的如果是 `DIRECT` 或 `REJECT`,效果就和直接选它们一样。**别停在 `DIRECT` 或 `REJECT`**:`DIRECT` 等于全部直连、一条也不经过节点,第一次用时选中的通常就是它;`REJECT` 让所有网站都打不开。列表里没有单个节点、只有 `DIRECT`、`REJECT` 和几个策略组,可能只是订阅把节点放在了「代理集合」里(内核自动生成的 `GLOBAL` 不直接列这些节点),选那个走代理的策略组就行;连策略组都没有,先到「订阅」页确认这份订阅是当前选中的那张卡片(刚导入的订阅不一定自动成为当前订阅:已经有正在用的订阅时,新导入的要自己点一下卡片;一份都没选中时,2.5.5、2.5.6 的代理页不列任何东西,只显示「尚未激活订阅」和「前往订阅」按钮——Linux 版 2.5.6 上看到过,但那是改数据文件造出来的状态:按源码,第一次导入会自动启用,删掉正在用的订阅也会自动改选下一份,界面里一般碰不到;2.5.2 没有这段提示),已经选中了还是这样:先想想启动、更新订阅或切换订阅时有没有弹出带 `proxy [名称] not found`、「配置校验失败」或「订阅已保存,但未能确认已应用到内核」的提示(按源码)——规则引用了订阅里不存在的组名时,重启后会退回一份没有任何节点的默认配置、流量全部直连(实测),有这类提示就按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) 查,**不管你自己加没加过规则**(订阅自己引用了不存在的名字也会这样);导入或更新时弹过失败提示的,按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 看那条提示;都不是的,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查订阅内容。\n 失败时 → escalate\n3. 在「设置」页打开「系统代理」。浏览器这类遵守系统代理设置的程序会经过代理;它代理不了 UDP 流量(比如游戏数据包),也不是所有程序都遵守它。\n 失败时 → escalate\n4. 要接管不遵守系统代理的程序(比如游戏、命令行)时,在「设置」页打开「虚拟网卡模式」,开了它就不需要再靠系统代理。开关点不动、或者一点就提示需要服务或管理员权限,按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 排查。用不到可以跳过这一步。**「全局」管不到这件事**:只开「全局」、不开虚拟网卡模式时,不遵守系统代理的程序照样不经过 Clash Verge Rev;两者的区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)。\n 失败时 → 取证 tun-switch-clickable(见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working))\n\n## 验证\n- **proxy-site-opens**(人):先看「代理」页顶部选的是哪种模式,按它验收。**选「规则」或「全局」的**:「全局」列表里选中的要是一个节点或走代理的那个策略组(不是 `DIRECT`、`REJECT`);然后打开一个平时打不开、按你的配置应该走节点的网页。**选「直连」的**:打开一个不开代理也能打开的网页(比如国内网站)。开了「虚拟网卡模式」的,先关掉「系统代理」再试——这是为了确认虚拟网卡自己能接管流量,否则网页能打开可能只是靠系统代理。然后打开「连接」页找到这个网页的连接,看「链路」列:最后一项是节点名(比如 `GLOBAL / 节点名`)就是走了节点,最后一项是 `DIRECT`(比如 `GLOBAL / DIRECT`;直连模式下只有 `DIRECT`)就是没走。\n 预期:网页正常显示,「链路」列和你选的模式对得上:选「规则」「全局」的,最后一项是节点名;选「直连」的,是 `DIRECT`(实测,直连模式下「连接」页显示的就是 `DIRECT`)。选「规则」「全局」而最后一项是 `DIRECT`,说明这个网页还没走节点:「全局」的,回到在全局列表里选一项的那一步,点一个节点再试;「规则」的,按 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute) 查它为什么被分到了直连。「全局」选的是 `REJECT` 或一个连不上的节点时,所有网页都打不开,在列表里换一项再试。换了节点还是打不开,按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 逐项排查。开了「虚拟网卡模式」、为了验收关掉了「系统代理」的:上面哪一项没对上(网页打不开、找不到连接、链路和模式对不上),都先把「系统代理」恢复原样再往下查;网页打不开的,按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 查。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式;规则/ 全局 / 直连模式(全局:所有流量均从手工选定的代理节点/本地网络出去);服务模式)\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(打开代理(或开启 Tun 模式))\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(global 全局代理,需要在 GLOBAL 策略组选择代理/策略);profile / store-selected(储存 API 对策略组的选择,以供下次启动时使用))\n- metacubex-wiki-proxy-groups:https://wiki.metacubex.one/config/proxy-groups/(default-selected(该项为空或者设置的节点名不存在时,默认选择组中第一个节点))\n- metacubex-wiki-dns:https://wiki.metacubex.one/config/dns/(direct-nameserver(用于 direct 出口域名解析,不填则遵循 nameserver-policy、nameserver 和 fallback))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go L401-L409(resolveMetadata:direct 模式用 DIRECT、global 模式用 GLOBAL、只有 rule 模式才匹配规则);config/config.go L897(列表先放 DIRECT、REJECT)、L900-L910(再放 proxies 下的节点,proxy-providers 里的节点不进这张列表)、L920-L923(再放各策略组,配置里有 GLOBAL 组时记下)、L976-L989(配置里没有 GLOBAL 组时自动生成,不带 default-selected)、L580(store-selected 默认 true);adapter/outboundgroup/selector.go L103-L112(没选过或选中的名字不在组里时取第一项);hub/executor/executor.go L439-L467(启动或重载时把缓存里按组名记下的选择原样写回各选择组);adapter/outbound/direct.go L24-L35 与 hub/executor/executor.go L294-L299(DIRECT 出站用 DirectHostResolver 解析域名)。Clash Verge Rev 2.5.2 内置的是 v1.19.29(tag 指向 commit e26714a):与它逐文件对比过,tunnel.go、selector.go、direct.go 相同,config.go 的 parseProxies 函数相同、store-selected 默认同为 true,executor.go 只差一处 NTP 初始化顺序)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src/components/proxy/use-render-list.ts L261-L266(只有 rule、script 模式列出订阅里的各组,其余模式只列 GLOBAL);src/components/proxy/proxy-groups.tsx L626-L627(直连模式只显示「直连模式」);src/locales/zh/home.json L151-L152(首页模式卡片的全局、直连说明);src/locales/zh/proxies.json(规则、全局、直连、直连模式);src-tauri/src/core/tray/mod.rs L472-L475(全局模式下托盘只列 GLOBAL,其余模式列除 GLOBAL 外的各组);src-tauri/src/feat/clash.rs L81-L108(change_clash_mode,L102-L104 打开「自动关闭连接」时切模式后关闭已建立的连接);src-tauri/src/config/verge.rs L374(auto_close_connection 默认 Some(true));src/locales/zh/settings.json L410、L421(自动关闭连接:当代理组选中节点或代理模式变动时,关闭已建立的连接);src/hooks/use-record-selection.ts(每次组选择都记进当前订阅);src-tauri/src/config/profiles.rs L498 起的选择对账函数(只重新下发组里仍存在的记录,L562 是唯一的下发点)与 L993 restore_selected_nodes(由 src-tauri/src/core/manager/state.rs 在内核启动后调用))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)逐文件对比:本条引用的 src/components/proxy/ 整个目录、src/locales/zh/home.json 与 proxies.json、src-tauri/src/core/tray/mod.rs、feat/clash.rs、config/verge.rs、config/profiles.rs、src/hooks/use-record-selection.ts 都没改:use-render-list.ts L261-L266 只有 rule、script 模式列出订阅里的各组,L351-L352 其余模式去掉组标题(页面上不显示 GLOBAL 这个组名);proxy-groups.tsx L626-L627(直连模式只显示「直连模式」);proxy-empty-state-model.ts L33-L60(直连模式最先判断,然后在渲染列表之前判断没有订阅、有订阅但没激活,全局模式也一样);src/locales/zh/proxies.json L49、L53、L65(尚未导入订阅、尚未激活订阅、前往订阅);src-tauri/src/config/profiles.rs L202-L204(没有正在使用的配置时,新导入的远程或本地配置直接设为当前配置)、L361-L369(删掉正在用的订阅时自动改选剩下的第一份远程或本地配置);src/locales/zh/settings.json 只新增了服务与内核启动相关的提示,L410、L421(自动关闭连接)不变;src-tauri/src/core/manager/state.rs 只改了启动 Sidecar 时的错误记录;src/pages/_layout/utils/notification-handlers.ts 有改动(新增内核启动失败与服务相关的提示),本条依赖的启动校验失败提示移到 L191-L192,内容未变)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/pages/proxies.tsx(规则、全局、直连三个按钮);src/components/proxy/use-render-list.ts(同 2.5.5 的分支);src/components/proxy/proxy-groups.tsx L608-L609(直连模式只显示「直连模式」);src/locales/zh/home.json L130-L131;src/locales/zh/settings.json L34(tunMode 提示:TUN(虚拟网卡)模式接管系统所有流量,启用时无须打开系统代理)、L399、L410(自动关闭连接);src-tauri/src/config/verge.rs L431(auto_close_connection 默认 Some(true));src-tauri/src/feat/clash.rs L86-L113(change_clash_mode 与自动关闭连接);src/hooks/use-proxy-selection.ts L68-L86(在代理页点选任一组,包括全局列表,都把「组名 → 选中项」记进当前订阅的 selected)、L102-L107(开了自动关闭连接时,换选项后关闭经过旧选项的连接);src-tauri/src/cmd/profile.rs L229-L234(切换当前订阅成功后才调用 activate_selected_nodes);src-tauri/src/feat/profile.rs L189-L228(更新订阅只重载内核配置,不调用它);src-tauri/src/config/profiles.rs L659-L752(选择对账函数:记下的项在组里仍存在才重新下发,L723 是唯一的下发点;已确认不存在时删掉记录或改记为组当前的选中项,不会改选别的节点);src/components/connection/connection-row-view.ts L42-L49(「连接」页链路列把内核的 chains 倒序、用 / 连接,最后一项是实际出口);src/hooks/use-system-state.ts、src/components/shared/proxy-control-switches.tsx、src/locales/zh/proxies.json(代理集合;没有「尚未导入订阅」「尚未激活订阅」「前往订阅」这类空状态文案,src/components/proxy/ 下也没有 proxy-empty-state-model.ts);src-tauri/src/config/config.rs L133 与 L162(启动校验失败退回默认配置)、src/pages/_layout/utils/notification-handlers.ts L39-L40 与 src/locales/zh/shared.json L99-L100(启动时弹出的校验失败提示))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs L696(showClashUI = IsRunningCore(sing_box));ServiceLib/Manager/AppManager.cs L39-L50(运行 sing-box 或 mihomo 内核时为真);v2rayN.Desktop/Views/MainWindow.axaml.cs L419-L421(ShowClashUI 控制「当前代理」标签页是否显示);v2rayN.Desktop/Views/ClashProxiesView.axaml L30-L38(「规则模式」下拉框只有规则、全局、直连三项);ServiceLib/Resx/ResUI.zh-Hans.resx L1203-L1219(当前代理、规则模式、规则、全局、直连、随原配置);ServiceLib/Handler/ConfigHandler.cs L2653(V4-全局(Global) 预设);ServiceLib/Sample/custom_routing_global(阻断udp443、绕过局域网IP、绕过局域网域名、最终代理))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Manager/AppManager.cs L38-L49 与 ServiceLib/ViewModels/MainWindowViewModel.cs L724(运行 sing-box 或 mihomo 内核时才显示「当前代理」);v2rayN.Desktop/Views/ClashProxiesView.axaml L31-L40 与 v2rayN/Views/ClashProxiesView.xaml L35-L45(「规则模式」下拉框不再有固定选项);v2rayN.Desktop/Views/ClashProxiesView.axaml.cs L25-L26 与 v2rayN/Views/ClashProxiesView.xaml.cs L27-L28(选项绑定 ClashModes);ServiceLib/ViewModels/ClashProxiesViewModel.cs L35(初始选中 Rule)、L71(ClashModes 缺省为 ERuleMode 的名字)、L147-L150(选中后只通过接口告诉内核,不写设置)、L313-L327(用内核接口 /configs 报的模式列表与当前模式替换);ServiceLib/Enums/ERuleMode.cs(只剩 Rule、Global、Direct);ServiceLib/Manager/ClashApiManager.cs L126-L152(读 mode-list 或 modes、mode))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/enums/RoutingType.kt L3-L8(GLOBAL 预设对应 custom_routing_global);app/src/main/res/values-zh-rCN/strings.xml L445(全局 (Global));app/src/main/assets/custom_routing_global(阻断udp443、绕过局域网IP、绕过局域网域名、最终代理))\n- exp-proxy-modes-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-proxy-modes-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-add-custom-rule-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- metacubex-wiki-load-balance:https://wiki.metacubex.one/config/proxy-groups/load-balance/(strategy:round-robin 将会把所有的请求分配给策略组内不同的代理节点;consistent-hashing、sticky-sessions 把相同目标地址(及来源地址)的请求分配给同一个代理节点)\n\n最后修订:dc501fa 2026-10-02\n"},"proxy-protocols":{"id":"proxy-protocols","type":"concept","title":"vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧","aliases":["代理协议","vmess vless trojan 区别","Shadowsocks ss 协议","ssr ShadowsocksR 协议","hysteria2 hy2 协议","tuic 协议","anytls 协议","vless reality 协议","reality tls ws grpc 传输","xhttp 传输","unsupport proxy type"],"primary_topic":"protocols","topics":["protocols","basics"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-09-30","freshness":"current","markdown":"# vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧\n\n主题:`基础概念` › `协议`\n适用:any / any / any\n最后验证:2026-09-30\n标记:信息说明\n\n> vmess、vless、trojan、ss(Shadowsocks)、hysteria2(hy2)、tuic、anytls 是节点和服务器之间传数据的约定,由服务方定、写在订阅里,不用自己选。要看的是客户端里的内核认不认:按最新正式版源码,mihomo 都认,Xray 不认 tuic、anytls、ssr,sing-box 不认 ssr。不认时节点用不了或报错,同一个订阅换个客户端结果可能不同。reality、tls、ws、grpc 是协议之上的附加方式,同样由订阅决定。\n\nvmess、vless、trojan、ss(Shadowsocks)、hysteria2(hy2)、tuic、anytls 都是**节点协议**:客户端和服务方的服务器之间怎么传数据的约定。用哪种由服务方定好、写在订阅里,客户端照着连,**你不用自己选,也没法在客户端里换成别的**。\n\n**要关心的是客户端里的内核认不认这个协议。** 内核不认,这个节点就用不了,常见的是导入或启动时报错;v2rayN 这种能用两个内核的软件会替你改用认得的那个。按三个内核最新正式版的源码:\n\n- **mihomo**(Clash Verge Rev、FlClash 等 Clash 系客户端的内核):上面几种都认。\n- **Xray**(v2rayN 默认用它):不认 tuic、anytls,也不认老的 ssr;v2rayN 会把 tuic、anytls 节点交给 sing-box。\n- **sing-box**:不认 ssr。\n\n所以同一个订阅换个客户端,可能有节点用不了;各客户端用哪个内核见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)。reality、tls、ws、grpc 是加在协议上的附加方式,同样由订阅决定。\n\n## 常见的几种协议\n\n分享链接的开头(vmess://、ss://、hy2:// 这类)、Clash 配置里的 `type`、v2rayN 节点列表的「类型」列,写的都是节点用的协议。只说你需要知道的:\n\n- **ss**:Shadowsocks,节点里带加密方式和密码;加密方式以 `2022-blake3-` 开头的是新版 Shadowsocks 2022。\n- **vmess**:看设备的实际时间(与时区无关),时间不准会连不上,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n- **vless**:和 vmess 一样用 UUID 认证,但不看设备时间。\n- **trojan**:用密码认证,要搭配 TLS 使用。\n- **hysteria2(hy2)**、**tuic**:基于 QUIC,mihomo 文档把 TUIC 归为基于 UDP 的协议。所在网络限制 UDP 时,这类节点可能不通、别的协议却正常(作者据协议类型给的判断,没有实测)。\n- **anytls**:较新的协议,旧内核不认,比如 sing-box 1.12.0 起才有。\n- **ssr(ShadowsocksR)**:老协议。Xray 不认,sing-box 1.6.0 起移除,v2rayN 也没有这一类。\n\n**客户端设置里的 HTTP、SOCKS5 端口,说的是本机入口,不是订阅节点的协议。** 这些端口(还有混合端口)是内核在你这台设备上开的入口,给浏览器这类程序连,和订阅里的协议是两回事;让别的设备也走它见 `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)。订阅里也可能有 socks5、http 类型的节点(mihomo 认这两类),这两种本身不加密传输。\n\n## 三个内核各认哪些\n\n按 2026-09-30 GitHub 上各自最新正式版的官方源码核对:mihomo v1.19.31、sing-box v1.14.2、Xray v26.3.27(Xray 之后的版本都是预发布,另核了 v26.7.28,协议表相同),并对照了三家的官方文档。\n\n- mihomo:ss、vmess、vless、trojan、hysteria2、tuic、anytls、ssr 都认。\n- Xray:认 ss、vmess、vless、trojan、hysteria2;不认 tuic、anytls、ssr。\n- sing-box:认 ss、vmess、vless、trojan、hysteria2、tuic、anytls;不认 ssr。\n\n| 协议 | mihomo v1.19.31 | Xray v26.3.27 | sing-box v1.14.2 |\n|---|---|---|---|\n| ss | 认 | 认 | 认 |\n| vmess | 认 | 认 | 认 |\n| vless | 认 | 认 | 认 |\n| trojan | 认 | 认 | 认 |\n| hysteria2(hy2) | 认 | 认 | 认 |\n| tuic | 认 | 不认 | 认 |\n| anytls | 认 | 不认 | 认(1.12.0 起) |\n| ssr | 认 | 不认 | 不认(1.6.0 起移除) |\n\n**内核不认会怎样**(按源码):mihomo 报 `unsupport proxy type: <类型>`,而且订阅里只要有一个节点它不认,整份配置(或整个代理集合)都加载失败,不是只少这一个节点;sing-box 报 `unknown outbound type: <类型>`,Xray 同样拒绝加载整份配置。hysteria2、tuic 还要内核编译时带上 QUIC:sing-box 官方发布的程序和官方客户端都带,别人另行编译的可能没带,会报 `QUIC is not included in this build`。\n\n**这对你意味着**:客户端里带的内核常常比上面这几版旧,较新的协议旧内核可能不认。Clash Verge Rev 单独升级内核见 `Clash Verge Rev 怎么单独升级内核`(见 upgrade-core)。v2rayNG 用的也是 Xray,Karing 用的是改过的 sing-box(见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)),它们遇到上面这些协议怎么表现,本条没有核实。\n\n## 换客户端,和 v2rayN 怎么分配内核\n\n同一个订阅换个客户端能不能用,看两件事:订阅的格式新客户端认不认(见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)),和新客户端的内核认不认订阅里的协议(上一节)。\n\nv2rayN 7.24.9 的普通节点可以用 Xray 或 sing-box,按节点的协议分配:\n\n- 节点没指定内核时用 Xray;tuic、anytls、naive 节点导入时直接定为 sing-box。\n- 协议和所选内核对不上时,v2rayN 在启动内核之前就拦下,提示「核心 'Xray' 不支持协议 '…'」;用 xhttp、kcp 传输的节点不能改用 sing-box,提示「核心 'sing_box' 不支持网络类型 '…'」。\n\n**这对你意味着**:在 v2rayN 里一般不用自己挑内核;看到这两句,是节点的协议或传输方式和所选内核对不上,不是节点坏了,见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)。\n\n## reality、tls、ws、grpc 这些词\n\n它们不是另外的协议,而是加在协议上的附加方式:tls、reality 属于加密这一层,ws、grpc、xhttp 是传输方式。在 Clash 配置里,它们是同一个节点条目里 `type` 之外另写的几项。和协议一样由订阅决定,不用自己选。\n\n内核认不认也可能不同:按源码,三个内核的官方发布版都认 reality;xhttp 传输 Xray 认,mihomo 在 vless 节点上认,sing-box 1.14.2 不认,它的传输只有 HTTP、WebSocket、QUIC、gRPC、HTTPUpgrade 五种。**这对你意味着**:用 xhttp 的节点,换到 sing-box 内核也用不了。\n\n## 这些结论是怎么核对的\n\n按 mihomo v1.19.31、Xray v26.3.27 与 v26.7.28、sing-box v1.14.2、v2rayN 7.24.9 钉到 commit 的官方源码,以及 mihomo、Xray 官方文档仓库和 sing-box 仓库里的文档核对。\n\n- 没有在客户端或内核上实际导入这些协议的节点。「认」只说明内核的配置里有这一类,不保证每种写法都连得上。\n- 客户端里带的内核不一定是上面这几版;客户端导入时怎么处理不认的节点,只核了 v2rayN。\n- 表里只列了常见的几种;三个内核各自还认一些别的协议(如 wireguard、snell、ssh),这里不展开。\n\n\n## 相关条目\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/parser.go L29-L227(ParseProxy 按 type 分派:L30 ss、L37 ssr、L44 socks5、L51 http、L58 vmess、L65 vless、L79 trojan、L93 hysteria2、L107 tuic、L170 anytls;L227 其它类型报 unsupport proxy type);config/config.go L901-L903(proxies 里任一节点解析失败,整份配置报 proxy <序号>: … 并失败);adapter/provider/provider.go L449-L452(代理集合里任一节点解析失败,整个集合报错);adapter/outbound/vless.go L72、L77、L256 与 trojan.go L59、L64(network 传输与 reality-opts 是节点条目上的字段,vless 的 network 可取 xhttp);config/config.go L403-L407(port、socks-port、mixed-port 是本机监听端口)。GitHub Releases 上 v1.19.31 为最新正式版(2026-09-30 查))\n- metacubex-docs-repo-517f4c2:https://github.com/MetaCubeX/Meta-Docs/tree/517f4c2303aae17eee681129bde6422e9f7a4e67(docs/config/proxies/ 目录(ss、ssr、vmess、vless、trojan、hysteria2、tuic、anytls 各有一页);docs/config/proxies/index.md L62-L67(udp 选项在 TUIC 等基于 UDP 的协议中默认开启);docs/config/proxies/transport.md L1-L10、L31-L37(传输层配置:同一个节点条目里 type 之外另写 network: http / grpc / ws 等);docs/config/proxies/tls.md L1-L21(TLS 配置:tls、reality-opts 等写在节点条目上);docs/config/inbound/port.md L5-L24(http(s) 代理端口、socks 端口与混合端口,混合端口同时支持 HTTP(S) 和 SOCKS5,给支持 HTTP 或 SOCKS 代理的程序连接))\n- xray-core-src-26-3-27:https://github.com/XTLS/Xray-core/tree/d2758a023cd7f4174a5a5fa4ff66e487d4342ba0(infra/conf/xray.go L40-L55(出站协议表:block/blackhole、loopback、direct/freedom、http、shadowsocks、socks、vless、vmess、trojan、hysteria、dns、wireguard,没有 tuic、anytls、shadowsocksr);infra/conf/hysteria.go L19-L21(hysteria 出站只收 version 2)。GitHub Releases 上标为 Latest 的正式版,之后发布的 v26.4.13 到 v26.9.30 都是预发布(2026-09-30 查))\n- xray-core-src-26-7-28:https://github.com/XTLS/Xray-core/tree/5ca6f4b7d4dc20a881d4330e498892697627ec0c(预发布版。infra/conf/xray.go L37-L52(出站协议表与 v26.3.27 相同);infra/conf/hysteria.go L20-L22(只收 version 2);infra/conf/loader.go L26 与 xray.go L357-L359(不认的协议报 unknown config id,整份配置加载失败);infra/conf/transport_internet.go L18-L38(传输:raw/tcp、xhttp、kcp、grpc、ws、httpupgrade、hysteria)、L99-L100(reality))\n- xray-docs-next-5ee0811:https://github.com/XTLS/Xray-docs-next/tree/5ee08112dd7935dd3f97d9de3b9e2751d5f54c2c(docs/config/outbounds/ 目录(blackhole、dns、freedom、http、hysteria、loopback、shadowsocks、socks、trojan、vless、vmess、wireguard);vmess.md L3、L6(加密传输协议,依赖系统时间,时区无关);vless.md L3、L5(不依赖系统时间,认证方式同样为 UUID);trojan.md L29、L40-L42(必须配合 TLS 使用,密码必填);shadowsocks.md L8-L11、L18、L61-L65(推荐 2022-blake3- 开头的加密方式即 Shadowsocks 2022;加密方式与密码必填);hysteria.md L5(代理控制协议加调优的 QUIC 传输)、L34(版本必须为 2);socks.md L6、http.md L6(没有对传输加密))\n- singbox-src-v1-14-2:https://github.com/SagerNet/sing-box/tree/af6e64c3b69e6132ebaee0e1a3d24e93903f6709(include/registry.go L52-L78(socks、http、mixed 入站:本机入口)、L80-L108(出站:socks、http、shadowsocks、snell、vmess、trojan、naive、tor、ssh、shadowtls、vless、anytls,另经 registerQUICOutbounds 注册 hysteria、tuic、hysteria2)、L176-L179(shadowsocksr 报 deprecated and removed in sing-box 1.6.0);include/quic.go L1、L24-L28 与 constant/err.go L7(hysteria、tuic、hysteria2 要带 with_quic 编译,否则报 QUIC is not included in this build);release/ 目录下三份默认构建标签文件(都含 with_quic、with_utls),.github/workflows/build.yml L226-L228、L526-L528、L605 用它们构建发布版,cmd/internal/build_libbox/main.go L66(官方客户端用的 libbox 同样带 with_quic、with_utls);common/tls/reality_client.go L1(reality 客户端随 with_utls 编译);option/outbound.go L47-L49(不认的出站类型报 unknown outbound type);constant/v2ray.go L3-L9(传输只有 http、ws、quic、grpc、httpupgrade);docs/configuration/outbound/index.zh.md L18-L41(出站类型表);docs/configuration/outbound/anytls.zh.md L5(自 sing-box 1.12.0 起);docs/configuration/shared/v2ray-transport.zh.md L11-L17(可用的传输协议五种)。GitHub Releases 上 v1.14.2 为最新正式版(2026-09-30 查))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Global.cs L213、L227-L239(分享链接前缀 vmess://、ss://、vless://、trojan://、hysteria2:// 与 hy2://、tuic://、anytls:// 等)、L349-L353(普通节点可选内核 Xray、sing_box)、L355-L365(Xray 认 VMess、VLESS、Shadowsocks、Trojan、Hysteria2、WireGuard、SOCKS、HTTP)、L367-L380(sing-box 另认 TUIC、Anytls、Naive);v2rayN/ServiceLib/Enums/EConfigType.cs L3-L20(没有 ShadowsocksR 这一类);v2rayN/ServiceLib/Manager/AppManager.cs L666-L675(节点没定内核时默认 Xray);v2rayN/ServiceLib/Handler/ConfigHandler.cs L850-L853、L946-L949、L974-L977(TUIC、AnyTLS、Naive 节点导入时定为 sing_box);v2rayN/ServiceLib/Handler/Builder/NodeValidator.cs L16-L17(sing-box 不支持 kcp、xhttp 传输)、L58-L79(协议或传输与所选内核对不上时启动前报错);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L186-L187(「类型」)、L1546(核心 '{0}' 不支持网络类型 '{1}')、L1552(核心 '{0}' 不支持协议 '{1}');v2rayN/v2rayN.Desktop/Views/ProfilesView.axaml L213 与 v2rayN/v2rayN/Views/ProfilesView.xaml L286(节点列表的「类型」列))\n\n最后修订:91ba4ac 2026-09-30\n"},"release-assets-which-file":{"id":"release-assets-which-file","type":"reference","title":"安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照","aliases":["安装包选哪一个文件","电脑版安装包选择","手机版安装包选择","arm64-v8a armeabi-v7a universal 区别","armeabi-v7a 32 位","32 位安装包","32 位的包","v2rayNG F-Droid 版 安装包","v2rayNG universal 包","fixed_webview2 内置 WebView2 安装包 普通版","WebView2 装不上","Clash Verge Rev 不再支持 Win7","Clash Verge Rev 支持的系统 能装 不支持","Win7 还能用的安装包","旧系统 老系统 还能用的安装包","Clash Party win7 包","Clash Party catalina 包 macOS 11","Clash Verge 32 位","Mac M1 aarch64 x64 dmg","Apple 芯片 Intel 芯片安装包","SFM Apple Intel Universal pkg","sing-box SFA SFW SFL 安装包","sing-box 安卓 5 安卓 6","Clash Meta for Android universal 包","Karing 安装包 选哪个文件","安卓系统版本要求","安卓 7.0 以上才能装","APK 装不上 NO_MATCHING_ABIS","APK 装不上 INSTALL_FAILED_NO_MATCHING_ABIS","应用未安装 应用与您的手机不兼容","Ubuntu 24.04 libwebkit2gtk-4.0","Depends: libwebkit2gtk-4.1-0 but it is not installable","libc6 (>= 2.39) 依赖不满足","v2rayN deb 装不上","v2rayN Linux zip GLIBC_2.38 GLIBC_ABI_DT_RELR","v2rayN 便携版 zip","Clash Party portable 便携版","portable setup 区别","mihomo-party clash-party 两套文件","FlClash 便携版 配置存放位置"],"primary_topic":"install-and-download","topics":["install-and-download","clients","reference"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","flclash","v2rayn","v2rayng","clash-meta-android","karing","sing-box","shadowrocket"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照\n\n主题:`客户端` › `下载、安装与系统要求`\n适用:clash-verge-rev/clash-party/flclash/v2rayn/v2rayng/clash-meta-android/karing/sing-box/shadowrocket / windows/macos/linux/android/ios / any\n最后验证:2026-09-27\n标记:信息说明\n\n**下载时多数人这样选**:Windows 电脑下带 x64(或 amd64、64)的,有 setup.exe 就下它;Apple 芯片(M 系列)的 Mac 下带 aarch64 或 arm64 的,Intel 芯片的下带 x64 或 amd64 的;安卓手机下带 arm64-v8a 的 apk;iPhone / iPad 从 App Store 装(例外见文末)。一般下安装版,想放 U 盘才用便携版。.sig、.sha256、SHA256SUMS 不是安装包,核对下载的文件时才用得到,见 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)。\n\n常见的坑(详情在下面各节):\n\n- **Win7**:Clash Verge Rev 已不支持;Clash Party 有 win7 包,但默认带的不是 Win7 专用的 mihomo,本站没测;v2rayN、sing-box 官方写 Windows 10 以上。\n- **安卓提示「应用未安装:应用与您的手机不兼容」**:先看安卓系统够不够新,再换架构;v2rayNG 被小米这类系统拦下时试 fdroid 包;安卓 5、6 用 Clash Meta for Android 或 sing-box 的 legacy-android-5 包。\n- **便携版**:v2rayN 的 zip、Clash Party 的 portable.7z 数据跟着程序走;FlClash 的 zip 只是免安装;Clash Verge Rev 没有便携版。\n- **Mac 老系统**:Clash Party 在 macOS 10.15、11 上用 catalina 包;Karing 的 Mac 包两种芯片通用。\n- **Linux 的 deb 装不上**:v2rayN 7.24.9 要 Ubuntu 24.04 / Debian 13;Clash Verge Rev 2.5.5 从 22.04 起能装(容器里实测 arm64 包,只测到安装这一步)。\n\n每个客户端有哪些文件,页面最后有逐行对照的表,文件名里的「版本号」换成你要下的那个版本。\n\n下好之后:Clash Verge Rev 看 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup),v2rayN 看 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run),v2rayNG 看 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run),安卓 FlClash 看 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run),Clash Party 看 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run),Clash Meta for Android 看 `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run),安卓版 Karing 看 `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run);sing-box、桌面版 FlClash 和桌面版 Karing 本站还没有首次使用条目。各客户端从哪下载、吃哪种订阅见 `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)。\n\n## 先弄清自己的系统和芯片\n\n- **Mac**:点屏幕左上角的苹果菜单 →「关于本机」,写「芯片 Apple M…」的是 Apple 芯片,写「处理器 Intel…」的是 Intel。\n- **Windows**:「设置 → 系统 → 系统信息」(有的版本叫「关于」)里看「系统类型」:写 64 位、基于 x64 的下 x64;写基于 ARM 的下 arm64;写 32 位操作系统的才下 32 位包。不清楚就下 x64(Clash Verge Rev 官方说法)。\n- **安卓**:「设置 → 关于手机」里看 Android 版本。芯片一般不用查:近几年的手机下 arm64-v8a;armeabi-v7a 是给老旧的 32 位手机和电视盒子的(v2rayNG 官方 wiki,见下面安卓一节)。\n\n以上系统界面的位置是本站按常见版本写的,没有逐版核对(作者建议)。\n\n**文件名里的芯片名**:x64 / amd64 / x86_64 是普通 Intel、AMD 64 位电脑;arm64 / aarch64 是 Apple 芯片的 Mac 和 ARM 电脑,安卓包写作 arm64-v8a;armeabi-v7a / armhf 是 32 位 ARM(老手机、电视盒子);Windows 包名里的 ia32 / x86 / 86 是 32 位 Windows;安卓包名里的 x86 / x86_64 是 x86 芯片的设备或模拟器;universal 是几种芯片合在一个包里。\n\n## 下错了会怎样\n\n- **安卓装错架构**:系统的安装确认框照常弹出,上面不提架构;点了「安装」才失败,模拟器自带的安装器显示「应用未安装:应用与您的手机不兼容。」(英文 App not installed as app isn't compatible with your phone.),用 adb 命令装会看到 `INSTALL_FAILED_NO_MATCHING_ABIS` 报错。但这句提示不专属于架构:按安卓系统源码,系统版本太低和架构不符被归成同一类「不兼容」失败,很可能显示同一句话(版本太低的情况本站没有测)。**这对你意味着**:看到「不兼容」,先对照下一条确认安卓版本够不够,不要反复重下同一个文件;版本够、arm64-v8a 仍提示不兼容的,多半是 32 位的老设备,可以试 armeabi-v7a(作者建议)。只支持 64 位的新手机装 32 位包多半同样失败(本站没有测),这时架构不是原因,看下一句。换了架构还是装不上、手机又是小米这类厂商系统的,v2rayNG 可以试同架构、带 fdroid 的包(见下面安卓一节)。厂商手机用自己的安装器,提示文字可能不同(本站没有在这些手机上试过)。\n- **安卓版本太低**:v2rayNG 2.2.6、FlClash 0.8.98、sing-box 普通包都要 Android 7.0 及以上,Karing 要 8.0 及以上。低于要求时装不上,具体提示本站没有测。**安卓 5、6 的出路**:Clash Meta for Android 5.0 就能装(官方建议 7.0),sing-box 有专门的 `legacy-android-5` 包。\n- **Windows 下错架构**:Clash Verge Rev 官方常见问题说,弹出「此应用无法在你的电脑上运行」基本是下错了架构,大部分电脑该下 x64 而不是 arm64。\n- **Mac 下错芯片**:装错之后打开会怎样,本站没有测。下载前先按上面的办法确认芯片,下错了就删掉重下另一个。本站用工具读过包里的程序:Clash Verge Rev 的 aarch64 包全是 arm64、x64 包全是 x86_64,FlClash 的 arm64 包、v2rayN 的 arm64 包主程序和内核只有 arm64。拿不准的话,Karing 只发一个包,官方写 Intel 和 Apple 芯片都支持(本站只读了包内架构,没有运行;包里有一个库只有 Intel 版,它在 Apple 芯片上会不会被用到没有查);sing-box 的 SFM 另有 Universal 包。\n- **Linux 依赖不满足**:apt 会列出一串 `Depends: … but it is not installable` 或 `… but 2.35-… is to be installed`,最后报 `Unable to correct problems, you have held broken packages.`,什么都不装。本站只在英文环境里测过,中文系统上这几句可能显示成中文。原因和对应的系统版本见下面 Linux 一节。\n\n## Windows:Win7、32 位、WebView2、便携版\n\n- **Clash Verge Rev**:官方安装页和常见问题都写明现在的版本**不再支持 Windows 7**,建议升级到 Win10 / 11。WebView2 是 Windows 上用来显示 Clash Verge Rev 界面的系统组件,被卸载或禁用时程序能启动、界面却出不来。带 `fixed_webview2` 的包把整个 WebView2 打进了安装包(约 250 MB),普通包里只带一个引导安装器,电脑上缺 WebView2 时由它补装(按源码的安装配置);官方说 fixed_webview2 版只在装不上 WebView2、或者普通版打不开面板时用。官方说不再支持 Win7 时没有给 fixed_webview2 版开例外:它解决的是缺 WebView2 的问题,不是系统版本的问题。README 写支持 x86,但 2.5.5、2.5.6 的 Release 里都没有 32 位 Windows 包;也没有便携版,官方安装页把「便携版」需求指向社区维护的 Scoop 分发,并说明不为这类下游渠道提供支持。要用服务模式(开虚拟网卡的一种方式;官方常见问题说,不装服务、直接以管理员身份运行也能开,Windows 上实测能开)的注意:服务会检查内核文件和上面各级文件夹的所有者与权限,官方常见问题建议装在下载目录、桌面、用户目录或自行解压目录里的,改用官方安装包装到默认的 `C:\\Program Files\\Clash Verge`。不过 Windows 上实测 2.5.6 装在 `%USERPROFILE%\\Downloads\\CVR` 再装服务,没有出现目录安全警告,没见到警告就不必为此重装。照做前知道两点:一是手动运行安装器重装时,装的版本和已装的不同,安装器默认选「安装前卸载」(同一版本默认不卸载),会先运行旧版的卸载程序,系统服务随之被删,装完服务就不在了,开着的虚拟网卡模式会被悄悄关掉;原来用服务模式的,装完重新装一次服务、再打开虚拟网卡模式,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。二是安装包每次运行都会把自带内核带着校验值复制到 `C:\\ProgramData\\clash-verge-service\\cores`(不论装不装服务),服务运行和检查的都是那一份,只换安装目录多半解决不了。别的办法见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)(Win7、WebView2、32 位按官方文档与源码;安装器删服务、装在下载目录不警告、服务用 ProgramData 里的副本是 Windows 上实测)。\n- **Win7 能用什么**:Clash Party 有一组 `clash-party-win7-*` 包(64 位和 32 位,各有安装版和便携版),发布说明把它们列在「Windows7/8」下,按构建脚本是用 Electron 22 打的——Electron 是它的界面框架,官方写明从 23 起要 Windows 10。**但按构建脚本,这组包默认带的 mihomo 内核是普通版,不是给老 Windows 的 go120 版,只有 Smart 内核用的是 go120 版**;Win7 上默认内核能不能启动,本站没有 Windows 7 环境,没有测。sing-box 的图形客户端 SFW 要 Windows 10 以上,Release 里给 Win7 的只有命令行内核包 `sing-box-版本号-windows-amd64-legacy-windows-7.zip`(64 位)和 `-windows-386-legacy-windows-7.zip`(32 位),不是图形客户端。v2rayN 官方 wiki 的[发布文件介绍](https://github.com/2dust/v2rayN/wiki/Release-files-introduction/f9abd39da25add650a0f445415330e18a5cbe67d)写 Windows 10 以上;wiki [常见问题](https://github.com/2dust/v2rayN/wiki/Faq/f9abd39da25add650a0f445415330e18a5cbe67d)里「Win7 理论上可以」那一段是按 .NET 8 写的,要自己换 Win7 专用的内核(mihomo 是 go120 版),而 7.24.9 已经是 .NET 10、自带运行环境,本条不据此判断 Win7 能用。\n- **32 位 Windows**:有 32 位包的是 v2rayN(`windows-86`)、Clash Party(`ia32`)和 sing-box 的 SFW(`x86`);Clash Verge Rev、FlClash、Karing 都没有。v2rayN 的 wiki 常见问题还写着「32 位要自己编译」,但 7.24.9 已经正式发布了 `v2rayN-windows-86.zip`。\n- **便携版到底存哪**:Clash Party 的 `portable.7z` 根目录有一个空的 `PORTABLE` 文件,程序看到它就把数据放到程序旁边的 `data` 文件夹。v2rayN 的 zip:官方 wiki 说解压出来就能用、数据存在解压的文件夹里;按源码,程序所在的文件夹不能写入时(例如放在 Program Files 这类要管理员权限的地方),会改存到用户目录下的 `v2rayN` 文件夹,所以别解压到这类位置,也别解压到临时目录。FlClash 发布页把 Windows zip 标成「Portable」,但按源码它的配置仍然存在系统的用户目录,**换电脑或拷 U 盘时配置不会跟着走**。v2rayN 的 zip 在 Windows 上解压到用户目录运行过,数据确实写在解压出来的文件夹里;Clash Party 的便携包和 FlClash 没有在 Windows 上运行过。\n- **Clash Party 的两套文件名**:Release 里每个 `mihomo-party-*` 都和同名的 `clash-party-*` 逐字节相同,是为了兼容旧版的更新检测复制出来的,下哪个都一样。\n\n## macOS:Apple 芯片还是 Intel、最低系统\n\nApple 芯片下文件名带 `aarch64`、`arm64` 或 `Apple` 的,Intel 下带 `x64`、`amd64`、`64` 或 `Intel` 的,带 `universal` 的两种都能用。最低系统各家不同:\n\n- **Clash Verge Rev**:官方写 macOS 12 及以上;macOS 11 要自己换带 `go124` 标签的 mihomo 内核(本站没写这个操作;安装包本身声明的最低系统是 11.0)。\n- **Clash Party**:普通包 `clash-party-macos-*` 要 macOS 12 及以上,macOS 10.15 和 11 用 `clash-party-catalina-*`(Apple 芯片的 macOS 11 下 catalina-arm64)。本站读了两个 arm64 安装包:普通包声明的最低系统是 12.0,catalina 包是 10.15;普通包用的 Electron 43 官方也要求 macOS 12,catalina 包换成了支持 10.15 的 Electron 32。它的发布说明把普通包列在「macOS 11+」下,与安装包不符,以安装包为准。\n- **FlClash、Karing**:12 及以上。\n- **sing-box 的 SFM**:13 及以上;只有 GitHub 上的独立版,官方已不在 Mac App Store 上架,从旧的 App Store 版换过来,配置不会跟过来,要重新导入。\n- **v2rayN**:13.6 及以上;官方 wiki 的发布文件介绍说 dmg 没有签名,打开会提示「已损坏」,处理办法见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)。\n\n## Linux:deb 装不上、Ubuntu 版本\n\n- **Clash Verge Rev 2.5.5**(2.5.6 的 deb 依赖声明相同):deb 声明的依赖是 `libwebkit2gtk-4.1-0`,不是 4.0。在容器里实测 arm64 包:Ubuntu 20.04 报 `Depends: libwebkit2gtk-4.1-0 but it is not installable` 装不上;Ubuntu 22.04、24.04 和 Debian 12、13 都能装上,主程序链接的也是 4.1。**这对你意味着**:网上「Ubuntu 24.04 缺 libwebkit2gtk-4.0 所以装不了 Clash Verge」的说法对 2.5.5 的安装不成立;容器里没有图形界面,装好之后界面能不能正常显示在容器里核不了;另在 Ubuntu 24.04 arm64 虚拟机里装了官方 2.5.6 的 arm64 deb,界面在虚拟显示器上能正常显示和操作(没有窗口管理器,别的发行版没有看)。安装要用 `sudo apt install ./文件名.deb`,让 apt 自动补依赖。它没有 AppImage,没有图形桌面的机器用不了。\n- **v2rayN 7.24.9**:deb 写死了 `libc6 (>= 2.39)` 等一组新版本依赖。在容器里实测 arm64 包:Ubuntu 24.04、Debian 13 能装;Ubuntu 22.04、Debian 12 装不上,一次列出 libc6、fontconfig、coreutils、bash、libfreetype6 五条不满足,20.04 还多一条 desktop-file-utils。7.25.4 相同:arm64 deb 的依赖声明与 7.24.9 逐字一样,在这四个系统上装得上、装不上也一样(容器实测,20.04 没有测)。官方 wiki 的[发布文件介绍](https://github.com/2dust/v2rayN/wiki/Release-files-introduction/f9abd39da25add650a0f445415330e18a5cbe67d)写的是 Ubuntu 22.04+ / Debian 12+,与实测不符。**换 zip 版也绕不过去**(实测的是 arm64 的 zip,别的架构没有测):程序会卡在包里自带的 SQLite 库,Debian 12 报 `GLIBC_2.38 not found`,Ubuntu 22.04 报 `GLIBC_ABI_DT_RELR not found`;另外 zip 解压出来的主程序没有执行权限,要在解压出来的文件夹里打开终端,运行 `chmod +x v2rayN`。**系统是 22.04 或 Debian 12 的**:Clash Verge Rev 2.5.5 的 deb 在这两个系统上实测能装上(只测到安装这一步),或者升级系统(作者建议)。**Ubuntu 20.04 上**,本条测过的两个客户端都装不上,Clash Verge Rev 官方的建议是升级到 24.04。\n- **其它**:FlClash 有 AppImage、deb、rpm,官方要求先运行 `sudo apt-get install libayatana-appindicator3-dev`;Karing 只有 64 位,官方写当前 deb 要 glibc 2.38 及以上——对照本站容器里的版本,Ubuntu 24.04(2.39)、Debian 13(2.41)够,22.04(2.35)、Debian 12(2.36)不够,Karing 本身没有测;sing-box 的图形客户端是 `SFL-` 开头的那些,`sing-box_版本号_linux_*` 开头的 deb、rpm、pkg.tar.zst 和 `sing-box-版本号-linux-*.tar.gz` 都是命令行内核。\n\n## 安卓:arm64-v8a、universal、fdroid、legacy\n\n- **选架构**:v2rayNG 官方 wiki 的[发布文件说明](https://github.com/2dust/v2rayNG/wiki/Release-files-introduction-for-Android/d2f27e4d9deb065145bb79831686146ae24569df)是:普通手机下 arm64-v8a,armeabi-v7a 给老旧的 32 位设备或电视盒子,x86_64 / x86 给电脑上的安卓模拟器。模拟器要看它自己的架构:Intel / AMD 电脑上的一般是 x86_64;Apple 芯片 Mac 上的安卓模拟器是 arm64-v8a,本站实测 x86_64 包在上面装不上。同一页还说「不确定就下 universal」,但 **v2rayNG 2.2.6 这个正式版四种架构的包都有,唯独没有 universal**。有 universal 包的是 Clash Meta for Android 和 sing-box 的 SFA,体积是单架构包的两倍以上。\n- **v2rayNG 的 fdroid 版**:普通手机下不带 fdroid 的;系统在安装时拦下 v2rayNG 时,再试同架构、带 fdroid 的包——官方 wiki 说它「只是包名不同」,是给一些特殊系统(比如小米)用的。它和普通版在同一个 GitHub Release 里,不是去 F-Droid 商店下的;包名多了 `.fdroid`(`com.v2ray.ang.fdroid`),应用名是「v2rayNG (F-Droid)」。在模拟器上实测两个都能装上、同时存在,各有自己的数据目录,装 fdroid 版不会覆盖普通版。**这对你意味着**:两个版本的订阅和设置不互通,从一个换到另一个要重新导入订阅;更多见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)。\n- **sing-box 安卓版(SFA)与安卓 5、6**:官方页只写「Android 5.0+」,但实测普通包和 universal 包都要 Android 7.0,只有文件名带 `legacy-android-5` 的包支持 5.0。两种包的包名相同,是同一个应用的两种构建,不能同时装。只下 `SFA-` 开头的 apk:Release 里的 `sing-box_版本号_linux_*.apk`、`sing-box_版本号_openwrt_*.apk` 是 Linux 和路由器用的软件包,手机装不了。\n- **Karing** 的 `android_arm.apk` 同时带 arm64-v8a 和 armeabi-v7a 两种库(约 94 MB),单架构包约 55 MB。\n\n## iPhone / iPad:没越狱的没有安装文件可下\n\n没越狱的 iPhone / iPad 只能从 App Store(或 TestFlight)装,Release 里没有给它们用的文件:\n\n- **Shadowrocket**:付费,要求 iOS 13.0 及以上。\n- **sing-box**:iOS 版从 1.14.0 起以「sing-box MT」的名字回到 App Store,在商店里搜 sing-box MT;免费,要求 iOS 15.0 及以上;官方文档写需要中国大陆以外的 Apple 账号,TestFlight 名额只给赞助者,GitHub 上的 `SFI-*-iphoneos-arm64.deb` 是越狱设备用的。\n- **Karing**:要求 iOS 15 及以上,官方给的商店搜索词是 karing vpn。\n\n国区商店搜不到这几个应用怎么办,见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)。\n\n## 验证说明\n\n按各客户端 2026-09-24 正式版的 Release 文件、源码和官方文档核对,Clash Verge Rev 另于 2026-09-27 按 2.5.6 的 Release 文件与源码复核;安装包读过芯片架构和最低系统(macOS 抽查了 Clash Verge Rev 两种芯片、FlClash、Karing 的 dmg,v2rayN 的 arm64 zip 和 Clash Party 的两个 arm64 pkg;安卓读了 10 个 APK,清单见实验记录),deb 在 Ubuntu / Debian 容器里装过;另有两份实验在 Ubuntu 24.04 虚拟机里装上并打开过 arm64 deb 的界面:Clash Verge Rev 2.5.6,以及升级实验里的 Clash Verge Rev 2.5.5 与 Clash Party 2.0.2、2.0.3;v2rayNG 在安卓 16 模拟器上装过对错两种架构。限制:Windows 上只在一台 Windows 11 上装过 Clash Verge Rev 2.5.2、2.5.5、2.5.6 与 Clash Party 2.0.3 的 x64 安装包、运行过 v2rayN 的 zip,Win7 能否使用只按官方说法和构建脚本;Linux 只测了 arm64 包;本条自己的安装包实验在容器里只测到安装这一步,界面只在上面两份虚拟机实验里打开过(Ubuntu 24.04、没有窗口管理器),其余客户端在 Linux 上没有打开过界面;厂商手机的安装器提示可能与模拟器不同。\n\n\n| 客户端 | 系统 | 按芯片该下的文件 | 最低系统 | 容易下错或看不懂的文件 | 来源 |\n| --- | --- | --- | --- | --- | --- |\n| Clash Verge Rev 2.5.6 | Windows | 普通电脑(Intel、AMD 64 位):Clash.Verge_版本号_x64-setup.exe;ARM 电脑:Clash.Verge_版本号_arm64-setup.exe。不清楚就下 x64(官方说法) | Windows 10 / 11;官方写明不再支持 Windows 7(fixed_webview2 版也在其内) | 带 fixed_webview2 的是内置 WebView2(Windows 上显示界面的系统组件)的版本(约 250 MB,普通版约 60 MB),官方说只在装不上 WebView2、或普通版打不开面板时用;README 写支持 x86,但 2.5.5、2.5.6 都没有 32 位包;没有便携版;.sig 与 latest.json 是给应用内更新用的 | cvr-install, cvr-faq-windows, cvr-repo-v2-5-5, cvr-repo-v2-5-6, exp-release-assets-which-file-cli-2026-09-24(适用 clash-verge-rev · windows · any;已验证 clash-verge-rev 2.5.5, 2.5.6@2026-09-27) |\n| Clash Party 2.0.3 | Windows | Windows 10 / 11:clash-party-windows-版本号-x64(64 位)/ ia32(32 位)/ arm64;-setup.exe 是安装版,-portable.7z 是便携版。Windows 7 / 8:clash-party-win7-版本号-x64 / ia32(用 Electron 22 打包) | 普通包按构建用的 Electron 43 要 Windows 10 及以上;win7 包是给 Windows 7 / 8 的,但默认内核是普通版 mihomo、不是 Win7 专用的 go120 版,Win7 上能否启动本站没测 | mihomo-party-* 是 clash-party-* 逐字节相同的副本,下哪个都一样;portable.7z 里带 PORTABLE 标记,数据存在程序旁边的 data 文件夹 | clash-party-src-v2-0-3, electron-breaking-changes, exp-release-assets-which-file-cli-2026-09-24(适用 clash-party · windows · any;已验证 clash-party 2.0.3@2026-09-24) |\n| v2rayN 7.24.9 | Windows | v2rayN-windows-64.zip(64 位)/ -arm64.zip / -86.zip(32 位);每种另有一个 -desktop.zip,是另一套界面框架(Avalonia)的版本 | 官方 wiki 写 Windows 10 及以上;自带 .NET 运行环境,不用另装 | 全是 zip,解压就能用:配置存在解压出来的文件夹里(官方 wiki;Windows 上解压到用户目录实测如此),但文件夹不能写入时(例如放在 Program Files)改存到用户目录(按源码),别解压到临时目录;.sig 是 PGP 签名,v2rayN-public-key.asc 是公钥 | v2rayn-src-7-24-9, exp-release-assets-which-file-cli-2026-09-24, exp-v2rayn-gui-windows-2026-09-29(适用 v2rayn · windows · any;已验证 v2rayn 7.24.9(zip 解压到用户目录运行过)@2026-09-29) |\n| FlClash 0.8.98 | Windows | FlClash-版本号-windows-amd64-setup.exe(安装版)或 -amd64.zip;ARM 电脑把 amd64 换成 arm64 | 没有 32 位包;官方没写最低 Windows 版本 | 发布页把 zip 标成 Portable,但按源码配置仍存在系统的用户目录,不跟着程序走,只是免安装 | flclash-src-v0-8-98, exp-release-assets-which-file-cli-2026-09-24(适用 flclash · windows · any;已验证 flclash 0.8.98@2026-09-24) |\n| Karing 1.2.25 | Windows | karing_版本号_windows_x64.exe(安装版)或 .zip | Windows 10 及以上,只有 64 位 | 没有 ARM 包 | karing-repo, exp-release-assets-which-file-cli-2026-09-24(适用 karing · windows · any;已验证 karing 1.2.25.2802@2026-09-24) |\n| sing-box 1.14.2(SFW) | Windows | SFW-版本号-x64.exe / -x86.exe(32 位)/ -arm64.exe | Windows 10 及以上 | sing-box-版本号-windows-*.zip 是命令行内核,不是图形客户端;其中 windows-amd64-legacy-windows-7(64 位)和 windows-386-legacy-windows-7(32 位)是给 Windows 7 的内核 | singbox-desktop-docs, singbox-src-v1-14-2, exp-release-assets-which-file-cli-2026-09-24(适用 sing-box · windows · any;已验证 sing-box 1.14.2@2026-09-24) |\n| Clash Verge Rev 2.5.6 | macOS | Apple 芯片(M 系列):Clash.Verge_版本号_aarch64.dmg;Intel 芯片:Clash.Verge_版本号_x64.dmg | 官方写 macOS 12 及以上;macOS 11 要自己换带 go124 标签的 mihomo 内核(安装包声明 11.0) | *.app.tar.gz 和它的 .sig 是给应用内更新用的,不用手动下 | cvr-install, cvr-repo-v2-5-5, cvr-repo-v2-5-6, exp-release-assets-which-file-cli-2026-09-24(适用 clash-verge-rev · macos · any;已验证 clash-verge-rev 2.5.5, 2.5.6@2026-09-27) |\n| Clash Party 2.0.3 | macOS | macOS 12 及以上:clash-party-macos-版本号-arm64.pkg(Apple 芯片)/ -x64.pkg(Intel);macOS 10.15 和 11:clash-party-catalina-版本号-arm64 / -x64.pkg | 普通包 12.0,catalina 包 10.15(读 arm64 安装包的声明;发布说明写普通包 11+,与安装包不符) | 只有 pkg 安装包;.sha256 是校验和 | clash-party-src-v2-0-3, electron-breaking-changes, exp-release-assets-which-file-cli-2026-09-24(适用 clash-party · macos · any;已验证 clash-party 2.0.3@2026-09-24) |\n| v2rayN 7.24.9 | macOS | Apple 芯片:v2rayN-macos-arm64.dmg(或同名 zip);Intel:v2rayN-macos-64.dmg(或 zip) | macOS 13.6 及以上 | 官方 wiki 说 dmg 没有签名,打开会提示「已损坏」,处理办法见 v2rayN 首次使用那一条 | v2rayn-src-7-24-9, exp-release-assets-which-file-cli-2026-09-24(适用 v2rayn · macos · any;已验证 v2rayn 7.24.9@2026-09-24) |\n| FlClash 0.8.98 | macOS | Apple 芯片:FlClash-版本号-macos-arm64.dmg;Intel:-macos-amd64.dmg | macOS 12 及以上(按源码与安装包的声明) | — | flclash-src-v0-8-98, exp-release-assets-which-file-cli-2026-09-24(适用 flclash · macos · any;已验证 flclash 0.8.98@2026-09-24) |\n| Karing 1.2.25 | macOS | karing_版本号_macos_universal.dmg 或 .pkg,官方写 Apple 芯片和 Intel 都支持 | macOS 12 及以上 | — | karing-repo, exp-release-assets-which-file-cli-2026-09-24(适用 karing · macos · any;已验证 karing 1.2.25.2802@2026-09-24) |\n| sing-box 1.14.2(SFM) | macOS | SFM-版本号-Apple.pkg(Apple 芯片)/ -Intel.pkg / -Universal.pkg(两种芯片都能用,体积约为前两个之和) | macOS 13 及以上 | macOS 版只有 GitHub 上的独立 pkg,官方已不在 Mac App Store 上架;从旧的 App Store 版换过来,配置不会跟过来,要重新导入 | singbox-apple-docs, singbox-changelog-v1-14-2, exp-release-assets-which-file-cli-2026-09-24(适用 sing-box · macos · any;已验证 sing-box 1.14.2@2026-09-24) |\n| Clash Verge Rev 2.5.6 | Linux | Debian / Ubuntu:Clash.Verge_版本号_amd64.deb(64 位)/ _arm64.deb / _armhf.deb(ARMv7);Fedora 等:Clash.Verge-版本号-1.x86_64.rpm / aarch64.rpm / armhfp.rpm | deb 依赖 libwebkit2gtk-4.1-0:Ubuntu 20.04 装不上,22.04、24.04、Debian 12、13 能装(容器里实测 2.5.5 的 arm64 包,只测到安装这一步);需要图形桌面;2.5.6 的 deb 依赖声明与 2.5.5 相同;两版的 arm64 包另在 Ubuntu 24.04 虚拟机里装上并打开过界面 | 没有 AppImage;用 sudo apt install ./文件名.deb 安装,让 apt 自动补依赖 | cvr-install, cvr-faq-linux, cvr-repo-v2-5-5, cvr-repo-v2-5-6, exp-release-assets-which-file-cli-2026-09-24, exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27, exp-broken-after-client-update-gui-linux-2026-09-27(适用 clash-verge-rev · linux · any;已验证 clash-verge-rev 2.5.6(2.5.5 在容器里测过安装,另在 Ubuntu 24.04 虚拟机里打开过界面)@2026-09-27) |\n| v2rayN 7.24.9 | Linux | Debian / Ubuntu:v2rayN-linux-64.deb / -arm64.deb(另有 loong64、riscv64);Fedora / RHEL:v2rayN-linux-rhel-64.rpm / -rhel-arm64.rpm;另有 zip 免安装版 | deb 依赖 libc6 (>= 2.39):Ubuntu 24.04、Debian 13 能装,Ubuntu 20.04 / 22.04、Debian 12 装不上(容器里实测 arm64 包;与官方 wiki 写的 22.04+ / Debian 12+ 不符) | zip(实测 arm64 的)在 22.04 / Debian 12 上同样卡在包里自带的 SQLite 库(Debian 12 报 GLIBC_2.38 not found,22.04 报 GLIBC_ABI_DT_RELR not found);zip 解压后主程序没有执行权限,要在解压出来的文件夹里运行 chmod +x v2rayN | v2rayn-src-7-24-9, exp-release-assets-which-file-cli-2026-09-24(适用 v2rayn · linux · any;已验证 v2rayn 7.24.9@2026-09-24) |\n| FlClash 0.8.98 | Linux | FlClash-版本号-linux-amd64 / -arm64 的 .AppImage、.deb 或 .rpm | 官方没写发行版下限 | 官方要求先运行 sudo apt-get install libayatana-appindicator3-dev;SHA256SUMS 是全部文件的校验和,核对下载时才用得到 | flclash-src-v0-8-98(适用 flclash · linux · any;已验证 flclash 0.8.98@2026-09-24) |\n| Clash Party 2.0.3 | Linux | deb:clash-party-linux-版本号-amd64 / -arm64.deb;rpm:-x86_64 / -aarch64.rpm;Arch:-x64 / -aarch64.pkg.tar.zst | 官方没写发行版下限 | mihomo-party-* 是同一份文件的副本 | clash-party-src-v2-0-3, exp-release-assets-which-file-cli-2026-09-24(适用 clash-party · linux · any;已验证 clash-party 2.0.3@2026-09-24) |\n| Karing 1.2.25 | Linux | karing_版本号_linux_amd64 的 .AppImage、.deb 或 .rpm | 官方写当前 deb 要 glibc 2.38 及以上:Ubuntu 24.04、Debian 13 够,22.04、Debian 12 不够(按本站容器里的 glibc 版本对照,Karing 本身没测) | 只有 64 位(x86),没有 ARM 包 | karing-repo, exp-release-assets-which-file-cli-2026-09-24(适用 karing · linux · any;已验证 karing 1.2.25.2802@2026-09-24) |\n| sing-box 1.14.2(SFL) | Linux | SFL-版本号-amd64.deb(x64)/ -arm64.deb / -armv7l.deb,另有 rpm 与 Arch 的 .pkg.tar.zst | 官方没写发行版下限 | 图形客户端是 SFL 开头的那些;sing-box_版本号_linux_* 开头的 deb、rpm、pkg.tar.zst 和 sing-box-版本号-linux-*.tar.gz 都是命令行内核 | singbox-desktop-docs, singbox-src-v1-14-2, exp-release-assets-which-file-cli-2026-09-24(适用 sing-box · linux · any;已验证 sing-box 1.14.2@2026-09-24) |\n| v2rayNG 2.2.6 | Android | 大多数手机:v2rayNG_版本号_arm64-v8a.apk;32 位的老设备、电视盒子:armeabi-v7a;电脑上的安卓模拟器看模拟器的架构:Intel / AMD 电脑上的一般用 x86_64(官方 wiki),Apple 芯片 Mac 上的是 arm64-v8a(本站实测 x86_64 包装不上) | Android 7.0 及以上 | 2.2.6 没有 universal 包;普通手机下不带 fdroid 的,系统拦着装不上(一些小米这类系统)时再试同架构、带 -fdroid 的包:它是另一个包名(com.v2ray.ang.fdroid)的独立应用,能和普通版同时装、订阅和设置不互通;.sig 是 PGP 签名 | v2rayng-src-2-2-6, exp-release-assets-which-file-gui-2026-09-24, exp-release-assets-which-file-cli-2026-09-24, exp-v2rayng-first-run-gui-2026-09-23(适用 v2rayng · android · any;已验证 v2rayng 2.2.6@2026-09-24) |\n| Clash Meta for Android 2.11.34 | Android | cmfa-版本号-meta-arm64-v8a-release.apk(大多数手机)/ armeabi-v7a / x86 / x86_64;universal 包含全部架构 | Android 5.0 及以上(官方建议 7.0 及以上) | universal 包约 124 MB,是单架构包(约 49 MB)的两倍多 | cmfa-repo, exp-release-assets-which-file-cli-2026-09-24(适用 clash-meta-android · android · any;已验证 clash-meta-android 2.11.34@2026-09-24) |\n| sing-box 1.14.2(SFA) | Android | SFA-版本号-arm64-v8a.apk(大多数手机)/ armeabi-v7a / x86 / x86_64 / universal;Android 5、6 用 SFA-版本号-legacy-android-5-*.apk | 普通包 Android 7.0 及以上;legacy-android-5 包 Android 5.0 及以上(官方页只写了 5.0+) | 只下 SFA 开头的 apk:sing-box_版本号_linux_*.apk 和 sing-box_版本号_openwrt_*.apk 是 Linux 和路由器用的软件包,手机装不了;普通包与 legacy 包的包名相同(按安装包信息),系统当它们是同一个应用,不能并存 | sfa-src-v1-14-2, singbox-android-docs, singbox-src-v1-14-2, exp-release-assets-which-file-cli-2026-09-24(适用 sing-box · android · any;已验证 sing-box 1.14.2@2026-09-24) |\n| FlClash 0.8.98 | Android | FlClash-版本号-android-arm64-v8a.apk(大多数手机)/ armeabi-v7a / x86_64 | Android 7.0 及以上(按安装包的声明) | 没有 universal 包,也没有 x86 包 | flclash-src-v0-8-98, exp-release-assets-which-file-cli-2026-09-24(适用 flclash · android · any;已验证 flclash 0.8.98@2026-09-24) |\n| Karing 1.2.25 | Android | karing_版本号_android_arm64-v8a.apk(大多数手机)/ armeabi-v7a.apk(32 位设备) | Android 8.0 及以上 | android_arm.apk 同时带两种架构,体积大(约 94 MB,单架构包约 55 MB) | karing-repo, exp-release-assets-which-file-cli-2026-09-24(适用 karing · android · any;已验证 karing 1.2.25.2802@2026-09-24) |\n| Shadowrocket | iOS | 没有可下载的安装文件,只能从 App Store 装(付费) | iOS / iPadOS 13.0 及以上 | — | shadowrocket-appstore(适用 shadowrocket · ios · any;已验证 shadowrocket App Store 商品页@2026-09-24@2026-09-24) |\n| sing-box MT(官方文档叫 SFI) | iOS | 在 App Store 搜 sing-box MT(免费);TestFlight 名额只给赞助者;越狱设备才用 GitHub 上的 SFI-版本号-iphoneos-arm64.deb | iOS 15.0 及以上;官方文档写需要中国大陆以外的 Apple 账号 | 旧的 sing-box VT 已被 sing-box MT 取代,要装新应用 | singbox-apple-docs, singbox-changelog-v1-14-2, singbox-mt-appstore(适用 sing-box · ios · any;已验证 sing-box 官方文档与 v1.14.2 更新日志@2026-09-24,App Store 商品页@2026-09-24@2026-09-24) |\n| Karing | iOS | App Store(官方给的搜索词是 karing vpn) | iOS 15 及以上 | — | karing-repo(适用 karing · ios · any;已验证 karing README@0c320dc@2026-09-24) |\n\n(table,共 26 行)\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- cvr-install:https://www.clashverge.dev/install.html(操作系统 → Windows(不清楚架构下 x64;Windows 7 不再支持;fix_webview2 字样的安装包)、Scoop(便携版需求)、Linux 的 deb/rpm 架构表与 apt 安装命令、macOS(支持 12 及以上,11 需自换 go124 内核);发布地址(仅通过 GitHub Release 发布))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(「此应用无法在你的电脑上运行」(多半是下错了架构,大部分人该下 x64 而不是 arm64);「无法启动/不显示界面/闪退/只有托盘图标」(Tauri 依赖 WebView2,卸载或禁用后界面显示不出来;仍打不开面板可改下 fixed_webview2 版);「WebView2 无法正常安装」;「Windows 7 无法使用」(已不再支持 Windows7)。「服务内核未通过安全检查」→「修复权限并恢复服务模式」第 2 步(装在下载目录、桌面、用户目录或自行解压目录的,改用官方安装包装到默认的 C:\\Program Files\\Clash Verge)。「服务内核未通过安全检查」→ 为什么会出现(服务检查内核文件和各级目录的所有者与访问权限)、不想或不会修复:以管理员身份运行(不装服务也能用 TUN)。源文件 clash-verge-rev.github.io@be157f4 docs/faq/windows.md L21-L38、L50-L64、L205-L215、L228)\n- cvr-faq-linux:https://www.clashverge.dev/faq/linux.html(开头:Ubuntu 20.04 需额外安装 libwebkit2gtk 与 libjavascriptcoregtk,建议升级 24.04;无图形界面不能使用)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(README.md L33(Supports Windows (x64/x86), Linux (x64/arm64) and macOS 11+);src-tauri/tauri.windows.conf.json L10-L12(webviewInstallMode embedBootstrapper);src-tauri/webview2.x64.json L10-L11(fixedRuntime);src-tauri/tauri.macos.conf.json L9(minimumSystemVersion 11.0);src-tauri/tauri.linux.conf.json L5-L8(只打 deb、rpm);src-tauri/tauri.conf.json L21、L33-L38(createUpdaterArtifacts、updater.pubkey))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5 逐字相同:README.md(L33)、src-tauri/tauri.windows.conf.json、src-tauri/webview2.x64.json、src-tauri/tauri.macos.conf.json(L9 minimumSystemVersion 11.0)、src-tauri/tauri.linux.conf.json(L5-L8 只打 deb、rpm);tauri.conf.json 只改了版本号。这个 tag 的 Release 文件除版本号外与 v2.5.5 相同,共 23 个(2026-09-27 用 GitHub API 比对);Clash.Verge_2.5.6_arm64.deb 的 control 里 Depends 是 openssl, libayatana-appindicator3-1, libwebkit2gtk-4.1-0, libgtk-3-0;src-tauri/packages/windows/installer.nsi L964-L980(复制完文件后不论装不装服务,都对 verge-mihomo.exe、verge-mihomo-alpha.exe 各运行一次 clash-verge-service-install.exe --install-core <路径> --sha256 <摘要>)、L222-L243(已装同一版本时第一项是新增或重新安装,版本不同时第一项是安装前卸载)、L279-L280(默认选第一项)、L334-L347(选卸载时运行旧版卸载程序)、L1105(卸载程序运行 RemoveVergeService))\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/management.rs L150-L205(装服务时每个内核带 --install-core 与 --sha256);src/bin/install_service.rs L367-L381(带 sha256 时不检查内核来源位置)、L392-L405(按 --install-core 逐个复制内核)、L1299(单独 --install-core 时不装服务);src/core/installation.rs L25-L81(只检查服务自己 cores 目录里的内核);src/core/paths/windows.rs L12-L44(状态目录 = ProgramData\\clash-verge-service))\n- clash-party-src-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(package.json L92(electron ^43.7.3);.github/workflows/build.yml L133-L137(Add Portable Flag)、L201-L202(win7 包换用 electron 22.3.27,并把 electron-builder.yml 里的 windows 换成 win7)、L210-L215(win7 包的 Prepare 一步只多设 LEGACY_BUILD)、L511、L568(catalina 包换用 electron 32.2.2);scripts/prepare.mjs L66-L74(Smart 内核用 go120 版)、L96-L104(默认 mihomo 内核:windows-amd64-compatible / windows-386,不是 go120 版)、L383-L391(LEGACY_BUILD 只把 sysproxy 换成 win7 版);src/main/utils/template.ts L20(默认 core: mihomo);src/main/utils/dirs.ts L8-L14、L25-L37(有 PORTABLE 文件时数据放程序目录下的 data);scripts/copy-legacy-artifacts.mjs L4-L23(把 clash-party 文件复制成 mihomo-party 名字))\n- electron-breaking-changes:https://github.com/electron/electron/blob/f2db15deebd1aadd2931efaf5459b1eed1bb8875/docs/breaking-changes.md(Breaking API Changes (23.0) → Removed: Windows 7 / 8 / 8.1 support(L1813-L1819:Electron 23 起要 Windows 10);(33.0) → Removed: macOS 10.15 support(L1157-L1162:33 起要 macOS 11);(38.0) → Removed: macOS 11 support(L833-L838:38 起要 macOS 12))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/Directory.Build.props L8(net10.0);.github/workflows/build.yml L79 与 build-windows-x86.yml L22-L29、L66-L69(SelfContained 发布、windows-86 包);v2rayN/ServiceLib/Common/Utils.cs L1029-L1061(HasWritePermission:程序目录不能写、有 NotStoreConfigHere.txt、或是 WinGet 安装路径时判为不可写)、L1084-L1092(StartupPath:此时改用 LocalApplicationData 下的 v2rayN);package-debian.sh L612(libc6 (>= 2.39) 等依赖);package-osx.sh L56-L57(LSMinimumSystemVersion 13.6))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/build.gradle.kts L12-L14(minSdk 24)、L51-L62(fdroid flavor 的 applicationIdSuffix .fdroid);V2rayNG/app/src/fdroid/res/values/strings.xml L3(app_name = v2rayNG (F-Droid));.github/workflows/build.yml L104-L123(上传步骤只按 arm64-v8a、armeabi-v7a、x86 三个通配取 APK,x86 也匹配到 x86_64,universal 不在其中))\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(lib/common/path.dart L17-L36、L73-L76(数据目录取系统的应用支持目录);macos/Runner.xcodeproj/project.pbxproj L505(macOS 部署目标 12.0);README_zh_CN.md L39-L45(Linux 先 sudo apt-get install libayatana-appindicator3-dev))\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(README.md L57-L63(System Requirements:Windows >= 10 (64-bit only)、Android >= 8、Linux (64-bit only, glibc >= 2.38 for current .deb packages)、IOS >= 15、MacOS >= 12 (Intel, Apple Silicon))、L65-L67(Install:App Store 搜索词 karing vpn))\n- cmfa-repo:https://github.com/MetaCubeX/ClashMetaForAndroid/tree/513b67fc35c68af1b0e7377681f95b33c074ecf7(README.md L13-L17(Android 5.0+ minimum、7.0+ recommend、四种架构);build.gradle.kts L58、L189-L191(minSdk 21、universal 包))\n- sfa-src-v1-14-2:https://github.com/SagerNet/sing-box-for-android/tree/fc21909df7a3f0fc9435f3866fb6a4960711aa5f(app/build.gradle.kts L72(默认 minSdk 24)、L106-L113(otherLegacy 变体 minSdk 21)、L173(文件名改成 legacy-android-5))\n- singbox-src-v1-14-2:https://github.com/SagerNet/sing-box/tree/af6e64c3b69e6132ebaee0e1a3d24e93903f6709(.github/workflows/build.yml L132-L133(legacy_win7 矩阵:windows amd64 与 386 各一个,产出文件名带 legacy-windows-7 的内核包)、L356-L405(Package DEB / RPM / Pacman:以 sing-box_版本号_linux_ 开头的 deb、rpm、pkg.tar.zst 装的是命令行内核)、L425-L444(Package OpenWrt APK / Alpine APK:以 sing-box_版本号_openwrt_ 与 sing-box_版本号_linux_ 开头的 apk 是 OpenWrt 与 Alpine Linux 的软件包))\n- singbox-changelog-v1-14-2:https://github.com/SagerNet/sing-box/blob/af6e64c3b69e6132ebaee0e1a3d24e93903f6709/docs/changelog.md#L13-L77(1.14.0 一节第 17 行「iOS and tvOS clients are back on the App Store」(链到 sing-box-mt/id6785326793);第 67–72 行注 1:以 sing-box MT 的名字重新上架,旧版 sing-box VT 的用户要装新应用;第 74–77 行:SFM 不再上 Mac App Store,改用独立版,配置与设置不从原来的应用继承)\n- singbox-android-docs:https://sing-box.sagernet.org/clients/android/(Requirements(Android 5.0+);Download)\n- singbox-desktop-docs:https://sing-box.sagernet.org/clients/desktop/(Requirements(Windows 10+ x64 / x86 / arm64;Linux x64 / arm64 / armv7l))\n- singbox-apple-docs:https://sing-box.sagernet.org/clients/apple/(Requirements(iOS 15.0+ / macOS 13.0+,中国大陆以外的 Apple 账号);TestFlight 名额只给赞助者;iOS jailbreak version(SFI-iphoneos-arm64.deb);macOS standalone version。页顶「App Store 暂时无法更新」的提示与 1.14.0 更新日志不一致,本条以更新日志为准)\n- singbox-mt-appstore:https://apps.apple.com/us/app/sing-box-mt/id6785326793(开发者 Metamerism LLC;价格 Free;Compatibility:iPhone 要求 iOS 15.0 或更高。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- shadowrocket-appstore:https://apps.apple.com/us/app/shadowrocket/id932747118(价格;Compatibility(iOS / iPadOS 13.0 及以上))\n- aosp-packagemanager-1cdfff5:https://github.com/aosp-mirror/platform_frameworks_base/blob/1cdfff555f4a21f71ccc978290e2e212e2f8b168/core/java/android/content/pm/PackageManager.java#L10673-L10717(L10673 起把安装失败码换算成对外状态的那个函数:L10687(系统版本低于应用要求,OLDER_SDK)与 L10717(没有匹配的芯片架构,NO_MATCHING_ABIS)换算成同一个「不兼容」状态(同目录 PackageInstaller.java L537:状态值 7))\n- exp-release-assets-which-file-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-release-assets-which-file-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-7-25-4-assets-cli-2026-10-02:验证记录(内部存档,未公开)\n- exp-v2rayng-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-broken-after-client-update-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:dc501fa 2026-10-02\n"},"rules-misroute":{"id":"rules-misroute","type":"troubleshoot","title":"Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上","aliases":["规则模式国内网站还走代理","开全局后国内网站变慢","Clash Verge 全局模式不走代理","Clash Verge 某个网站不走代理","Clash Verge 连接页规则列与链路列","Clash Verge 命中了哪条规则","规则模式 Telegram 连不上","Telegram 只有全局能用","match Match using DIRECT","doesn't match any rule using DIRECT","using GLOBAL","GLOBAL 组默认 DIRECT","no-resolve 与 IP-CIDR 规则顺序","Clash Verge 分流规则误判","Clash Verge 前置规则"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","routing-rules"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 能上网,但某个网站走错了出口:国内网站走了节点、变慢,该走代理的网站却直连,开了全局模式反而不走代理,或者网页都正常、只有 Telegram 连不上。**先别急着换模式,先看「代理」页顶部选的是不是「规则」,再去「连接」页找到那个网站的连接,看「规则」和「链路」两列**:「规则」是它实际命中的那条规则(例如 `DomainSuffix(…)`、`GeoIP(CN)`、`Match`),「链路」是它实际走的出口(例如「组名 / 节点名」、`DIRECT`、`GLOBAL / DIRECT`)。「规则」列空白表示这条连接没经过规则匹配:全局或直连模式下都是空白;规则模式下空白,表示最后没有任何一条规则决定它的出口(比如缺兜底规则 `MATCH`)。看清这两列,就知道该改哪里。\n\n四个最常见的误会:\n\n- **规则模式不会自己分国内外**。它只按订阅里和你自己加的规则匹配,从上往下、命中第一条就停;分不分国内外,全看配置里有没有对应的规则。没被任何规则接住的连接,走兜底规则 `MATCH` 指向的那个组。\n- **全局模式不等于「全部走代理」**。全局模式下所有连接都走 `GLOBAL` 组当前选中的那一项,国内网站也一样绕到那里,这是源码能确认的「开了全局国内变慢」的一个原因。订阅里没写 `GLOBAL` 组时,内核自动生成的那个排第一的是 `DIRECT`,没在里面选过节点,全局就是直连。\n- **程序直接按 IP 连时,域名规则一条都对不上**。Telegram 桌面版(tdesktop)源码里启动用的初始数据中心地址是一串 IP(本条只核对了这一处),所以它的连接多半只有 IP、没有域名,这时只加域名规则没用;到底有没有域名,以「连接」页「主机」一栏为准。\n- **日志看不出全局模式走了哪个节点**。全局模式下日志只写 `using GLOBAL`;规则模式写 `match 规则(内容) using 出口`,最后没有任何规则接住时(比如缺兜底 `MATCH`)写 `doesn't match any rule using DIRECT`。日志在 Clash Verge Rev 左侧的「日志」页;不看日志也行,连接页的「规则」「链路」两列是同一份信息。常见的一行 `match Match using DIRECT`,意思是这个网站没被任何规则接住,落到了兜底,而兜底走的是直连——见下面「落到兜底」的修复。\n\nTelegram 那一条的来源:tdesktop 的源码;程序直接访问 IP 时连接里没有域名、落到兜底,本机用命令行内核实测过。只核对了 tdesktop,**macOS 上的原生版 Telegram 是另一套代码,没有核对**。\n\n下面五个问题(见排查步骤)会把你带到这六种原因之一,顺序是:模式对不对、流量进没进客户端、命中的是哪条规则。\n\n- **misroute-not-rule-mode**(模式不是「规则」):「直连」模式下所有连接走本地网络,「全局」模式下所有连接走 `GLOBAL` 组选中的那一项,两种都不看规则。内核文档也写明,全局模式要在 `GLOBAL` 策略组里选代理。按源码,在 Clash Verge Rev 里,全局模式下「代理」页只剩 `GLOBAL` 这一张列表,直连模式下不显示任何列表、只有「直连模式」四个字。\n- **misroute-not-in-client**(流量没进客户端):系统代理和虚拟网卡模式只决定流量怎么进到 Clash Verge Rev,并非所有程序都遵守系统代理。连接页里找不到它,改规则也没用。\n- **misroute-earlier-rule**(被前面的规则截走):它命中了一条具体规则。要么这条规则排在前面、先截走了它,要么规则本身没错、只是它指向的组选错了出口。要特别留意 IP 类规则(`IP-CIDR`、`GEOIP`):不带 `no-resolve` 时,内核会先把域名解析成 IP 再比对,所以排在前面的 IP 类规则也能截走按域名访问的网站。实测看到过排在前面的 IP 段规则截走了按域名访问的连接(该域名写在 hosts 里,所以这次实测分不出是规则触发了解析还是 hosts 预先给了 IP)。\n- **misroute-app-uses-ip**(程序直接连 IP):域名类规则比对的是连接里的域名;程序直接按 IP 连时没有域名,只能靠 IP 类规则接住,否则落到兜底(没有兜底时直连)。所以「规则模式下只有 Telegram 连不上」,要看它的「链路」最后一段是不是 `DIRECT`:是的话,就是它落到的兜底走了直连(或者最后没有任何规则接住它)。「切到全局就能用」只在 `GLOBAL` 里已经选了节点时成立,它说明 Telegram 的流量确实进了客户端,问题出在规则这一层。开了域名嗅探、而且嗅探成功时,内核会用嗅探出的域名去比对;本条没有核实 Clash Verge Rev 默认是否开嗅探。\n- **misroute-falls-to-match**(落到兜底):订阅里没有这个网站的规则,它落到了兜底的 `MATCH`。兜底组选的是什么,它就走什么。\n- **misroute-no-rule-direct**(没有规则接住、直连):规则模式下最后没有任何一条规则接住它(比如没有兜底规则 `MATCH`)时,内核走 `DIRECT`,「规则」列是空的。\n\n## 几条流传的说法\n\n- **「规则模式上不了外网,只能开全局」**:规则模式走哪里由规则决定。外网打不开时,去「连接」页看它命中了哪条规则、链路最后一段是不是 `DIRECT`,比一律改全局准确;全局模式会把国内网站也一起送去节点。\n- **「开了 TUN 就是所有流量走代理」**:虚拟网卡和系统代理只管流量怎么进客户端,进来之后走节点还是直连,仍然由规则、全局、直连模式和规则本身决定。\n- **「IP 规则加了 no-resolve,就不会命中按域名访问的网站」**:不一定。内核文档写明,如果更早的规则已经触发过 DNS 解析,带 `no-resolve` 的 IP 类规则照样会命中;域名写在 hosts 里时,内核在匹配规则之前就知道了它的 IP,带 `no-resolve` 的 IP 规则同样命中,这一点实测过。\n- **「开了全局国内变慢,是 TUN 堆栈或日志等级的问题」**:没有找到官方文档或源码支持这个说法。能确认的是路径:全局模式下国内网站也经过节点。本条没有测速。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.2、2.5.5 与 2.5.6 的源码和官方文档核对(2.5.6 与 2.5.5 相比,本条涉及的代码都没改);规则怎么命中另在内核层实测过:macOS 上 Clash Verge Rev 2.5.2 自带的内核(数据从控制接口读)和命令行 mihomo v1.19.31。\n\n- 界面没有实际操作过:连接页两列、代理页、「编辑规则」的字段都是按源码写的。\n- 本条的实验没有测 GEOSITE、GEOIP、按进程名匹配三类规则(进程名在 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule) 里测过)。\n- Telegram 只读了桌面版源码,没有实际运行。\n\n## 取证\n- **misroute-mode-is-rule**:在「代理」页顶部,选的是「规则」吗?(选「全局」或「直连」算不是)\n pass → misroute-conn-listed;fail → misroute-not-rule-mode;unknown → escalate\n- **misroute-conn-listed**:趁那个网站或程序正在连的时候打开「连接」页,能找到它的连接吗?(搜索框按主机、目标地址、进程名过滤,输入网站域名的一段即可;Telegram 这类程序,看有没有随它新出现的连接,这类连接的「主机」一栏多半只有 IP 加端口(形如 `x.x.x.x:443`)。连接一闪就没的程序,要在它正在连的那几秒里看。怎么找都没有算找不到)\n pass → misroute-rule-is-specific;fail → misroute-not-in-client;unknown → escalate\n- **misroute-rule-is-specific**:这条连接的「规则」列显示的是某条具体规则吗?(例如 `DomainSuffix(…)`、`GeoSite(…)`、`GeoIP(CN)`、`IPCIDR(…)`、`RuleSet(…)` 都算是;显示 `Match` 或者一片空白算不是。用的是列表视图、看不到这一列时,点开这条连接看详情)\n pass → misroute-earlier-rule;fail → misroute-host-is-domain;unknown → escalate\n- **misroute-host-is-domain**:这条连接的「主机」一栏是域名吗?(只有 IP 地址加端口、形如 `x.x.x.x:443`,没有域名,算不是)\n pass → misroute-rule-is-match;fail → misroute-app-uses-ip;unknown → escalate\n- **misroute-rule-is-match**:「规则」列显示的是 `Match` 吗?(一片空白算不是)\n pass → misroute-falls-to-match;fail → misroute-no-rule-direct;unknown → escalate\n\n## 原因\n- **misroute-not-rule-mode**(可能性 high)→ 修复 fix-misroute-mode\n- **misroute-not-in-client**(可能性 medium)→ 修复 fix-misroute-intercept\n- **misroute-earlier-rule**(可能性 high)→ 修复 fix-misroute-prepend-rule\n- **misroute-app-uses-ip**(可能性 medium)→ 修复 fix-misroute-ip-rule\n- **misroute-falls-to-match**(可能性 high)→ 修复 fix-misroute-match-target\n- **misroute-no-rule-direct**(可能性 low)→ 修复 fix-misroute-add-rule\n\n## 修复\n### fix-misroute-mode\n1. **选的是「直连」**:直连模式下所有连接都从本地网络出去、不走代理,这是它的定义。想按规则分流,在「代理」页切回「规则」。\n2. **选的是「全局」**:全局模式下**所有**连接都走 `GLOBAL` 组当前选中的那一项,国内网站也一样,不经过任何规则——源码能确认的「开了全局国内变慢」的一个原因就是:国内网站也绕去了 `GLOBAL` 里选的节点(本条没有测速)。此时「代理」页只剩一张列表,就是内核里的 `GLOBAL` 组(页面上不一定显示这个组名,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes))。**想让国内网站直连**:切回「规则」。**想全部走代理**:在 `GLOBAL` 组里点一个节点。订阅里没写 `GLOBAL` 组时,内核自动生成的这个组排第一的是 `DIRECT`,没在里面选过节点,全局模式实际就是直连。Clash Verge Rev 默认开着「自动关闭连接」:切换模式时会关掉全部已建立的连接;在组里改选节点时,会关掉经过原来那个选项的连接,让它们按新设置重连。\n验证:misroute-exit-as-intended\n\n### fix-misroute-intercept\n1. 「连接」页里没有它,说明这个网站或程序的流量根本没交给 Clash Verge Rev,规则再怎么改也管不到它。官方说明并非所有程序都遵守系统代理,系统代理也代理不了 UDP 流量(比如游戏数据包);虚拟网卡模式则不依赖程序自己配合。所以:先打开「设置」里的「系统代理」,还是看不到它的连接,再开「虚拟网卡模式」(先系统代理、后虚拟网卡是作者的排查建议)。两者怎么开见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes),虚拟网卡开不了见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。流量进来之后走节点还是直连,仍然由「规则 / 全局 / 直连」和规则本身决定。\n验证:misroute-exit-as-intended\n\n### fix-misroute-prepend-rule\n1. 先看同一行的「链路」列,它写的是「组名 / 实际出口」。**命中的规则本身没错、只是那个组选错了**(比如该走代理的组选成了 `DIRECT`):在「代理」页(规则模式)找到这个组,改选一个节点——这会影响所有命中这个组的网站。有的组(负载均衡一类)在 Clash Verge Rev 里点了没有反应,这时改它上一级能手选的组,或者按下一步加前置规则直接指定出口。\n2. **是规则把它分错了**:到「规则」页,在搜索框输入「规则」列括号里的内容,看它排在第几行。规则从上到下匹配、命中第一条就停,所以排在前面的这条截走了它,后面写得再对也轮不到。\n3. 在「订阅」页右键正在用的订阅,选「编辑规则」,加一条**前置规则**。**先看这条连接的「主机」一栏**:只有 IP 加端口(形如 `x.x.x.x:443`)、没有域名时,按域名写的规则接不住它,改按 IP 地址范围(IP-CIDR)或进程名(PROCESS-NAME)加前置规则,做法见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule),本步下面的域名写法不适用。「主机」是域名时:「规则类型」选「匹配域名后缀 (DOMAIN-SUFFIX)」,「规则内容」填这个网站的域名后缀,「代理策略」选 `DIRECT`(要直连)或某个节点组(要走代理),点「添加前置规则」后保存。**域名后缀怎么填**:网址是 `www.example.com`,就填 `example.com`,它和它下面所有子域名都会命中;不要只填 `com`,那样所有 `.com` 网站都会被这条规则接走。官方说前置规则优先级最高、推荐把自定义规则放在这里,而且在订阅上编辑的规则不会因为更新订阅而失效。编辑器里每一项怎么填、按 IP 和按软件怎么加,见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)。\n验证:misroute-exit-as-intended\n\n### fix-misroute-ip-rule\n1. 「主机」一栏只有 IP,说明这个程序是直接按 IP 连的,连接里没有域名,**给它加域名规则没有用**。先看同一行的「链路」:最后一段是 `DIRECT`(显示成「组名 / DIRECT」或只有 `DIRECT`),说明它落到了兜底、而兜底走的是直连(或者最后没有任何规则接住它,比如这份订阅根本没有兜底),这就是「网页正常、它连不上」的直接原因;最后一段是某个节点却仍然连不上,作者的判断是问题多半不在分流,先换个节点试。下面三个办法任选一个,没有先后之分。\n2. **办法一:按 IP 加一条前置规则。**在「编辑规则」里加前置规则,「规则类型」选「匹配 IP 地址范围 (IP-CIDR)」,「代理策略」选节点组。「规则内容」要写成「地址段」,也就是「IP/前缀长度」:只针对连接页看到的那一个地址,就在它后面加 `/32`(看到 `x.x.x.x:443`,去掉冒号和端口,填 `x.x.x.x/32`)。只填 IP、不带斜杠,编辑器会提示「无效规则」、不让添加。带很多冒号的 IPv6 地址,「规则类型」改选「匹配 IP 地址范围 (IP-CIDR6)」,去掉最后的端口、后面加 `/128`。同时**打开「跳过 DNS 解析」开关**(它默认关着;打开后生成的规则末尾会带 `no-resolve`):按 IP 连的程序本来就带着 IP,不需要解析;不打开的话,这条排在最前面的规则会让每个按域名访问的网站都先在本地做一次 DNS 解析。**本条不提供 Telegram 的官方地址段**,只能照连接页看到的地址逐条补——程序换了地址就又不命中了,所以这是作者给的临时办法。\n3. **办法二:按进程名加一条前置规则。**「规则类型」选「匹配进程名称 (PROCESS-NAME)」,它不看域名也不看 IP。官方示例写的是 Windows 下的进程名 `Telegram.exe`;别的系统上进程名不同,要填你系统里的实际进程名,照连接页的「进程」列写。这一列在没有进程名规则时多半是空的,先照猜的名字加一条,之后的新连接就会显示内核认出的名字,再照着改正;macOS 上经代理端口进来的连接实测能认出进程名,Windows 和虚拟网卡模式下没有实测,细节见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)。加了之后,用下面的验证看「规则」列是否变成 `ProcessName(…)`。\n4. **办法三:改兜底组。**「链路」显示的是兜底组、它选了 `DIRECT` 时,在「代理」页把这个组改选成节点。这最省事,但会让所有没被规则接住的网站都走代理,包括订阅没写到的国内网站。\n验证:misroute-exit-as-intended\n\n### fix-misroute-match-target\n1. `Match` 是兜底规则:前面没有任何一条规则接住它,于是走兜底规则指向的那个组(订阅里常叫「漏网之鱼」「最终」之类)。看「链路」列就知道是哪个组、实际走了哪里。**这个组选了 `DIRECT`、而你希望没被规则接住的网站都走代理**:在「代理」页把这个组改选成节点。注意这会影响所有落到兜底的网站,包括你的订阅没有写到的国内网站。\n2. **只想改这一个网站**(比如国内网站落到兜底、走了节点):按上面「编辑规则」的办法给它加一条前置规则,「代理策略」选 `DIRECT` 或节点组。\n3. **想让国内网站成批直连**,不必一个个加:官方文档「常用配置示例」里「国内网站直连」一节给的写法是 `GEOSITE,cn,DIRECT`——在「编辑规则」里「规则类型」选「匹配 GeoSite 内的域名 (GEOSITE)」,「规则内容」填 `cn`,「代理策略」选 `DIRECT`,加成前置规则。同一节还有 `GEOIP,CN,DIRECT`(按 IP 所属国家);GEOIP 属于 IP 类规则,不打开「跳过 DNS 解析」开关时会让每个按域名访问的网站先做一次 DNS 解析。**本条没有实测这两类规则**,也没有核对它们依赖的数据文件在你的客户端里是否齐全;加完用下面的验证看「规则」列是否变成 `GeoSite(cn)`。\n验证:misroute-exit-as-intended\n\n### fix-misroute-add-rule\n1. 规则模式下「规则」列一片空白,表示这次连接最后没有落在任何一条规则上,内核直接走 `DIRECT`,日志里写 `doesn't match any rule using DIRECT`。这不一定是配置里没有兜底规则:命中规则的出口是 `PASS`、或者这次是 UDP 连接而命中规则的出口不支持 UDP 时,内核会跳过那条接着往下找,一路跳过到底也是这样(按源码,见 `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules))。所以先到「规则」页看最后一行是不是 `MATCH`。**已经有 `MATCH`**:看它的出口是不是 `PASS`,以及这次连接是不是 UDP、而 `MATCH` 指向的出口不支持 UDP;是这两种情况之一的,这棵树覆盖不了,带着「规则」页最后几行和这条连接的信息去问。**不是 `MATCH`**:这份订阅缺兜底规则,没写到的网站都会直连。办法是按「编辑规则」给这个网站加一条前置规则;要让所有没写到的网站都走代理,就加一条「匹配所有请求 (MATCH)」、选节点组的**后置规则**(它必须排在最后)。\n验证:misroute-exit-as-intended\n\n## 验证\n- **misroute-exit-as-intended**(人):让那个网站或程序重新连一次:网页关掉重开,程序退出再打开(作者建议:保存规则后是否会关掉已经建立的连接,本条没有核实,重开一次最稳)。再到「连接」页找到它的新连接;连接一闪就没的程序,要在它正在连的时候看。\n 预期:「连接」页里能找到它的新连接(原来怎么都找不到的,这次出现了,说明流量已经交给 Clash Verge Rev);「链路」列是你想要的出口:该直连的最后一段是 `DIRECT`,该走代理的显示「组名 / 节点名」;「规则」列是你刚加或刚确认的那条(用的是全局或直连模式的,这一列本来就是空白,不用看);原来连不上的网站或程序,现在能正常用。仍然不对,先看是不是下面三种,都不是再从第一问重走一遍:①「链路」「规则」都对了,程序还是连不上:看它别的新连接里还有没有落在 `DIRECT` 的,照同样的办法逐个补;它的连接都已经走节点了,问题多半不在分流(作者判断),先换个节点试,还不行就带着「链路」和程序的报错去问。②「规则」页里找不到你刚加的前置规则(比如只剩一条 `MATCH`):别再重复加,先看「全局扩展覆写配置」和这个订阅的「扩展覆写配置」里有没有顶层的 rules 列表,见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)。③「系统代理」和「虚拟网卡模式」都开了,还是找不到它的新连接:这棵树覆盖不了,把为排查新打开的开关恢复原样,带着程序名去问。改不动(比如「编辑规则」里保存失败)属于另一类问题,这棵树覆盖不了;但编辑器提示「无效规则」多半是格式问题,IP 规则要带 `/32` 这类前缀长度。\n 通过 → resolved;失败 → misroute-mode-is-rule;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n\n## 来源\n- cvr-guide-rules:https://www.clashverge.dev/guide/rules.html(1. 编辑订阅规则;3. 规则类型说明(从上到下匹配、DOMAIN-SUFFIX 匹配子域名、PROCESS-NAME 示例 Telegram.exe、MATCH 必须放在最后);5. 规则插入位置;常用配置示例(国内网站直连、应用分流);注意事项)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式(并非所有程序都遵守、不能代理 UDP);规则/ 全局 / 直连模式)\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(路由规则开头说明(从上到下匹配、UDP 继续向下);no-resolve 说明)\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(global 需要在 GLOBAL 策略组选择代理/策略))\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go(resolveMetadata 按模式分流 L401-L408、hosts 预解析 L331-L334、logMetadata L635-L652、match L654-L710);config/config.go L891-L897 与 L975-L989(自动生成 GLOBAL);adapter/outboundgroup/selector.go L103-L112(未选择时取第一项);rules/common/ipcidr.go、geoip.go、base.go(IP 类规则触发解析与 no-resolve);constant/metadata.go L270-L276(RuleHost);rules/common/domain_suffix.go、geosite.go;rules/common/final.go(MATCH 无条件命中);tunnel/statistic/tracker.go(连接表的 chains、rule、rulePayload);constant/rule.go(规则类型显示名))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src/components/connection/connection-row-view.ts(链路倒序以「 / 」连接、规则显示为 类型(内容)、主机显示为 地址:端口、进程列);src/hooks/use-connection-setting.ts(默认表格视图);src/components/connection/connection-table.tsx、connection-detail.tsx;src/pages/connections.tsx(搜索按主机、目标 IP、进程);src/pages/rules.tsx 与 src/components/rule/rule-item.tsx(行号);src/components/proxy/use-render-list.ts L261-L266(只有规则模式列出订阅里的各组,其余模式只取 GLOBAL);src/components/proxy/proxy-groups.tsx L626-L627(直连模式只显示「直连模式」);src/components/proxy/proxy-groups.tsx L465(只有手动选择、自动测速、故障转移三类组能点选);src-tauri/src/feat/clash.rs L102-L105 与 src-tauri/src/config/verge.rs(切换模式时关闭全部连接、自动关闭连接默认开);src/hooks/use-proxy-selection.ts L18-L22 与 L94(改选节点时只关经过原来那个选项的连接);src-tauri/src/config/clash.rs(默认 log-level info);src/locales/zh/layout.json(「日志」页);src/components/profile/rules-editor-viewer.tsx(L114-L124 IP-CIDR 与 IP-CIDR6 的校验,L273 与 L717-L726「跳过 DNS 解析」开关默认关,L561-L567 校验不过报「无效规则」、开关打开后追加 no-resolve);src/utils/network.ts L74-L86(isValidIpCidr 要求带斜杠);src/locales/zh/rules.json、profiles.json、connections.json(编辑规则、前置规则、字段名))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5(22e3f1a)逐文件对比:本条引用的 src/components/connection/、src/hooks/use-connection-setting.ts、use-proxy-selection.ts、src/pages/connections.tsx、rules.tsx、src/components/rule/rule-item.tsx、src/components/proxy/(use-render-list.ts、proxy-groups.tsx)、src-tauri/src/feat/clash.rs、config/verge.rs、config/clash.rs、src/utils/network.ts,以及 src/locales/zh/ 下的 layout.json、rules.json、profiles.json、connections.json 都没改;src/components/profile/rules-editor-viewer.tsx 只在 L684-L690 给「规则内容」输入框关掉了自动大写,前面的 IP 段校验(L114-L124)、「跳过 DNS 解析」默认关(L273)与「无效规则」校验(L561-L567)行号不变,开关本身顺延到 L724-L733)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/components/connection/connection-row-view.ts、connection-table.tsx、connection-detail.tsx;src/hooks/use-connection-setting.ts;src/pages/connections.tsx;src/pages/rules.tsx;src/components/proxy/use-render-list.ts;src/components/proxy/proxy-groups.tsx L453;src-tauri/src/feat/clash.rs L111-L112;src-tauri/src/config/verge.rs L431;src/hooks/use-proxy-selection.ts L14-L18 与 L103-L107;src/components/profile/rules-editor-viewer.tsx(L120-L130 IP-CIDR 与 IP-CIDR6,L269 与 L729「跳过 DNS 解析」开关默认关,L571-L577 校验与 no-resolve);src/utils/network.ts L74-L86;src/locales/zh/rules.json、connections.json)\n- tdesktop-repo:https://github.com/telegramdesktop/tdesktop/tree/fb2e33209517e1a34637d837bfadb3783f2fd59c(Telegram/SourceFiles/mtproto/mtproto_dc_options.cpp L31-L38(启动用的内置初始数据中心地址是 IP))\n- exp-rules-misroute-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-rules-misroute-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:b5966b4 2026-10-02\n"},"shadowrocket-first-run":{"id":"shadowrocket-first-run","type":"howto","title":"第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅","aliases":["小火箭第一次用","小火箭怎么添加订阅","小火箭添加订阅","小火箭更新订阅","小火箭选节点","Shadowrocket 添加订阅","Shadowrocket Subscribe","Shadowrocket 更新订阅","Shadowrocket 连通性测试","Shadowrocket 安装 VPN 配置文件","Shadowrocket 想添加VPN配置","Shadowrocket 全局路由","Shadowrocket 不能获取订阅节点","Shadowrocket 服务器 URL 遇到问题","Shadowrocket 无法连接服务器"],"primary_topic":"shadowrocket","topics":["shadowrocket","subscription-import","basics"],"intents":[],"applicability":{"client":["shadowrocket"],"os":["ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅\n\n主题:`客户端` › `Shadowrocket`\n适用:shadowrocket / ios / any\n最后验证:2026-10-01\n\nShadowrocket(小火箭)iPhone 版第一次用:从 App Store 装好 → 首次打开的剪贴板、通知两个系统框点「不允许」也不影响 → 首页右上角「+」,「类型」默认 Subscribe,在「URL」粘贴订阅链接、点「保存」 → 打开首页的连接开关,依次点「好」「允许」,可能要输锁屏密码 → 确认橙色圆点在你要用的节点上,「连通性测试」看延迟 → 用 Safari 打开网页确认。\n\n**订阅下载失败也会在列表里留下一行**,失败提示一两秒就消失(实测局域网订阅第一次保存时还没有提示),要展开看有没有节点;**开关开着不等于能上网**,选中不通的节点照样开着、没有提示(实测)。\n\n## 保存后弹出 ✕ 提示\n\n提示是一个白底小浮层,保存后一秒左右出现、四秒内自动消失;**失败的那一行照样加进首页列表**,标题和成功的一样都是订阅地址的主机名,只能靠下面一行的时间区分(实测)。失败的那行左滑点「删除」,核对后重新添加(作者建议)。实测见过的三种:\n\n- **「✕ 不能获取订阅节点」**:下载到了,但解析不出节点(作者判断)。实测订阅地址返回 sing-box 格式、空内容、一段不含节点的说明文字时都是这句;Clash 格式和通用订阅(分享链接)都能导入。先去服务商面板确认订阅没过期、重新复制链接;仍是这句,向服务商要 Clash 格式或通用订阅,格式区别见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)(作者建议)。\n- **「✕ 服务器 URL 遇到问题,请稍后再试。如果问题仍然存在,请关闭 VPN 连接并重试,或联系代理服务提供商。」**:实测订阅地址返回 404 时就是这句。先确认订阅没过期、链接复制全了(作者建议)。\n- **「✕ 无法连接服务器。」**:实测订阅地址那头没有服务在听、根本连不上时。先确认手机能上网,再核对链接(作者建议)。\n\n## 以后更新订阅\n\n**长按订阅那一行**,菜单里点「更新」:成功弹「✓ 成功」,订阅行下面的时间变成刚才的时刻(实测);下载失败时这个时间不变(实测看上去如此)。左滑同一行能看到「二维码」「删除」。\n\n新装好时「设置 → 订阅」里「打开时更新」「自动后台更新」都是关的(实测),所以**服务商换了节点,不手动更新 Shadowrocket 不会跟着变**。想让它自动更新,可以在那里打开(打开后的效果本站没测);它自己的说明写着重启手机或手动划掉 App 后后台更新就不再执行(实测界面文字,没等到它真正触发)。添加订阅后可能弹一个「确认 / 自动后台更新」框,实测点「取消」导入照常完成。\n\n## 适用范围与验证方式\n\nShadowrocket 2.2.92(build 3445)在一台 iPhone 12 mini、iOS 26.5、简体中文系统上按本文走过一遍,订阅来自本站的假订阅服务,Safari 经本机测试节点真正打开过网页;价格、系统要求按 App Store 商品页。Shadowrocket 闭源,本文只有实测和商品页。\n\n- 只测了一台手机、一个系统版本,没测 iPad;系统弹框只看了中文。\n- 订阅和节点都在局域网:实测保存订阅前还弹了「本地网络」授权框,订阅地址在公网时一般不会遇到;公网订阅没测。\n- 节点在本机,延迟数字和网页打不打得开都不代表真实线路;扫码、剪贴板导入、连接状态下更新、自动后台更新是否真按间隔触发都没测。\n\n## 步骤\n1. 从 App Store 安装 Shadowrocket。它是付费应用,iPhone 要求 iOS 13.0 或更高(按文档);**中国区商店查不到**,要用非中国大陆地区的账户,详见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)。\n 失败时 → escalate\n2. 第一次打开先弹两个系统框:「“Shadowrocket”想从…粘贴」(剪贴板授权)和「“Shadowrocket”想给你发送通知」。实测都点「不允许粘贴」「不允许」,之后照下面手动添加订阅、连接都不受影响(实测)。剪贴板这个框以后还会反复出现,比如从 Safari 切回来、打开「+」添加页时(实测)。没有引导页,关掉这两个框就直接到首页(实测)。\n 失败时 → escalate\n3. 首页右上角点「+」,进入「添加节点」页,「类型」**默认就是「Subscribe」**(订阅),不用改(实测)。在「URL」里粘贴服务商给你的订阅链接,其它选项保持默认(作者建议),点右上角「保存」(URL 为空时它是灰的)。订阅链接**等同于账号凭据,别发给别人、聊天助手或在线工具**。保存后首页多出一行,**标题是订阅地址的主机名**;**点一下这一行展开,看到节点列表才算下载成功**(实测)。**下载失败也会多出一行**,只是没有节点:多数时候同时弹一个一两秒就消失的「✕」提示,见正文「保存后弹出 ✕ 提示」;实测时订阅地址在局域网,第一次保存赶上系统的本地网络授权,那次没有任何提示,点一下这一行才重新下载成功(实测)。\n 失败时 → escalate\n4. 打开首页卡片最上面的连接开关(左边写着「未连接」)。第一次会先弹 Shadowrocket 自己的「安装 VPN 配置文件」说明框,点「好」;接着是系统框「“Shadowrocket”想添加VPN配置」,点「允许」;**可能会转到「设置」要求输入锁屏密码**,输完才算装上(实测)。装好、连上后,开关左边的「未连接」变成当前节点的名字(实测)。点完「允许」开关仍是「未连接」,就再拨一次开关,从说明框重走一遍(实测:第一次没装上,第二次输完密码才装上)。\n 失败时 → escalate\n5. 连上后先确认用的是哪个节点:**左边有橙色圆点的就是当前节点**,点另一行就换过去,开关左边的名字跟着变(实测)。点卡片里的「连通性测试」测延迟:通的节点显示毫秒数,不通的显示「超时」(实测)。这个测试默认是 TCP,实测只和节点建了一次连接,**有数字说明连得上节点,不保证网页打得开**(作者判断)。卡片里「全局路由」默认是「配置」(界面说明为「根据配置文件规则转发流量」),另有「代理」「直连」「场景」(实测),新手不用动(作者建议)。\n 失败时 → escalate\n\n## 验证\n- **sr-connected-check**(人):看首页开关是开着的、左边显示节点名,再用 Safari 打开一个不开代理时打不开的网页。\n 预期:网页能打开,就完成了(作者建议)。**开关开着不代表节点能用**:实测选中一个不通的节点,开关照样开着、没有任何提示,Safari 一直白屏,等了一分半左右也没出报错页(这一台手机、本机测试节点上的现象,别的节点和网络下可能不同);这时回首页换一个有毫秒数的节点。全都「超时」:先关掉开关,确认手机本身能上网,能上网就把节点名和截图交给服务商,贴之前遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- shadowrocket-appstore:https://apps.apple.com/us/app/shadowrocket/id932747118(开发者 Shadow Launch Technology Limited;价格 $2.99;Compatibility 一节:iPhone 要求 iOS 13.0 或更高、iPad 要求 iPadOS 13.0 或更高;页面没有写地区或账号要求。页面含评分数与用户评论,哈希会随之漂移;复核时只看价格、开发者、Compatibility 三处)\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:10cb9f6 2026-10-02\n"},"speed-test-failed":{"id":"speed-test-failed","type":"troubleshoot","title":"测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么","aliases":["能测延迟不能测速","测速度全是 0","测速全部是 0.0","测试速度 结果为 0","速度列显示跳过测试","测速文件地址","失败 EOF","测试连接 失败 EOF","io: read/write on closed pipe","电脑能用 手机测试连接失败","节点很多爆红","节点大片变红","Karing 延迟比其他软件高"],"primary_topic":"troubleshooting","topics":["troubleshooting","nodes-latency","v2rayn","v2rayng","karing"],"intents":[],"applicability":{"client":["v2rayn","v2rayng","karing"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-02","freshness":"current","markdown":"# 测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么\n\n主题:`排错`\n适用:v2rayn/v2rayng/karing / windows/macos/linux/android/ios / any\n最后验证:2026-10-02\n\nv2rayN 能测延迟,「测试速度」却是 0、0.0 或一串英文;v2rayNG「测试连接」显示「失败: EOF」,同一节点电脑能用、手机不行;Karing 节点大片变红——**先分清是哪种测试、哪一种红**:\n\n- **v2rayN「测试速度 (多选)」是下载测速**:先测一次真连接,通了才经节点下载「测速文件地址」里的文件。「跳过测试」是真连接没通;0、0.0、英文、一直「测试中...」多半是测速文件的问题,节点照样能用。\n- **v2rayNG「测试连接」**失败原文大多是同一句 `io: read/write on closed pipe`,分不出原因。电脑能用、手机不行,先查「跳过证书验证」,再查手机时间。\n- **Karing 的红有两种**:红色三角是没测通,红色数字是 1500 毫秒以上、其实通着。几乎全是红色三角,先看延迟检测地址。\n- 都对过了,带着显示的原文找服务方。\n\n延迟 -1 是什么意思见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning),全部节点 -1 见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n\n## 显示的字对应什么\n\n| 显示 | 实测时是什么情况 |\n|---|---|\n| v2rayN 速度列 `0`、`0.0` | 文件太小或下得太快;或慢到不足 0.05 MB/s |\n| v2rayN 速度列 `net_http_` 开头的英文 | 测速文件地址打不开(端口不通、404、域名解析不了) |\n| v2rayN 速度列一直「测试中...」 | 地址收下请求不回应;信息栏出了「测试完成」就是已停 |\n| v2rayN 速度列「跳过测试」、延迟 -1 | 节点不通,或「真连接测试地址」经节点打不开 |\n| v2rayNG「失败: io: read/write on closed pipe」 | UUID、path、传输方式、证书、端口、手机时钟不对,都是这一句 |\n| v2rayNG「失败: EOF」 | 只在 Trojan 密码错时出现 |\n| Karing 红色三角,弹框「连接超时」 | 测速地址打不开或慢过 15 秒,通的节点也这样 |\n\nv2rayN 在 Linux 虚拟机上测,v2rayNG、Karing 在安卓模拟器上测,节点服务端只用了 sing-box,换别的服务端原文可能不同。\n\n**Karing 延迟比别的客户端高?**本站对同一个测速目标测,Karing 与 v2rayNG 只差几毫秒,真实线路上是否偏高没有验证;各家默认测速地址不同,数字只适合在同一个客户端里比(作者建议)。\n\n## 适用范围与验证方式\n\nv2rayN 7.25.4、v2rayNG 2.2.6、Karing 1.2.25.2802,另按源码核对(Karing 只公开了部分源码)。Karing 在 iPhone 上只看过不通的节点显示红色三角;Windows、macOS 上的 v2rayN、真机都没测,数值不代表真实线路。\n\n## 取证\n- **stf-which-test**:测不出来的是 v2rayN「测试速度 (多选)」的「速度 (MB/s)」那一列吗?(是延迟失败、v2rayNG 或 Karing 的,选「失败」)\n pass → stf-not-skipped;fail → stf-is-test-conn;unknown → stf-is-test-conn\n- **stf-not-skipped**:速度列**不是**「跳过测试」吧?(是「跳过测试」、延迟列 -1 的选「失败」)\n pass → stf-other-url;fail → stf-delay-failed;unknown → stf-other-url\n- **stf-other-url**:「设置 → 参数设置」的「v2rayN 设置」页,把「测速文件地址」选回下拉第一项(cachefly 的 `50mb.test`),确定后再测:速度列出现大于 0 的数了吗?\n pass → stf-speed-url-bad;fail → stf-other-node;unknown → stf-other-node\n- **stf-other-node**:换几个别的节点再测,有节点测出来吗?\n pass → stf-node-side;fail → stf-unexplained;unknown → stf-unexplained\n- **stf-is-test-conn**:失败的是 v2rayNG 底部「已连接,点击测试连接」点出来的「失败:…」吗?(点启动后弹红色警告、一直「未连接」的也选「通过」;只是「测试配置真连接」-1 的选「失败」)\n pass → stf-ng-not-insecure;fail → stf-karing-triangle;unknown → stf-karing-triangle\n- **stf-ng-not-insecure**:点启动时**没有**弹「警告:将在 2026.8.1 移除跳过证书验证…」,节点类型那一行也没有 `insecure` 吧?(有其中一样的选「失败」)\n pass → stf-ng-clock;fail → stf-ng-insecure;unknown → stf-ng-clock\n- **stf-ng-clock**:手机开着「自动设置日期和时间」吗?(关着、手动拨过时间的选「失败」)\n pass → stf-other-node;fail → stf-ng-clock-off;unknown → stf-other-node\n- **stf-karing-triangle**:(Karing)红的是**红色三角**吗?(红色数字选「失败」;v2rayN、v2rayNG 的延迟 -1 选「无法判断」)\n pass → stf-karing-some-ok;fail → stf-karing-slow;unknown → stf-latency-elsewhere\n- **stf-karing-some-ok**:连着 VPN 时点「选择服务器」右上的闪电,还有节点显示数字吗?(全是红色三角选「失败」)\n pass → stf-karing-part-red;fail → stf-karing-all-red;unknown → stf-karing-all-red\n\n## 原因\n- **stf-delay-failed**(可能性 medium)→ 修复 stf-fix-delay-first\n- **stf-speed-url-bad**(可能性 high)→ 修复 stf-fix-speed-url\n- **stf-node-side**(可能性 medium)→ 修复 stf-fix-node-provider\n- **stf-unexplained**(可能性 low)→ 修复 stf-fix-report\n- **stf-ng-insecure**(可能性 medium)→ 修复 stf-fix-ng-insecure\n- **stf-ng-clock-off**(可能性 medium)→ 修复 stf-fix-ng-clock\n- **stf-karing-slow**(可能性 medium)→ 修复 stf-fix-karing-slow\n- **stf-karing-part-red**(可能性 high)→ 修复 stf-fix-karing-part\n- **stf-karing-all-red**(可能性 high)→ 修复 stf-fix-karing-url\n- **stf-latency-elsewhere**(可能性 medium)→ 修复 stf-fix-latency-elsewhere\n\n## 修复\n### stf-fix-delay-first\n1. 「跳过测试」是测速前那次真连接没测通,测速文件一次都没下(实测:节点不通,或「真连接测试地址」经节点打不开,都是这样)。先看同一页的「真连接测试地址」有没有被改过,改回下拉第一项;没改过的按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查节点。\n验证:stf-verify-speed\n\n### stf-fix-speed-url\n1. 是原来那个测速文件的问题,节点照样能用(实测这些情况下延迟都正常,各种显示见正文的表);太慢时只留下超时前的速度、不提示超时,时限是同一页的「测速单个超时值」,默认 10 秒。保留能测出数的地址即可(作者建议)。\n验证:stf-verify-speed\n\n### stf-fix-node-provider\n1. 只有这几个不行,多半是节点参数和服务端对不上或服务端的问题(实测 UUID、密码、path、传输方式、TLS 不一致时都失败,别的节点照常)。先更新订阅;仍不行,把节点名、客户端版本和显示的原文告诉服务方,**不要附上订阅链接、节点地址或口令**(作者建议)。\n验证:stf-verify-provider\n\n### stf-fix-report\n1. 带着对照结果找服务方:客户端和版本、点的是哪种测试、换过的测速地址和节点、显示的原文。贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和节点地址(作者建议)。\n验证:stf-verify-provider\n\n### stf-fix-ng-insecure\n1. 开了「跳过证书验证」的节点,v2rayNG 2.2.6 起不来,同一条链接在电脑上用 sing-box 能用(实测),v2rayN 7.25.4 也不写这一项(按源码)。机场节点向服务方要带证书指纹的节点;自建节点在「编辑配置」页点「获取并填充指纹证书」再保存(实测能修好自签证书的节点),它填的是当时连上的服务器的证书,只在信得过的网络里点(作者建议)。\n验证:stf-verify-test-conn\n\n### stf-fix-ng-clock\n1. 打开「自动设置日期和时间」再测。实测手机时钟偏 150 秒时 VMess 节点失败、显示「失败: io: read/write on closed pipe」,Shadowsocks 节点照常;偏 90 秒时还正常。\n验证:stf-verify-test-conn\n\n### stf-fix-karing-slow\n1. 红色数字是 1500 毫秒及以上,节点是通的,只是这一次慢(按公开的部分源码;实测 1600 毫秒的数字是红的)。800 毫秒以下是绿色。选数字小的节点用(作者建议)。\n验证:stf-verify-karing\n\n### stf-fix-karing-part\n1. 这几个节点没测通(实测参数对不上、端口没服务时是红色三角,iPhone 上也一样),换一个有数字的用,把红的节点名告诉服务方(作者建议)。三角原文是 `x509:` 的是证书校验没过:实测新手模式开着时自签证书的节点带了指纹也这样,原因没查清。\n验证:stf-verify-karing\n\n### stf-fix-karing-url\n1. 先看延迟检测地址:先断开 VPN,再关掉「新手模式」,「设置 → 延迟检测」才出现,默认 `www.gstatic.com/generate_204`(https)、超时 15 秒(实测)。地址打不开或慢过 15 秒时,通的节点也全变红色三角(实测),改回默认。**原来开着「新手模式」的,改回默认后把它重新打开,再连接、检测**:实测它关着时证书对不上的自签节点也显示数字(这时「设置 → TLS」里的「跳过证书验证」是开着的),关着时出现的数字不能当作修好。新手模式开回来、地址是默认的仍全红,按 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working) 用「网络检测」接着查。\n验证:stf-verify-karing\n\n### stf-fix-latency-elsewhere\n1. v2rayNG「测试配置真连接」全 -1 而「测试连接」成功的,把「真连接延迟测试网址」改回默认:测试连接会退到 google 再测,网址改坏了它照样成功(实测)。其余 -1 按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查。\n验证:stf-verify-latency\n\n## 验证\n- **stf-verify-speed**(人):回 v2rayN,对同一个节点再点「测试速度 (多选)」,等信息栏出现「测试完成」。\n 预期:「速度 (MB/s)」列出现大于 0 的数就好了。仍然没有,从第一问重走。\n 通过 → resolved;失败 → stf-which-test;无法判断 → escalate\n- **stf-verify-test-conn**(人):在 v2rayNG 里点启动,再点底部「已连接,点击测试连接」,然后打开平时要经代理才能打开的网页。\n 预期:显示「连接成功:延时 xx 毫秒」、网页能打开,就好了。仍然失败,把原文带给服务方。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **stf-verify-karing**(人):连着 VPN、「新手模式」恢复成原来的状态,在「选择服务器」右上点闪电重新检测,选一个显示数字的节点(数字小的优先),打开平时要经代理才能打开的网页。\n 预期:选中的节点显示数字、不是红色三角,网页能打开,就好了。仍然全是红色三角,按 `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working) 接着查。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **stf-verify-latency**(人):按上面处理后,在原来的客户端里重新测延迟。\n 预期:原来 -1 的节点出现毫秒数就好了。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **stf-verify-provider**(人):按服务方的答复处理后(例如更新订阅、换节点),在原来的客户端里重新做同一种测试。\n 预期:这次测出了数就好了:v2rayN 要「速度 (MB/s)」列大于 0,v2rayNG 要显示「连接成功」或毫秒数(不是 -1),Karing 要显示数字、不是红色三角;仍是 0、0.0、-1 或红色三角的不算。仍然不行,把这次的原文再告诉服务方。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n\n## 来源\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Services/SpeedtestService.cs L109-L111(「测试速度」走 RunMixedTestAsync、并发 1)、L431-L488(每个节点起一个测试内核,先测真连接,大于 0 才下载,否则速度列写跳过测试)、L515-L536(DoSpeedTest:用测速文件地址,时限取测速单个超时值、单位秒)、L550-L585(Tcping:只建一次 TCP 连接,5 秒);ServiceLib/Helper/DownloaderHelper.cs L57-L119(取最高速度、除以 1000×1000、格式 #0.0;结束时没有有效速度且无错误记 0,有错误写错误信息);ServiceLib/Services/DownloadService.cs L23-L51;ServiceLib/Global.cs L100(LocalFetch 5 秒)、L164-L173(测速文件地址预置项,第一项 cachefly 50mb.test 为默认)、L175-L183(真连接测试地址预置项);ServiceLib/Handler/ConfigHandler.cs L126-L139(测速单个超时值小于 10 时改为 10;地址为空时取第一项);ServiceLib/Handler/ConnectionHandler.cs L69-L106(真连接:GET 两次取较小,总时限 5 秒,任何异常为 -1);v2rayN.Desktop/Views/OptionSettingWindow.axaml.cs L50-L53(测速单个超时值 10–30);ServiceLib/Models/CoreConfigs/V2rayConfig.cs L324-L345(Xray 的 TLS 配置结构没有 allowInsecure,只有 verifyPeerCertByName、pinnedPeerCertSha256);ServiceLib/Resx/ResUI.zh-Hans.resx L501、L888、L918、L954、L957、L1098(测试速度 (多选)、速度 (MB/s)、跳过测试、测速单个超时值、测速文件地址、真连接测试地址))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/core/CoreServiceManager.kt L363-L400(测试连接:先用设置里的真连接延迟测试网址,失败再用 `www.google.com/generate_204`;失败时显示「失败:」加第二次错误信息里 \":之后的部分);core/CoreOutboundBuilder.kt L551(填了证书指纹就不写 allowInsecure);ui/MainRecyclerAdapter.kt L160-L166(列表显示 tls insecure);res/values-zh-rCN/strings.xml L124-L125(跳过证书验证的移除警告、获取并填充指纹证书)、L364-L368(连接成功:延时 %d 毫秒、失败:%s、已连接,点击测试连接))\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(公开的部分源码 lib/screens/common_widget.dart L82-L88(延迟小于 800 绿色、800–1499 普通文字色、1500 及以上红色);lib/app/modules/setting_manager.dart L1621-L1628(延迟检测地址预置项,第一项 `www.gstatic.com/generate_204` 为默认)、L1694(超时 15)、L1879-L1886(超时限制在 1–15 秒);lib/app/modules/server_manager.dart L1603-L1610(报错含 exceeded 或 timeout 时显示连接超时)。内核与延迟接口不在公开部分里)\n- exp-speed-test-v2rayn-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n- exp-speed-test-android-gui-2026-10-02:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n\n最后修订:7f3facf 2026-10-02\n"},"subscription-concept":{"id":"subscription-concept","type":"concept","title":"订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码","aliases":["订阅链接","机场订阅","订阅链接能分享给别人","订阅链接发到群里","订阅链接泄露","订阅被别人盗用","订阅链接给朋友一起用","订阅给家人用","同一个订阅链接换软件结果不同","订阅 User-Agent UA","订阅内容 base64 分享链接","订阅 Clash YAML sing-box JSON","订阅里的连接密码 UUID","订阅剩余流量 已用流量 到期时间 subscription-userinfo"],"primary_topic":"subscription","topics":["subscription","basics","safety"],"intents":[],"applicability":{"client":"any","os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-09-24","freshness":"current","markdown":"# 订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码\n\n主题:`基础概念` › `订阅`\n适用:any / any / any\n最后验证:2026-09-24\n标记:信息说明\n\n> 订阅链接就是一个网址,客户端从这里拉取节点,常常是一整份配置;服务方换了节点要重新拉取,v2rayNG 新建订阅默认不自动拉。按 Clash Verge Rev、v2rayNG 源码,拉取时靠的只是这个链接,不带你的面板账号;拉到的 ss、vmess、trojan、vless 节点都带着连接密码或 UUID。所以它相当于账号密码:拿到链接的人通常不用登录你的账号也能使用这些节点(服务方另有什么限制因服务方而异),不要外传。服务方可以按 UA 给不同软件下发不同格式,各客户端认的格式也不同,所以同一个链接换个软件,结果可能不同。\n\n订阅链接(订阅地址,服务方——俗称「机场」——给的那串 `http` 开头的地址)就是一个网址。把它填进 Clash Verge Rev、FlClash、v2rayNG、sing-box、Karing 这类客户端,客户端就去这个网址下载一份内容:里面是节点,常常还是一整份配置。服务方换了节点,要再下载一次才拿得到:手动点「更新」,或者由客户端按设定的间隔自动更新。sing-box 官方要求它的图形客户端默认每 60 分钟自动更新;v2rayNG 2.2.6 新建订阅时「启用自动更新」默认是关的,要手动点「更新订阅」,或者在「订阅分组设置」里把它打开。\n\n怎么导入:Clash Verge Rev 见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup),v2rayNG 见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run),FlClash(安卓)见 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run),v2rayN 见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)。\n\n- **把它当密码保管,别分享给别人,也别发到群里(作者建议)**。**这对你意味着**:别发群、别截图露出、别转给朋友或家人「一起用」,也别粘进在线订阅转换网站、聊天助手这类在线工具。它的作用相当于账号密码:在本站自建的测试订阅上实测,模拟两个互不相干的人拿同一个链接,都连上了同一个节点;真实服务方另有什么限制,本站未核实。\n- **同一个链接,换个软件结果可能不同**:服务方可以按 UA(请求头里的软件名)给不同软件下发不同格式(base64 分享链接、Clash YAML、sing-box JSON),各客户端认的格式也不一样。**这对你意味着**:A 软件能用、B 软件导不进去或者导进去是空的,可能是格式对不上;先按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 第一步确认订阅还有效(有的客户端在订阅被拒时给的提示和格式不对时一样),再按它查格式。\n- **订阅卡片上显示的已用流量、总量和到期时间是服务方给的数**(按 Clash Verge Rev、FlClash 源码),不是客户端自己统计的。Clash Verge Rev 首页「流量统计」里的上传量、下载量是另一组数,由这台设备上的内核自己统计,和订阅额度对不上是正常的。\n\n## 订阅里装的是什么\n\nsing-box 官方对远程配置的定义是:一份以某个网址为更新来源的配置;图形客户端必须支持自动更新(默认每 60 分钟)和 HTTP Basic 认证。Clash Verge Rev 的官方文档说,订阅服务方会看你用的是哪个代理工具,**下发不同的配置文件**,给 Clash Verge Rev 的应当是 YAML 格式的 mihomo 配置。\n\n常见的有三种格式:\n\n- **base64 分享链接**:解码后每行是一个节点的分享链接,开头写着协议名,比如 ss、vmess、trojan。v2rayNG 2.2.6 拿到订阅后,先按这种格式解析,不行再按未编码的分享链接、再按自定义配置解析。\n- **Clash YAML**:一份 mihomo 配置,端口、节点、代理组、分流规则都可以写在里面。实测 FlClash 存下来的就是以端口设置开头的整份 YAML。\n- **sing-box JSON**:同样是整份配置,实测 sing-box 官方安卓客户端(SFA)存下的除了四个节点,还有一个代理组和直连出口。\n\n**这对你意味着**:「订阅就是一份节点列表」对 base64 分享链接格式成立;Clash、sing-box 格式常常是整份配置,更新订阅可能连带换掉代理组和分流规则(作者据格式定义给的判断)。\n\n## 为什么订阅链接别给别人\n\n**客户端去下载时带了什么**:Clash Verge Rev 2.5.5 请求时带着 UA(默认 `clash-verge/v<版本>`,每个订阅可以单独改);如果链接本身带有 `名字:口令@` 这一段(它是链接的一部分,不是你的面板账号),就把它转成认证信息一起发出去。v2rayNG 2.2.6 同样带着 UA(默认 `v2rayNG/<版本>`)和 `Connection: close`,链接里带 `名字:口令@` 时也另加认证信息。**下载所需的一切都在链接里**,这两个客户端的请求里没有你的面板账号或设备信息。FlClash、SFA 的请求只核对了 UA(里面带着系统名或系统语言)。\n\n**下载下来的是什么**:mihomo 读节点时,ss、trojan 节点的连接密码就是条目里的 `password` 字段,vmess、vless 的是 `uuid` 字段,不需要别的账号信息。实测四个安卓客户端(v2rayNG、SFA、FlClash、Karing)导入同一个链接后,存下的格式各不相同,但都存着同一个 ss / trojan 测试密码和同一个 vmess 测试 ID。\n\n**拿去真能连上吗**:在 macOS 上用两个互不相干的 mihomo 内核实例导入同一个测试订阅(一个不看 UA、固定返回 Clash YAML 的测试地址;两个实例的配置目录和端口分开),两边拉到的内容逐字节相同,并且同时经同一个节点访问成功。对照组把其中一边的密码改错一个字符,节点端就报认证失败、访问不成功。\n\n**这对你意味着**:\n\n- 把订阅链接当密码对待:别贴到群里、论坛上,截图时也别露出来,别转给朋友、家人「一起用」;也别粘进在线订阅转换网站、聊天助手这类在线工具——对方要替你下载,就必须拿到这个地址(作者建议;在线转换另见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 的修复步骤)。\n- 已经外传的,去找给你开通订阅的服务方(不是转给你链接的朋友),问能不能让旧链接失效,并且连同节点密码一起更换(作者建议)。只换链接的话,已经导入过的设备上还存着旧密码,可能还能继续连:上面的实测里,每个导入过的客户端都在本机存下了同一份连接密码,连不连得上只看密码对不对(作者据实测给的推断)。服务方能不能区分是谁在用、限不限同时在线设备、换链接后怎么处理,都由服务方决定,这里没有核实。\n\n## 同一个链接,为什么换个软件结果不同\n\n**服务方可以靠 UA 认出你用的软件**:Clash Verge Rev 的官方文档说,订阅服务商会按请求头里的 UA 下发不同的配置文件;也有服务方改为给每种客户端单独一条链接。各客户端实际发出的 UA(实测):v2rayNG 是 `v2rayNG/2.2.6`;SFA 是 `SFA (sing-box 1.14.2; language en_US)`;FlClash 是 `FlClash/v0.8.98 clash-verge Platform/android`,里面带着 clash-verge 字样;Karing 的 UA 是一长串,同时写着 mihomo、clash-verge、ClashMeta、v2ray、sing-box 等多种标识。前三个与源码里的默认值一致。Karing 的订阅表单里也有一行说明:服务商会根据 UA 下发不同类型的订阅数据。\n\n**客户端认的格式也不同**。同一组节点分别做成三种格式,在安卓上实测:SFA 只收 sing-box JSON,另外两种报 `decode config` 错误(1.14.1 三种都测过,1.14.2 复测了 Clash YAML);三种里 v2rayNG 只认 base64 分享链接,另外两种都算作「失败」(按源码它还会尝试未编码的分享链接和自定义配置);FlClash 只收 Clash YAML,base64 报错,sing-box JSON 导入后没有节点;Karing 三种都收。\n\n把两者放在一起实测:一个按 UA 选格式的测试订阅地址,四个安卓客户端各自拿到自己认的格式,全部导入成功、都列出同样四个节点;其中 v2rayNG 与 SFA 换成一个固定返回 Clash YAML 的地址,v2rayNG 一个节点也没有,SFA 报错(FlClash、Karing 本来就能导入 Clash YAML,没有做这组对照)。\n\n**这对你意味着**:\n\n- 同一个链接 A 软件能用、B 软件不行,先当成格式问题,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查(它的第一步是先确认订阅还有效)。用 Clash Verge Rev 的,更新时报错、下载不下来看 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed);其它客户端导入或更新失败,先按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查。\n- 服务方给了按客户端分开的链接时,用对应的那一条(作者建议)。\n- Karing 这类 UA 里带多种标识的客户端,会拿到哪种格式取决于服务方怎么认 UA,这里说不准。各客户端用哪种内核见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept);各客户端认哪几种格式见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 里的对照表。\n\n## 订阅卡片上的流量和到期时间从哪来\n\nClash Verge Rev 2.5.5 与 FlClash v0.8.98 更新订阅时,从服务方响应里的 `subscription-userinfo` 头读出已上传、已下载、总量和到期时间,显示在订阅(配置)卡片上。Clash Verge Rev 首页「流量统计」卡片里的「上传量」「下载量」是另一组数,来自这台设备上内核的流量统计。\n\n**这对你意味着**:订阅卡片上的已用、总量、到期是服务方告诉客户端的,这组数不对要问服务方;首页的流量统计只算这台设备上内核经手的流量,和订阅额度对不上是正常的。v2rayNG、SFA、Karing 显示不显示这组数、从哪取,没有核对。\n\n## 这些结论是怎么核对的\n\n按 sing-box、Clash Verge Rev 官方文档与各客户端钉到 commit 的源码核对;在安卓模拟器上实际导入过 v2rayNG 2.2.6、SFA 1.14.1 与 1.14.2、FlClash v0.8.98、Karing 1.2.25.2802,在 macOS 命令行上用两个 mihomo 实例做过「同一链接两人使用」的连接实验。\n\n- 订阅端是本站自建的测试服务,不代表任何真实服务方怎样生成内容、怎样按 UA 分格式。\n- Clash Verge Rev 只核对了源码,没有在界面里导入;iOS、Windows 没有实际测试;流量与到期时间只读了源码。\n\n\n## 相关条目\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机`(见 when-to-update-subscription)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n\n## 来源\n- singbox-docs-clients-general:https://sing-box.sagernet.org/clients/general/(Profile → Remote:Remote Profile 以一个 URL 为更新来源;图形客户端必须实现自动更新(默认 60 分钟)与 HTTP Basic 认证)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(名词解释 > UA:订阅服务商通过请求头中的 UA 判断所用的代理工具,下发不同的配置文件;验证方法以返回 YAML 格式的 mihomo 配置为正确)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/utils/network.rs L165-L200(网址里的用户名、密码转成 Basic 认证头后从网址去掉,随后发 GET)、L244-L256(未设 UA 时默认 clash-verge/v<版本>);src-tauri/src/config/prfitem.rs L83(每个订阅可单独设 user_agent)、L290-L305(从 subscription-userinfo 响应头读 upload / download / total / expire);src/components/profile/profile-item.tsx L251-L258(订阅卡片用这组数算用量进度与到期日);src/components/home/enhanced-traffic-stats.tsx L160-L162、L228-L239(首页流量统计的上传量、下载量读内核推送的 upTotal / downTotal)与 src/hooks/use-traffic-data.ts L38(MihomoWebSocket.connect_traffic))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/util/HttpUtil.kt L154-L165(请求头为 User-agent,默认 v2rayNG/<版本>、Connection: close;网址带 userinfo 时另加 Basic 认证头)、L198-L210(从网址 userinfo 拼 Basic 认证头的函数);handler/AngConfigManager.kt L616-L625(parseConfigViaSub:先按 base64 解码后的分享链接解析,再按原文,最后按自定义配置);dto/entities/SubscriptionItem.kt L9-L10(autoUpdate 默认 false,updateInterval 1440 分钟);handler/SubscriptionUpdater.kt L47-L54、L65-L72(只在 autoUpdate 为 true 时排定时更新);V2rayNG/app/src/main/res/values-zh-rCN/strings.xml L304、L310、L316(「订阅分组设置」「启用自动更新」「更新订阅」))\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(lib/common/package.dart L8-L12(默认 UA 由 <应用名>/v<版本>、clash-verge、Platform/<系统> 三段组成);lib/models/profile.dart L179-L186(更新订阅时读 subscription-userinfo 响应头);lib/views/profiles/profiles.dart L271-L274(配置卡片显示订阅信息))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/outbound/shadowsocks.go L43-L49、trojan.go L45-L50(节点条目自带 password 字段)、vmess.go L53-L58、vless.go L58-L63(节点条目自带 uuid 字段);config/config.go L402-L454(RawConfig:mixed-port、proxies、proxy-providers、proxy-groups、rules 同在一份配置里))\n- sfa-src-fc21909:https://github.com/SagerNet/sing-box-for-android/blob/fc21909df7a3f0fc9435f3866fb6a4960711aa5f/app/src/main/java/io/nekohasekai/sfa/utils/HTTPClient.kt(L10-L17(拉远程配置的 UA:SFA (sing-box <版本>; language <系统语言>)))\n- exp-subscription-concept-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-subscription-concept-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-subscription-format-mismatch-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"subscription-format-mismatch":{"id":"subscription-format-mismatch","type":"troubleshoot","title":"订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上","aliases":["订阅导入成功但是没有节点","订阅格式不对","订阅格式和客户端不匹配","同一个订阅链接别的软件能用","手机 v2rayNG 能用电脑 Clash 不能用","通用订阅 Base64 订阅 Clash 订阅 sing-box 订阅的区别","订阅 UA User-Agent 下发不同格式","the remote profile data is invalid yaml","profile does not contain `proxies` or `proxy-providers`","decode config: invalid character looking for beginning of value: row 1, column 1","invalid character 'm' 'p' 'a' 'c' 'd' 's' looking for beginning of value","sing-box check FATAL decode config at invalid character","cannot unmarshal !!str into config.RawConfig","v2rayN 导入 Clash 订阅只多出一项 clash_custom","v2rayN 导入订阅内容失败","v2rayNG 更新订阅 0 个成功 1 个失败","FlClash 导入订阅没有节点","SFA sing-box 导入服务商订阅","Karing 导入订阅","订阅转换"],"primary_topic":"troubleshooting","topics":["troubleshooting","subscription-import","subscription","clash-verge-rev","flclash","v2rayn","v2rayng","sing-box","karing"],"intents":[],"applicability":{"client":["clash-verge-rev","flclash","v2rayn","v2rayng","sing-box","karing","shadowrocket"],"os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上\n\n主题:`排错`\n适用:clash-verge-rev/flclash/v2rayn/v2rayng/sing-box/karing/shadowrocket / windows/macos/linux/android/ios / any\n最后验证:2026-09-27\n\n**结论**:订阅不只一种格式。常见的三种:**Clash YAML 配置**(很多行「名字: 值」形式的文字,里面有 proxies、rules 这些词)、**一长串 base64**(一整段没有空格的字母和数字,解开是 vmess://、ss:// 这类分享链接,面板上常叫「通用订阅」)、以 `{` 开头的 **sing-box JSON**。每个客户端只认其中一部分;而且**有的订阅端还会按客户端报上去的身份(UA),给同一条订阅链接下发不同的内容**。所以导入订阅报 `invalid yaml`、`invalid character`、`cannot unmarshal !!str`,FlClash 导入成功却没有节点,或者手机 v2rayNG 能用、电脑 Clash Verge Rev 导同一条就不行,多半是订阅格式和客户端对不上。\n\n**这对你意味着**:节点多半没坏,但**先花一分钟登录服务商面板,确认订阅没过期、流量没用完**——订阅被停用时,有的客户端(比如 v2rayNG)给的提示和格式不对时一模一样。订阅正常,就在面板上换成当前客户端认的地址:Clash Verge Rev、FlClash 点 Clash(Meta)订阅;v2rayN、v2rayNG 点通用 / Base64 订阅;sing-box 官方客户端(安卓的 SFA,苹果的 SFI(iOS)/ SFM(macOS))点 sing-box 订阅。叫法以服务商说明为准。面板上没有这种地址,就换一个认这种格式的客户端。**不要把订阅地址交给在线订阅转换网站**,理由见修复步骤。\n\n## 怎么认出来:报错原文对照\n\n| 你看到的 | 客户端 | 说明拿到的是 |\n|---|---|---|\n| `the remote profile data is invalid yaml` | Clash Verge Rev | 不是一份 YAML 配置(解析不成「名字: 值」的结构):多半是 base64 列表,服务商返回的一行纯文字错误提示或网页也会这样(按源码) |\n| ``profile does not contain `proxies` or `proxy-providers` `` | Clash Verge Rev | 能解析、但里面既没有 `proxies` 也没有 `proxy-providers` 这两项:sing-box JSON、服务商返回的一段错误信息会这样(这两种按源码推断);这句报错本身在 Linux 版 2.5.6 的界面上实测见过,用的是一份既没有 `proxies` 也没有 `proxy-providers` 的 YAML |\n| ``yaml: unmarshal errors: … cannot unmarshal !!str … into config.RawConfig`` | FlClash | 整份内容只是一串文字:多半是 base64 列表(实测);服务商返回的一行纯文字错误提示也会是这句(推断,没有实测) |\n| `yaml: line 3: found unexpected end of stream`(行号会变) | FlClash | **不是格式不对**,是一份写坏了的 YAML(实测):内容本身有问题,把这句报错原文(不要带订阅链接)交给服务商 |\n| 没有报错、新增了一条配置,选中后底部没有「代理」页(英文界面叫 Proxies) | FlClash | sing-box JSON,或服务商返回的一段错误信息(实测,英文界面;中文页名按源码) |\n| `decode config: invalid character 'm' looking for beginning of value: row 1, column 1` | SFA(实测);苹果 SFI / SFM 按 1.14.1 源码走同一段校验 | 不是 JSON。引号里的字母就是内容的第一个字符,所以会变:实测 Clash YAML 以 `mixed-port` 开头时是 `m`,base64 第一条是 ss:// 时是 `c` |\n| `FATAL decode config at <配置文件路径>: invalid character …` | 命令行 sing-box | 同上一行(实测) |\n| 「更新了 0 个配置(0 个成功,1 个失败,…个跳过)」 | v2rayNG | **分不出是哪种**:订阅被拒(比如账户不可用时返回 403)、超时、证书错误,和拿到 Clash YAML / sing-box JSON,提示逐字相同(403 与 Clash YAML 是实测,其余按源码)。先按第一步去面板确认订阅可用 |\n| 信息栏先「获取订阅内容成功」,再「导入订阅内容失败」 | v2rayN | 拿到了内容,但一个节点都没解析出来:可能是它不认的格式,也可能是服务商返回的出错页面或错误信息。内容很短时 v2rayN 会把它原样打在信息栏里,先看一眼(按源码) |\n| 列表里只多出**一项**,名字是订阅分组的别名或 `clash_custom` / `singbox_custom` | v2rayN | 一整份 Clash 或 sing-box 配置,被当成一项「自定义配置」导入了(按源码) |\n\nv2rayNG 括号里「跳过」的个数会变:没有地址的默认分组和被停用的订阅都算跳过。\n\nv2rayN 只多出一项时,**这对你意味着**:按源码这一项会交给对应的内核整份运行,可能能用,但本站没有实测;它在列表里只是一项,没法逐个选节点、测速。想要正常的节点列表,换成通用订阅(作者建议),更多说明见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)。\n\n## 各客户端认哪几种\n\n| 客户端(版本) | Clash YAML | base64 分享链接 | sing-box JSON |\n|---|---|---|---|\n| Clash Verge Rev 2.5.2、2.5.6 | 认 | 不认 | 不认 |\n| FlClash 0.8.98 | 认 | 不认(报错) | 不认(导入成功但没有节点) |\n| v2rayN 7.24.9 | 不拆成节点:内容同时含 rules、-port、proxies 字样时,整份当成**一项**交给 mihomo 内核运行 | 认 | 带 inbounds 的完整配置整份当一项;只有出站的,按出站拆成几项 |\n| v2rayNG 2.2.6 | 不认 | 认 | 不认 |\n| SFA 1.14.1、苹果 SFI / SFM(按 1.14.1 源码) | 不认 | 不认 | 认 |\n| Karing 1.2.25.2802(安卓) | 认 | 认 | 认 |\n| Shadowrocket 2.2.92(iPhone) | 认 | 认 | 不认(没有节点,提示「不能获取订阅节点」) |\n\n- **Clash Verge Rev** 导入远程订阅时,内容必须能解析成 YAML 的「名字: 值」结构,而且要有 `proxies` 或 `proxy-providers`,否则报上表那两句;它不做 base64 或分享链接的转换。上表「认 / 不认」是按 2.5.2 与 2.5.6 源码核对的;界面上只在 Linux 版 2.5.6 实测过导入一份既没有 `proxies` 也没有 `proxy-providers` 的 YAML(按源码只查这两项在不在,`proxies` 写成空列表也能通过这一步):先提示「订阅导入失败,尝试使用 Clash 代理导入」,再报「导入订阅失败」和 `profile does not contain` 那一句。\n- **FlClash** 导入时只检查内容是不是合法的 Clash 配置结构,**不检查有没有节点**。所以 base64 列表会报错,而 sing-box JSON、面板返回的错误信息能「导入成功」,结果一个节点都没有。安卓版实测如此;命令行 mihomo 内核校验同样的内容,报错逐字相同,错误信息与 sing-box JSON 也都能通过。\n- **v2rayN** 的官方 wiki 写的是:订阅支持「协议标准格式或 v2rayN 内部格式」,也就是 vmess://、vless:// 这类分享链接,没有提 Clash 或 sing-box([v2rayN 订阅功能说明](https://github.com/2dust/v2rayN/wiki/Description-of-subscription/1e98189ad592b13a3a13bd4e5e7e757bee952a65),链接指向 wiki 仓库里这一页最近一次改动 1e98189 那一版,第 2、3 条)。源码里它先按 base64 与分享链接解析,都不成才把整段内容当「自定义配置」:依次试 Xray 配置、sing-box 配置;是网页就直接失败;再看是不是 Clash YAML(之后还会试 Hysteria2 的原生配置)。**所以「v2rayN 不认 Clash 订阅」不准确,准确的说法是它不会把 Clash 订阅拆成节点列表。**v2rayN 在 macOS 上会改系统代理,这次没有运行,这一行只按源码核对。\n- **v2rayNG** 订阅只认逐行分享链接(先试 base64 解码)、完整的 Xray JSON 配置和 WireGuard 配置文件,没有 Clash YAML 或 sing-box JSON 的分支;安卓实测两者都计为失败,base64 列表得到全部 4 个测试节点。\n- **sing-box 官方客户端**:sing-box 的配置只用 JSON,官方把「远程配置」定义为以 URL 为更新源的远程 **sing-box 配置**。安卓 SFA 与苹果 SFI / SFM 新建远程配置时都先下载、再按 sing-box 配置校验,校验不过就不创建(按 1.14.1 源码;苹果客户端的商店版对应哪一版源码没有核对)。**网上「SFA / SFI 会自动解析 Clash 订阅」的说法是错的**:SFA 实测导入 Clash YAML 与 base64 都报 `decode config: invalid character`,配置列表不新增;导入 sing-box JSON 正常。命令行 `sing-box check` 结果相同,只是报错前面多了 `FATAL decode config at <路径>`。\n- **Karing** 只公开了部分源码(缺不少它自己引用的文件,编不起来),这里只靠实测:安卓版三种格式都导入成功,各得到同样的 4 个节点。iPhone 版只实测过 sing-box JSON,能导入;其它格式与桌面版没有测过。\n- **Shadowrocket** 闭源,这里只靠 iPhone 上的实测:Clash YAML 与 base64 分享链接都导入成功,各得到同样的 4 个节点;sing-box JSON、空内容、一段不含节点的 YAML 都提示「不能获取订阅节点」,订阅行照样留在列表里、下面没有节点。\n\n## 为什么同一条链接,这个软件行、那个不行\n\nClash Verge Rev 官方文档对 UA 的解释是:它是请求头里的一个字段,**服务端用它判断客户端类型,从而做出不同的响应**。以开源面板 Xboard 为例:它先看链接里有没有 `flag` 参数,没有就看 UA,**按固定顺序逐个比对,先对上的为准**:sing-box 类(UA 里有 sing-box、hiddify、sfm)排在通用类(有 v2rayN、v2rayNG 等)前面,通用类又排在 Clash Meta 类(有 verge、flclash、meta 等)前面;对上 sing-box 类给 sing-box JSON,对上通用类给 base64 列表,对上 Clash Meta 类给 Clash Meta YAML,**哪个都对不上就回落到 base64 列表**。这只是一个面板的做法,你的服务商用的不一定是它。\n\n各客户端默认报上去的 UA(都可以在每条订阅里单独改):\n\n| 客户端 | 默认 UA | 来源 |\n|---|---|---|\n| Clash Verge Rev 2.5.2 | `clash-verge/v2.5.2` | 源码、实测 |\n| Clash Verge Rev 2.5.6 | `clash-verge/v2.5.6`(格式同上:`clash-verge/v` 加版本号) | 源码、实测(Linux 版) |\n| FlClash 0.8.98(安卓) | `FlClash/v0.8.98 clash-verge Platform/android` | 实测 |\n| v2rayN 7.24.9 | `v2rayN/7.24.9` | 源码 |\n| v2rayNG 2.2.6 | `v2rayNG/2.2.6` | 源码、实测 |\n| SFA 1.14.1 | `SFA (sing-box 1.14.1; language en_US)` | 实测 |\n| Karing 1.2.25.2802 | 一串同时声称自己是 mihomo、clash-verge、FLClash、v2ray、sing-box 等多个客户端的 UA | 实测 |\n\n**这对你意味着**:手机上的 v2rayNG 能用,说明这条链接给它的是 v2rayNG 认的内容(base64 列表或逐行的分享链接等,见上面「各客户端认哪几种」)。如果订阅端只会给 base64,或者认不出 Clash Verge Rev 的 UA、回落成了 base64,电脑上把同一条链接交给 Clash Verge Rev 就会报 `invalid yaml`——链接没抄错,只是拿到的格式不对。Karing 的 UA 里写了好几种客户端的名字,在 Xboard 上按上面的顺序会先对上 sing-box,拿到 sing-box JSON(按源码推断);Karing 三种格式都能导入,所以不影响使用。\n\n**一般不需要改 UA**,直接在面板上选对应格式的地址就行(作者建议)。想确认订阅端给 Clash Verge Rev 的到底是什么格式,按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 里「带 UA 自查」那一步做,那一步的命令不会把订阅链接留在命令历史里。\n\n## 格式对上了,还是不能用\n\n- 节点列出来了,但测速全部超时:看 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n- Clash Verge Rev 开着、却打不开网页:看 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)。\n- FlClash 选中配置后顶部出现红色横幅:那是内核拒绝了这份配置,看 `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)。\n- FlClash 报 `yaml: line …`:内容本身坏了,把报错原文(不要带订阅链接)交给服务商。\n\n## 进阶:Clash 系客户端用 base64 订阅的官方做法\n\n直接导入为订阅,Clash Verge Rev 与 FlClash 都不收 base64 列表。但 mihomo 官方文档写明,**代理集合(proxy-providers)的内容可以是 YAML、逐行分享链接或 base64**,三种不能混在同一个文件里;内核源码也是这样处理的:代理集合按 YAML 解析失败时,改按 base64 与分享链接解析。实测把同一份 base64 列表交给 mihomo 内核:当主配置被拒,当代理集合能解析出节点并实际转发。\n\n这需要你自己写一份本地配置、在里面引用订阅地址,写法见 [mihomo 官方文档「代理集合内容」](https://wiki.metacubex.one/config/proxy-providers/content/)。**作者建议**:不熟悉 Clash 配置的,还是按修复步骤换订阅地址或换客户端。\n\n## 这些结论是怎么核对的\n\n标「实测」的,是在 Android 16 模拟器上跑 FlClash、v2rayNG、SFA、Karing,以及在 macOS 上跑命令行 sing-box 与 mihomo、读 Clash Verge Rev 2.5.2 拉订阅时的 UA,以及在 Linux 虚拟机里用 Clash Verge Rev 2.5.6 导入一份既没有 `proxies` 也没有 `proxy-providers` 的订阅得到的;标「按源码」的只读了源码。\n\n- Clash Verge Rev 除上面那一次导入之外的界面,v2rayN、FlClash 桌面版、苹果 SFI / SFM 的界面,以及 Windows / Linux 上的 sing-box 都没有运行过,界面字样可能和表里略有不同,按意思对照;对不上就把报错原文(不要带订阅链接)交给服务商。\n- 订阅端是本机的测试服务;安卓客户端只看了导入结果,没有连 VPN 验证能否上网(代理集合的转发另在命令行 mihomo 上测过)。\n\n## 取证\n- **sfm-content-downloaded**:订阅本身可用、客户端也拿到了内容吗?两件都要是:① 登录服务商面板看过,订阅没过期、流量没用完、账户正常;② 客户端报的不是连不上、超时、证书不受信任、403 / 404 这类网络或 HTTP 错误,v2rayN 信息栏也不是「无效的订阅内容」(那表示什么都没取到)。**用 v2rayNG 的只按 ① 作答**:它的「0 个成功,1 个失败」在订阅被拒(403)和格式不对时逐字相同(实测),超时、证书错误也是这一句(按源码),所以这句提示证明不了它拿到了内容;面板正常只说明订阅本身可用,下一问里这句提示同样不能当作格式不对的证据。两件都是选「是」,有一件不是选「否」,登录不了面板、判断不了的选「不确定」\n pass → sfm-format-accepted;fail → sfm-download-failed;unknown → escalate\n- **sfm-format-accepted**:拿到的格式是当前客户端认的吗?(你看到的报错原文或现象对得上下面「怎么认出来」表里的某一行,就是**不认**;只有 FlClash `yaml: line …` 那一行例外,那是内容本身坏了、不是格式不对,选「认」。v2rayN 里只多出一项、名字是订阅分组的别名或 clash_custom / singbox_custom,也算不认:它把整份配置当成了一项,没有节点列表。v2rayNG 只看到「0 个成功,1 个失败」那一句的,这句分不出是哪种原因,选「无法判断」)\n pass → escalate;fail → sfm-matching-link-offered;unknown → escalate\n- **sfm-matching-link-offered**:服务商有没有给出当前客户端能用的那种订阅地址?(面板上常见「通用 / Base64 订阅」「Clash 订阅」「sing-box 订阅」或「一键导入到某某客户端」这类按钮,叫法各家不同;服务商的使用说明里通常也会写哪个客户端用哪个。拿不准就问服务商)\n pass → sfm-wrong-link-for-client;fail → sfm-no-format-for-client;unknown → escalate\n\n## 原因\n- **sfm-download-failed**(可能性 medium)→ 修复 sfm-fix-download-first\n- **sfm-wrong-link-for-client**(可能性 high)→ 修复 sfm-fix-use-matching-link\n- **sfm-no-format-for-client**(可能性 medium)→ 修复 sfm-fix-switch-client\n\n## 修复\n### sfm-fix-download-first\n1. 先登录服务商面板,看订阅是否过期、流量是否用完、账户是否可用;然后从面板**重新复制一次完整的订阅地址**再导入。有的面板对不可用的账户直接返回空内容和 403(开源面板 Xboard 的源码就是这样写的)。多数客户端这时报的是下载失败;**v2rayNG 例外**,它这时的提示和格式不对时一模一样(实测),所以用 v2rayNG 的更要先做这一步。**这对你意味着**:这一步的问题出在订阅本身或网络,换订阅格式、换客户端都没用。面板上一切正常、重新导入后 v2rayNG 仍是那句「0 个成功,1 个失败」的,这句提示本身还是分不出原因(超时、证书错误、格式不对都是它):回到第一步选「是」,第二问只凭这句提示答不了就选「无法判断」,带着面板状态和这句提示原文(不要带订阅链接)去问服务商。用的是 Clash Verge Rev 的,下载失败的几种提示按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 逐条查。\n验证:sfm-nodes-listed\n\n### sfm-fix-use-matching-link\n1. 在面板上复制**对应当前客户端**的那条订阅地址:Clash Verge Rev、FlClash 用 Clash(或写 Clash Meta / mihomo)订阅;v2rayN、v2rayNG 用「通用 / Base64 / V2Ray」订阅;sing-box 官方客户端(安卓 SFA、苹果 SFI / SFM)用 sing-box 订阅。**按钮叫法各家不同,以服务商说明为准。**只有一条「自适应 / 智能」地址的,订阅端多半是按客户端报上去的 UA 决定给哪种(见正文「为什么同一条链接」一节),在当前客户端里重新导入这一条就行。有的面板支持在地址后加参数选格式,**只在服务商说明里写了时才这样做**。\n2. 用新地址重新导入(v2rayNG、v2rayN 是在订阅分组设置里把地址换掉再「更新订阅」)。**等新导入的这条列出了你的节点(按下面的验证看),再删掉原来那条导入失败或没有节点的订阅**:FlClash 会把没有节点的内容照样存成一条配置(实测),不删的话以后容易误选到它。Clash Verge Rev 里原来那张卡片的「编辑规则」「编辑代理组」「编辑节点」、扩展覆写配置、扩展脚本是它自己的文件,删卡片会连同它们一起删掉,新卡片上也没有(按源码,见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)):这几样里自己改过的、以及用「编辑文件」直接改过旧卡片的,先按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)抄到新卡片的对应位置,在新卡片的「查看运行时订阅」里核对都在了再删;分不清的先留着旧卡片。\n验证:sfm-nodes-listed\n\n### sfm-fix-switch-client\n1. 服务商只给一种格式时,换一个认这种格式的客户端(对照正文「各客户端认哪几种」):只有 base64 分享链接的,用 v2rayN(电脑)或 v2rayNG(安卓);只有 Clash YAML 的,用 Clash Verge Rev(电脑)或 FlClash;只有 sing-box JSON 的,用 sing-box 官方客户端。Karing 安卓版三种都实测导入成功(iPhone 版只测过 sing-box JSON);Shadowrocket(iPhone)实测认 Clash YAML 与 base64,不认 sing-box JSON。**这是作者按上表给的对应关系,不是某个客户端官方的推荐。**\n2. **不要把订阅地址交给在线订阅转换网站**:对方要替你下载订阅,就必须拿到这个地址,而订阅地址就相当于你的账号。v2rayN 自带的「订阅转换目标类型」也是这样工作的——一填上值,它就把你的订阅地址编码后拼进第三方转换服务的链接,由对方去下载(按 v2rayN 7.24.9 源码);界面上写着「不需要转换时请留空」,保持留空即可。会自己写 Clash 配置的进阶用户另有一条官方支持的路,不需要转换:把 base64 订阅写成本地配置里的 proxy-providers(代理集合),见正文「进阶」一节。\n验证:sfm-nodes-listed\n\n## 验证\n- **sfm-nodes-listed**(人):按你用的客户端看节点,**看的得是刚导入或刚更新的这一条**,别的订阅里有节点不算:Clash Verge Rev 先在「订阅」页点一下刚导入或刚更新的这张卡片,让它成为正在使用的配置(见 `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)),再看「代理」页;FlClash 选中这条配置后看底部有没有「代理」(英文界面叫 Proxies)页;v2rayNG 看这个订阅分组;v2rayN 点节点列表上方这个订阅的分组标签(标签名是你起的别名),不要看第一个标签「所有」(按源码);Karing 在「我的配置」里找到这一条,名称后面标着方括号里的数字(实测导入 4 个节点时是 `[4]`),展开能看到节点(安卓实测);Shadowrocket 在首页点一下这条订阅行展开,下面列出节点才算(iPhone 实测);SFA / SFI / SFM 看配置有没有创建成功,再确认里面有你的节点(SFI、SFM 按源码)。\n 预期:列出了你的节点。sing-box 客户端(SFA / SFI / SFM)**只看到配置创建成功还不够**:创建前的校验只查是不是合法的 sing-box 配置(按源码),一份只有日志段和一个直连出站、没有任何代理节点的配置,命令行 sing-box 实测也能通过同样的检查;要确认这份配置里有你的节点,确认不了的,选「无法判断」。v2rayN 里只有一项、名字是分组别名或 clash_custom / singbox_custom 的,**不算**列出了节点。v2rayNG 的分组标签上的数字更新后不会马上刷新,实测要重开应用才变——看分组里的内容,别只看标签上的数。**不要拿「网页能打开」当证据**:实测 mihomo 内核在代理集合一个节点都没解析出来时,选择组里只剩内核自动补上的直连项,网页照样能开,但流量没经过任何节点。**按某个修复做过一次、回来还是同样的报错或同样没有节点的,别再重复同一个修复**:回到第一问时报的仍是连不上、超时、证书、403 / 404 这类下载错误的,第一问选「不确定」;已经按第三问换过对应格式的地址、或者已经换过客户端的,第三问选「不确定」。然后带着报错原文(不要带订阅链接)去问服务商。\n 通过 → resolved;失败 → sfm-content-downloaded;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `iPhone 小火箭、Karing 已连接、节点测试有数字却打不开网页,或开着代理收不到推送`(见 ios-connected-no-internet)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 Karing(安卓):首次向导、导入订阅、连接并允许 VPN、选节点`(见 karing-android-first-run)\n- `第一次用 Shadowrocket(小火箭,iPhone):添加订阅、安装 VPN 配置、选节点、更新订阅`(见 shadowrocket-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机`(见 when-to-update-subscription)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- exp-shadowrocket-first-run-gui-ios-2026-10-01:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(UA 小节)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/config/prfitem.rs L382-392(导入远程订阅时按 YAML 映射解析、再查 proxies / proxy-providers);src-tauri/src/utils/network.rs L274-282(默认 UA))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/config/prfitem.rs L360-L363(与 v2.5.2 相同:按 YAML 映射解析、再查 proxies / proxy-providers);src-tauri/src/utils/network.rs L247-L253(默认 UA clash-verge/v 加版本号))\n- xboard-src-4f48e61:https://github.com/cedar2025/Xboard/tree/4f48e61a2cbc6db5338872b6bdb45ef954ec1256(app/Http/Controllers/V1/Client/ClientController.php L46-48(账户不可用返回空内容与 403)、L61-67 与 L148-150(按 flag 参数或 User-Agent 选格式,匹配不上回落到 General);app/Support/ProtocolManager.php L34-47(按文件名 glob 收集格式类)、L100-124(倒序逐个比对,先匹配到的为准);app/Protocols/General.php、ClashMeta.php、SingBox.php 的 flags)\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Handler/ConfigHandler.cs AddBatchServers L2040-2110、L1718-1784 自定义配置分支(Xray → sing-box → 出站片段 → 网页判失败 → Clash → Hysteria2);Handler/Fmt/ClashFmt.cs L5-21;Handler/Fmt/SingboxFmt.cs;Handler/SubscriptionHandler.cs L124-146(订阅转换)、L188-217(提示;内容短于 99 字符时原样显示);Services/DownloadService.cs L251-255(默认 UA);ViewModels/ProfilesViewModel.cs L395-401(节点列表上方的分组标签:第一个是「所有」,其后是各订阅);Resx/ResUI.zh-Hans.resx L309-310(LvRemarks = 别名)、L384-385(AllGroupServers = 所有))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/handler/AngConfigManager.kt updateConfigViaSub L527-606(地址无效、两次下载都失败或为空、解析出 0 个,都记为 1 个失败)、parseConfigViaSub L616-624、parseCustomConfigServer L388-395;util/HttpUtil.kt L146-195(非 2xx 响应抛异常,L190)、L154-158(默认 UA))\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(core/hub.go L98-107(导入时只做 YAML 结构解码);lib/models/profile.dart L179-210;lib/common/l10n_labels.dart L11 与 arb/intl_zh_CN.arb L7(Proxies 页中文名为「代理」))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(adapter/provider/provider.go L384-394(proxy-provider 解析 YAML 失败时改按 base64 / 分享链接解析);config/config.go L606-618(主配置))\n- mihomo-docs-provider-content:https://wiki.metacubex.one/config/proxy-providers/content/(代理集合内容:YAML / uri / base64 三种写法)\n- singbox-docs-configuration:https://sing-box.sagernet.org/configuration/(Configuration:sing-box uses JSON for configuration files)\n- singbox-docs-clients-general:https://sing-box.sagernet.org/clients/general/(Profile Types → Remote)\n- singbox-src-1-14-1:https://github.com/SagerNet/sing-box/tree/1ac1a339cb1223e9c70eae14c44411c75033c02d(cmd/sing-box/cmd_run.go L61-64(命令行:decode config at <路径>);experimental/libbox/config.go L42-48(图形客户端:decode config))\n- sfa-src-a3668ae:https://github.com/SagerNet/sing-box-for-android/tree/a3668ae6e4bbcb3ceff8461d0cac55d79edf504f(app/src/main/java/io/nekohasekai/sfa/compose/screen/configuration/NewProfileViewModel.kt L302-304;utils/HTTPClient.kt L10-16(UA))\n- sfi-src-2b1763a:https://github.com/SagerNet/sing-box-for-apple/tree/2b1763a80f2c1dee1ab3ac62d84dbda7dc5178f4(ApplicationLibrary/Views/Profile/NewProfileViewModel.swift L148-155;Library/Database/Profile+Update.swift L6-17)\n- exp-subscription-format-mismatch-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-subscription-format-mismatch-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-v2rayng-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-macos-cvr-singbox-2026-09-22:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-karing-android-2026-09-22:验证记录(内部存档,未公开)\n\n最后修订:094c013 2026-10-01\n"},"subscription-update-failed":{"id":"subscription-update-failed","type":"troubleshoot","title":"Clash Verge Rev 订阅导入失败、更新失败","aliases":["订阅更新不了","更新订阅报错","订阅更新失败","导入订阅报错","导入订阅失败","订阅链接导入失败","订阅链接导入不进去","订阅创建失败","failed to fetch remote profile","failed to fetch remote profile with status 401 Unauthorized","订阅 403 Forbidden","订阅 404 Not Found","订阅 502 Bad Gateway","订阅 Connection refused","订阅 operation timed out","订阅 error sending request for url","client error(Connect)","invalid peer certificate UnknownIssuer","CaUsedAsEndEntity","static webpki roots fallback failed after platform TLS verifier failed","Subscription server uses legacy TLS; only TLS 1.2/1.3 is supported. TLS 1.0/1.1 is insecure","the remote profile data is invalid yaml","profile does not contain proxies","2.4.1 订阅重定向 301","允许无效证书(危险)","failed to put configs with status \"401\""],"primary_topic":"troubleshooting","topics":["troubleshooting","subscription","subscription-import","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 订阅导入失败、更新失败\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 导入订阅链接失败(提示「订阅导入失败,尝试使用 Clash 代理导入」「使用 Clash 代理导入订阅失败」或「导入订阅失败」)、右键「更新」订阅失败(提示「使用 Clash 代理更新失败」),不论是下载不下来、还是下载后出现 `test failed`,也包括浏览器能打开链接、客户端却不行,先看提示里的英文,对照下面找第一步:\n\n- **右键「更新」只提示 `failed to fetch remote profile`,后面没有数字**:客户端把原因省略了。到「订阅」页顶部的「订阅文件链接」框粘贴同一条订阅链接,点「导入」,看提示后面那串英文,再对照下面几行(万一这次成了、多出一张卡片,只删新的那张,分不清就都留着)。\n- **有 `with status` 加三位数字**(`401 Unauthorized`、`403 Forbidden`、`404 Not Found` 等):订阅服务器没给配置(`502`、`503`、`504` 且链接是 http 开头的除外,见下文)。3 开头、用的是 2.4.1 的,升级客户端;其余先登录服务商面板看订阅是否过期,再重新复制链接导入(会多出一张新卡片,见修复步骤)。\n- **有 `invalid peer certificate`**(例如 `UnknownIssuer`):证书没通过校验。先换个网络(比如手机热点)再导入一次对照。\n- **有 `Subscription server uses legacy TLS`**:订阅服务器太旧,只能找服务商。\n- **末尾是 `Connection refused`、`operation timed out` 这类**:连不上订阅服务器,先确认网络和节点能用。\n- **有 `the remote profile data is invalid yaml` 或 `profile does not contain`**:下载到了但不是 Clash 配置,先确认订阅没过期,再按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 换对应格式的链接。\n- **有 `test failed`**:配置没通过内核校验,看 `test failed` 前面那一行写的原因;修好之前先别重启(见下文)。\n- **没有任何报错,只是「代理」页没有节点**:先确认「订阅」页里这张卡片是选中的(见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)),还是没有,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查。\n\n**导入失败的两条提示是什么意思。** 从「订阅文件链接」框导入失败时,先弹「订阅导入失败,尝试使用 Clash 代理导入」;再失败,2.5.2 弹「使用 Clash 代理导入订阅失败」,2.5.5、2.5.6 弹「导入订阅失败」,后面都跟着「导入订阅失败: 」和一长串英文(按源码;Linux 版 2.5.6 导入一份既没有 `proxies` 也没有 `proxy-providers` 的订阅时实测是这两条)。意思是第一次导入没成功(可能是下载失败,也可能是下载下来了、但没通过格式检查,上面那次实测就是后者),客户端又经 Clash Verge Rev 自己的代理(按你当前的节点和规则走)试了一次,也失败了——不是说你用的不是 Clash。**那串英文是第二次的原因**,和第一次不一定相同:第二次卡在代理这一侧时(比如节点不通),它说的是代理的问题,不是订阅服务器的问题。用「新建」建远程订阅时,对应的提示是「订阅创建失败,尝试使用 Clash 代理创建」。\n\n**右键「更新」失败**时提示「使用 Clash 代理更新失败」,后面只有订阅名和最外层一句:状态码看得到,其余原因(证书、连不上、超时)都只剩 `failed to fetch remote profile`。2.5.5、2.5.6 在日志「[订阅更新] 直接更新失败:」那一行后面能看到完整原因(按源码,日志在哪见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs));2.5.2 对应的「[订阅更新] 正常更新失败:」日志只有最外层一句,按上面第一条重新导入。**自动更新下载失败时不弹提示**,只写日志(按源码,2.5.2、2.5.5、2.5.6 都只在手动更新时才为下载失败弹提示),怀疑订阅没更新,就手动右键「更新」一次看提示。下载成功、但这是正在用的订阅而新配置没能交给内核的,自动更新也会弹提示,2.5.5、2.5.6 写的是「订阅已保存,但未能确认已应用到内核: …」(按源码,这种情况见下面「配置没通过内核校验」那一条与 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found))。\n\n- **sub-server-rejected-request**(订阅服务器拒绝或出错):报错里有 `failed to fetch remote profile with status` 加状态码。客户端只显示状态码:实测测试服务回 401、403、404 时都写了一行说明,日志里的报错一个字都没有,界面上的提示按源码是同一句。为什么被拒只有服务商知道。例外是 `502`、`503`、`504` 且订阅链接开头是 http 不是 https:经 Clash Verge Rev 自己的代理那一次,节点连不上时内核会自己回 `502 Bad Gateway`(按内核源码,未实测),这时不是订阅服务器的问题,要看日志里第一次尝试的那一行(见取证)。\n- **sub-server-cert-untrusted**(证书不受信任):原因的最后一行是 `invalid peer certificate …`。实测两张自签证书,一张报 `UnknownIssuer`、一张报 `CaUsedAsEndEntity`;证书不受信任、同时也不是这个域名的,报的还是同一句,不会单独说域名对不上。完整报错里常见的 `static webpki roots fallback failed after platform TLS verifier failed` 本身不说明原因是证书:第一次失败的原因里只要提到 TLS、证书这类字样,客户端就会换一套程序内置的根证书再试一次,这一句只说明换过、又失败了;最后一行是别的(例如握手中断),按「连不上」处理。**这对你意味着**:证书不受信任时,客户端没法确认连上的就是订阅服务器——可能是服务商证书没配好,也可能是网络中间有人冒充,报错分不出这两种。官方给的绕过办法是勾选「允许无效证书(危险)」,代价见修复步骤。\n- **sub-server-legacy-tls**(订阅服务器的 TLS 太旧):订阅服务器只会 TLS 1.0/1.1,客户端只支持 1.2/1.3。按源码,导入时只弹这一句(2.5.5、2.5.6 前面带「导入订阅失败」),不会先提示经 Clash 代理重试;实测这种情况不会换内置根证书重试。\n- **sub-server-unreachable**(连不上订阅服务器):实测 2.5.2 连接被拒时不到一秒就报错,末尾是 `Connection refused`;服务器一直不回应时,一次尝试等 20 秒报 `operation timed out`。导入会试两次、右键「更新」会试三次,所以最终提示要等得更久;20 秒是默认值,可以在「编辑信息」里改「HTTP 请求超时」。说连接被重置、域名解析失败、握手中断的其他写法没有实测,也按这一支处理。\n- **sub-not-clash-config**(下载到的不是 Clash 配置):格式对不上的完整排查见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。服务商按请求里的 UA 判断你用的是哪种客户端,下发不同的配置;Clash Verge Rev 默认发的 UA 是 `clash-verge/v版本号`,实测 2.5.2 每次下载都是 `clash-verge/v2.5.2`,Linux 版 2.5.6 是 `clash-verge/v2.5.6`。拿回来的内容不是 YAML,或者里面没有节点(`proxies`)也没有节点集(`proxy-providers`),客户端就拒收;服务商对过期或停用的账户返回的一段文字或网页,也会这样被拒收。\n- **sub-config-rejected-by-core**(配置没通过内核校验):下载成功后,如果这是正在用的订阅,客户端会重新生成配置并用内核校验,不通过就报错,新配置不会交给内核;内核解析配置出错时,校验输出里带 `test failed`。这时新下载的内容已经存进了这个订阅,之后打开「虚拟网卡模式」同样会校验失败,那一侧按 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working) 排查。正在运行的还是旧配置,一切照常;**修好之前先别重启 Clash Verge Rev**:按源码,启动时校验不通过会退回没有节点的默认配置(`not found` 的情形实测过,见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found))。\n\n**官方 FAQ「导入订阅报错 401」那一节说的不是订阅服务器。** 它配图上的报错是 `failed to put configs with status \"401\"`:这是客户端往自己的内核推送配置被拒(按 2.1.2 的源码),跟订阅服务器回 401 不是一回事,2.5.2、2.5.5、2.5.6 的源码里已经没有这句。看到的正是这句,**先升级到新版本**(作者建议)。升级后还出现的,才按官方办法:在「设置」里打开「配置目录」,删掉里面所有文件后重启,还不行就卸载重装。装过系统服务、用虚拟网卡模式的注意:按源码,Windows 的卸载程序和 Linux 卸载 deb、rpm 时都会把服务一起卸掉;Mac 上没有找到删 app 时顺带撤掉服务的机制(见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode))。装回来后虚拟网卡模式开不了的,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。这个目录里放着你导入过的订阅,以及「编辑规则」、扩展覆写配置、扩展脚本各自的文件,删了就都没了。**删之前先把整个目录复制一份到别处**(作者建议),再把每条订阅链接单独留好:右键每张订阅卡片,点「编辑信息」,复制「订阅链接」。重装后按订阅链接重新导入;自己加过的规则、覆写和脚本,从备份里对应的文件把内容抄回去,不要把整个旧目录直接放回——出问题的文件可能就在里面(作者建议)。\n\n**「订阅地址一跳转就导入失败」只发生在 2.4.1 这一个版本**,2.4.2 修好了;2.5.2、2.5.5、2.5.6 会自动跟随跳转(最多 10 次),不用改链接。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.2、2.5.5、2.5.6 的源码和官方文档核对(本条引用的那几处在 2.5.6 没有改动:cmds.ts、zh/settings.json、notification-handlers.ts 这三个文件在别处有改动,被引用的内容只挪了位置,其余引用到的文件与 2.5.5 逐字相同),在 macOS 上实测了 2.5.2 下载订阅时的各种失败(订阅端是本机的测试服务;导入用一键导入链接,更新用自动更新;默认设置下,失败的那次自动更新一共请求三次,只有第二次经过内核,成功时第一次就结束;打开「使用内核代理更新」后第一、二次都经过内核),另用命令行实测了修复步骤里的命令。\n\n- 界面只在 Linux 版 2.5.6 上看过导入一份既没有 `proxies` 也没有 `proxy-providers` 的订阅时的两条提示;其余界面提示、「新建」「编辑信息」里的做法都按源码写;2.5.5 没有实测。\n- Windows 没有实际操作过,Linux 只看过上面那两条提示和下载订阅时带的 UA;经代理重试失败时的完整原因、内核自己回 502 的情形、「证书受信任但域名不对」都没测。\n\n## 取证\n- **sub-downloads-ok**:订阅下载下来了吗?提示里有 `failed to fetch remote profile`,就是没下载下来;导入时只弹出 `Subscription server uses legacy TLS …` 这一句(2.5.5、2.5.6 前面还带「导入订阅失败」)的,也是没下载下来;官方文档提到的 `client error(Connect)` 同样算没下载下来,具体原因写在它后面。右键「更新」的提示后面没有状态码时,原因被省略了,先按正文第一条重新导入一次看完整原因。完全没有报错、只是「代理」页没有节点的,不是这一问的情况,不用再往下答:先确认「订阅」页里这张卡片是选中的(见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)),还是没有,按 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 查\n pass → sub-content-is-clash-config;fail → sub-server-tls-version-ok;unknown → escalate\n- **sub-server-tls-version-ok**:订阅服务器支持 TLS 1.2 或 1.3 吗?报错里有 `Subscription server uses legacy TLS; only TLS 1.2/1.3 is supported`,就是不支持(按源码,导入时只弹这一句,不会先提示「尝试使用 Clash 代理导入」)\n pass → sub-server-accepted-request;fail → sub-server-legacy-tls;unknown → sub-server-accepted-request\n- **sub-server-accepted-request**:订阅服务器给配置了吗?报错里有 `with status` 后面跟着三位数字(例如 `401 Unauthorized`、`403 Forbidden`、`404 Not Found`),就是没给:服务器拒绝或出错了。右键「更新」失败的提示里也看得到这个数字。例外(按源码,未实测):数字是 `502`、`503`、`504`,而订阅链接开头是 http 不是 https 的,可能是本机的 Clash Verge Rev 经节点连不上时自己回的,先到日志里找第一次尝试的那一行:导入时是两行「[导入订阅] 下载失败:」里较早的那一行,更新时是「[订阅更新] 正常更新失败:」(2.5.5、2.5.6 是「直接更新失败:」);那里也是这个数字才选「没给」,那里是别的原因就选「无法判断」\n pass → sub-server-cert-ok;fail → sub-server-rejected-request;unknown → sub-server-cert-ok\n- **sub-server-cert-ok**:订阅服务器的证书能通过校验吗?失败原因里出现 `invalid peer certificate` 就是不能(后面跟的可能是 `UnknownIssuer`,也可能是 `CaUsedAsEndEntity` 等别的写法)。右键「更新」的提示只写最外层一句,看不到原因;2.5.2 的「[订阅更新] … 更新失败」日志也一样,但 macOS 上同一时刻还有一条 `failed to verify TLS certificate: invalid peer certificate: …`,看到它就是证书问题(只在 macOS 的 2.5.2 上见过);2.5.5、2.5.6 的「[订阅更新] 直接更新失败:」日志带完整原因(按源码)。都看不到的,在「订阅」页顶部的「订阅文件链接」框里粘贴同一条链接、点「导入」,看失败提示后面那串英文(按源码,界面提示没有实测)。导入失败不会新增订阅;万一导入成功,会多出一个新订阅,查完删掉新的那个(分不清哪个是新的就都留着)。那串英文是经 Clash Verge Rev 自己的代理重试那一次的原因:说的是连接被断开、握手中断、连不上本机的某个代理端口这类,说明卡在代理这一侧,据此判断不了证书,选「无法判断」\n pass → sub-server-reachable;fail → sub-server-cert-untrusted;unknown → sub-server-reachable\n- **sub-server-reachable**:连得上订阅服务器吗?失败原因的最后一行是 `Connection refused`、`operation timed out` 这类连接失败的字样(这两种实测过;说连接被重置、域名解析失败、握手中断的其他写法没有实测,也算),就是连不上\n pass → escalate;fail → sub-server-unreachable;unknown → escalate\n- **sub-content-is-clash-config**:下载到的是 Clash 配置吗?(提示里有 `the remote profile data is invalid yaml` 或 `profile does not contain`,就不是)\n pass → sub-config-passes-core-test;fail → sub-not-clash-config;unknown → escalate\n- **sub-config-passes-core-test**:新配置能通过内核校验吗?(提示里有 `test failed`,就是没通过;校验失败了、但提示里没有 `test failed`,算无法判断)\n pass → escalate;fail → sub-config-rejected-by-core;unknown → escalate\n\n## 原因\n- **sub-server-rejected-request**(可能性 medium)→ 修复 see-why-server-rejected\n- **sub-server-cert-untrusted**(可能性 medium)→ 修复 accept-invalid-certs\n- **sub-server-legacy-tls**(可能性 low)→ 修复 ask-provider-for-modern-tls\n- **sub-server-unreachable**(可能性 medium)→ 修复 fix-sub-server-unreachable\n- **sub-not-clash-config**(可能性 high)→ 修复 get-clash-format-sub\n- **sub-config-rejected-by-core**(可能性 medium)→ 修复 fix-sub-config-rejected-by-core\n\n## 修复\n### see-why-server-rejected\n1. 只有状态码以 3 开头(`301 Moved Permanently`、`302 Found` 这类)、而且用的是 Clash Verge Rev 2.4.1 的做这一步,其他人直接看下一步。这是 2.4.1 这一个版本的问题:它不跟着订阅地址的跳转走,2.4.2 修好了。升级到新版本就行,不用改订阅链接,也不用找服务商。2.4.2 起会自动跟随跳转,2.5.2、2.5.5、2.5.6 最多跟随 10 次;2.5.2 实测导入、更新会跳转的订阅都成功。\n2. **作者建议**:先登录服务商的用户面板,看订阅有没有过期、流量有没有用完、账户能不能用;再从面板重新复制一次完整的订阅链接,到「订阅文件链接」框重新导入。已经有这张订阅卡片的注意:重新导入会多出一张新卡片(按源码,深链导入实测也是这样),原来那张的「编辑规则」「编辑代理组」「编辑节点」、扩展覆写配置、扩展脚本是它自己的文件,不会跟过来(按源码,见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config))。新卡片导入成功后,右键旧卡片再「更新」一次——更新之前,用「编辑文件」直接改过旧卡片的,先把那些改动抄下来:更新成功后它们会被新下载的内容替换(见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule))。旧卡片也更新成功了,删掉新的那张就行(分不清哪张是新的就都留着);旧卡片还是被拒的,改用新卡片:点新卡片切过去,把旧卡片这几样里自己加过的内容、以及「编辑文件」直改过的内容,按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)抄到新卡片的对应位置,在新卡片的「查看运行时订阅」里核对都在了再删旧的;分不清的先留着旧卡片。订阅过期、停用或链接抄错时,服务器可能就回这类状态码(怎么回由服务商决定),这一步最省事。为什么被拒只有服务商知道,官方文档没有列原因;客户端也不显示服务器随回应写的说明(日志里实测没有;界面按源码显示的是同一句报错)。重新导入还是被拒的,做下一步或直接去最后一步。\n3. 可选:想看服务器拒绝时说了什么(比如「订阅已过期」这类话,写不写、写什么由服务商决定),用命令行请求一次。macOS / Linux 终端:先运行 `read -rs SUB`,粘贴订阅链接后回车(一般不会显示在屏幕上,但实测 macOS 自带的 bash 在一种测试方式下显示过,所以粘贴前确认没在录屏、共享屏幕),再运行 `printf 'url = \"%s\"\\n' \"$SUB\" | curl -i -L -A clash-verge/v2.5.2 -K -`(`v2.5.2` 换成你用的版本号),看完运行 `unset SUB`。输出里最后一段以 `HTTP/` 开头的那行是状态码,空行下面是服务器写的说明。不把链接直接写进命令,是因为写进命令的链接会留在命令历史里,运行时同一台电脑上的其他程序也看得到。看到的是 `200` 加一大段配置的,说明这一次没被拒;**这段内容和订阅链接一样相当于凭据,不要截图、转发,也不要贴给别人、聊天助手或在线工具**。Windows 上本条没有核对过能同时显示状态码和说明的命令,直接带着报错里的状态码去下一步。\n4. 把状态码和上一步看到的说明(不是整份配置)发给服务商,**不要附订阅链接**:导入失败时那串英文里 `error sending request for url (…)` 括号里的就是你的完整订阅链接,贴出去之前先删掉。上一步看到的说明里要是带着订阅链接、链接里那串 token 或节点地址,也一并删掉。\n验证:sub-update-succeeds\n\n### accept-invalid-certs\n1. **作者建议**:先换一个网络(比如手机热点)再导入或更新一次对照。换了网络就能成功的,问题更可能出在原来的网络上(比如证书在中途被替换),勾下面的选项解决不了、也不安全:先在能成功的网络上导入或更新,原来的网络去问网络管理员或运营商。换了网络还是一样的,做下一步。\n2. 请订阅服务商修好证书,这是根本的办法。报错原文发过去之前先删掉里面的订阅链接。\n3. 要临时绕过,勾选「允许无效证书(危险)」。**已经有这张订阅卡片的**:在「订阅」页右键它,点「编辑信息」,勾选后保存。**导入就失败、没有卡片的**:官方指南的做法是换「订阅链接配置」这种导入方式——点「订阅」页顶部的「新建」,类型保持 `Remote`,在「订阅链接」里粘贴链接,勾选「允许无效证书(危险)」再保存(按官方指南与源码,界面上没有实测)。实测把这个选项打开后,自签证书的订阅能更新成功。勾上以后,客户端不再校验订阅服务器的证书和域名,无法确认连上的真是订阅服务器,订阅链接可能泄露、下载到的配置可能被替换;服务商修好证书后取消勾选。勾上以后还是失败的,卡住的已经不是证书校验:先取消勾选,再去求助。\n验证:sub-update-succeeds\n\n### ask-provider-for-modern-tls\n1. 把报错原文(删掉里面的订阅链接)发给订阅服务商,请对方让订阅服务器支持 TLS 1.2 或 1.3。你这边没有能绕过的设置:报错本身写明客户端只支持 TLS 1.2/1.3,「允许无效证书(危险)」只关掉证书和域名校验,不改 TLS 版本。\n验证:sub-update-succeeds\n\n### fix-sub-server-unreachable\n1. **作者建议**:先确认这台电脑的网络本身能用,再按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 确认 Clash Verge Rev 里的节点能用;然后换一个网络(比如手机热点)再导入或更新一次对照。客户端失败后会经它自己的代理再试,那一次按你当前的节点和规则走:节点不通,那次也会失败;第一次导入、还没有任何订阅时,那次多半也是直连(按源码推断,未实测)。\n2. 末尾是 `operation timed out` 的:每次尝试默认等 20 秒(实测单次 20 秒),导入会试两次、右键「更新」会试三次,所以最终提示要等更久。网络慢时可以在订阅卡片右键「编辑信息」里把「HTTP 请求超时」调大再更新;导入就失败、没有卡片的,用「订阅」页的「新建」建远程订阅时也能填这一项(按源码,界面上没有实测)。\n3. 换了网络、节点也正常,还是连不上的,把报错原文发给服务商。报错里 `error sending request for url (…)` 括号里是你的完整订阅链接,贴给任何人之前先删掉。\n验证:sub-update-succeeds\n\n### get-clash-format-sub\n1. 格式对不上的完整排查见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch),这里只列 Clash Verge Rev 的做法。**作者建议**:先登录服务商面板,确认订阅没过期、账户正常——服务商对过期或停用的账户也可能返回一段文字或一个网页,客户端同样报 `invalid yaml` 或 `profile does not contain`(按源码)。订阅正常的,在面板上复制 Clash(或写 Clash Meta / mihomo)格式的订阅链接,重新导入。已经有这张订阅卡片的,重新导入会多出一张新卡片,旧卡片的「编辑规则」「编辑代理组」「编辑节点」、扩展覆写配置、扩展脚本不会跟过来(按源码,见 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)):点新卡片切过去,把旧卡片这几样里自己加过的内容、以及「编辑文件」直改过的内容,按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)抄到新卡片的对应位置,在新卡片的「查看运行时订阅」里核对都在了再删旧的;分不清的先留着旧卡片。\n2. 可选:按官方文档的办法自己看一眼返回的内容——带着 Clash Verge Rev 的 UA 请求订阅链接。但不要把链接直接写进命令:写进命令的链接会留在命令历史里,运行时同一台电脑上的其他程序也看得到。macOS / Linux 终端:先运行 `read -rs SUB`,粘贴订阅链接后回车(一般不会显示在屏幕上,但不保证,粘贴前确认没在录屏、共享屏幕),再运行 `printf 'url = \"%s\"\\n' \"$SUB\" | curl -L -A clash-verge/v2.5.2 -K -`(`v2.5.2` 换成你用的版本号,PowerShell 那条同样;`-L` 让 curl 跟着订阅地址的跳转走,客户端自己下载时也会跟随),看完运行 `unset SUB`。Windows PowerShell:先运行 `$sub = Read-Host '订阅链接'`,粘贴后回车,再运行 `Invoke-RestMethod -UserAgent 'clash-verge/v2.5.2' -Uri $sub`,看完运行 `Remove-Variable sub`(Windows 上没有实测,改自官方文档的写法)。正确的是 YAML 格式的 mihomo 配置:很多行「名字: 值」形式的文字,开头常见 mixed-port 这一项,里面有 proxies、rules 这些词;一整串没有空格的字母数字、以 `{` 开头的内容、一段网页或一句错误提示都不是。**别照抄官方文档里那条 curl 命令**:它两边是中文弯引号,照抄的话 macOS 上实测会报 `Port number was not a decimal number`,链接里带 `?` 时默认设置的 zsh 直接报 `no matches found`,报错里都不提引号;它也没有 `-L`,遇到跳转时拿不到配置——屏幕上可能什么都不显示,也可能只显示一小段跳转页面。订阅链接和返回的内容都相当于凭据,不要贴给别人、聊天助手或在线工具。\n3. 面板上没有 Clash 格式的链接、或者返回的仍不是这种配置,说明这条链接没有给 Clash 系客户端下发配置:向订阅服务商要 Clash(mihomo)格式的订阅链接,重新导入(已经有这张订阅卡片的,注意同第一步)。\n验证:sub-update-succeeds\n\n### fix-sub-config-rejected-by-core\n1. 在报错提示里找到 `test failed` 前面那一行,那是内核解析配置时给出的具体原因;拿它到「mihomo 内核报错信息表」里查是哪一类问题。\n2. 交给内核校验的配置,是订阅下载来的内容再经过「扩展覆写配置」「扩展脚本」(以及全局的这两项)处理的结果。那一行指向你自己改过的覆写或脚本时,先撤掉那处改动;那一行是 `proxy [名称] not found`、名字又是你在「编辑规则」「编辑代理组」「编辑节点」或扩展里写过的,按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) 改;指向订阅下发的内容时,把那一行原文发给订阅服务商,请对方提供当前内核能通过校验的配置。修好之前先别重启 Clash Verge Rev:这时运行中的还是旧配置,重启会退回没有节点的默认配置,见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)(2.5.5 按源码,`not found` 的情形实测过)。\n验证:verify-core-accepts-config\n\n## 验证\n- **sub-update-succeeds**(人):按你最初的情况做:原本是导入就报错的,在「订阅文件链接」框重新导入一次(按修复步骤用「新建」建的,就看这次新建成不成功);原本已经有订阅卡片的,在「订阅」页右键这张卡片(按修复步骤换成新卡片的,是新的那张。用「编辑文件」直接改过这份订阅的,更新成功后那些改动会被新下载的内容替换:先抄下来,按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)挪到对应的地方),点「更新」,然后按最初的症状再补一步——原本是点订阅卡片激活不了的,回「订阅」页再点一次这张卡片;原本是「代理」页节点组空的,回「代理」页看一眼。\n 预期:不再弹出失败提示。**最初的那个症状也要跟着消失,只确认「更新成功」不算通过**:原本是导入报错的,这次导入成功并出现了新的订阅卡片;原本是更新报错的,卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来),换成新卡片的,新卡片还要是选中(高亮)的样子、成为正在使用的订阅;原本是激活不了的,这次这张卡片变成选中(高亮)的样子、成为正在使用的订阅,而且没有报错;原本是节点组空的,这次「代理」页列出了节点。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **verify-core-accepts-config**(人):改好后,在「订阅」页右键这个订阅(用「编辑文件」直接改过它的,更新成功后那些改动会被新下载的内容替换:先抄下来,按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)挪到对应的地方)点「更新」。然后**按你最初的症状**再补做一步:原本是导入就报错的,重新导入一次;原本是点订阅卡片激活不了的,回「订阅」页再点一次这张卡片;原本是「代理」页节点组空的,回「代理」页看一眼;原本是「虚拟网卡模式」开不了的,再打开一次(改的是覆写或脚本、没动订阅的,不用先「更新」,直接这样做:打开时客户端会重新生成配置、再交给内核校验),然后关掉「系统代理」,在「代理」页确认选的是「规则」或「全局」、出口是一个节点,打开一个平时打不开、按配置应该走节点的网页。\n 预期:更新不再报错,订阅卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来)。**最初的那个症状也要跟着消失——只确认「更新成功」不算通过**:原本是导入报错的,这次导入成功并出现订阅卡片;原本是激活不了的,这次这张卡片变成选中(高亮)的样子、成为正在使用的订阅,而且没有报错(客户端用的可能还是上一份配置);原本是节点组空的,这次「代理」页列出了节点;原本是虚拟网卡模式开不了的,再打开后开关保持打开、没有带 `test failed` 的报错,而且那个网页能正常显示(没做「更新」的只看这一条。没做到的——开关弹回、又报 `test failed`,或者开关能保持打开但网页打不开(说明还有别的原因,比如防火墙没有放行内核)——这一步都不算通过,先把刚关掉的「系统代理」开回去;拿不准的也先开回去)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Clash Verge Rev:从订阅链接到能上网`(见 first-run-setup)\n- `订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机`(见 when-to-update-subscription)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(UA → 如何验证订阅是否正确?)\n- cvr-guide-profile:https://www.clashverge.dev/guide/profile.html(远程订阅 → 订阅链接导入(提示 client error(Connect) 时请尝试其他导入方式)、订阅链接配置(仍然提示时勾选允许无效证书(危险)并保存重试))\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(导入订阅报错 401(配图原文 failed to put configs with status \"401\");导入订阅报错 无效的证书)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src-tauri/src/utils/network.rs L64-L108(build_client:跟随重定向最多 10 次、允许无效证书只关证书与主机名校验)、L123-L162(内置根证书重试的判据:错误链任一层含 certificate、cert、tls、ssl、rustls 等字样且不是旧 TLS 就重试;旧 TLS 提示)、L253-L270(不走代理、走本机内核端口、按系统代理三种走法,系统代理没开时不走代理)、L281(默认 UA clash-verge/v版本号)、L295-L324(内置根证书重试失败时套上 static webpki roots fallback 一层);src-tauri/src/config/prfitem.rs L262-L282(with_proxy 走系统代理、self_proxy 走本机内核端口)、L268(默认超时 20 秒)、L306(非 2xx 报 with status)、L388-L391(YAML 与 proxies 检查);src/services/cmds.ts L52-L57(「导入」第一次传 with_proxy: true);src-tauri/src/cmd/profile.rs L28-L34(导入报错取完整原因链,旧 TLS 只取那一句)、L81(日志「[导入订阅] 下载失败:」只写最外层一句);src/pages/profiles.tsx L278-L322(导入失败先提示再经内核代理重试,第二条提示显示的是重试那次的错误,旧 TLS 不重试)、L957-L967(「导入」「新建」按钮);src/components/profile/profile-viewer.tsx L50-L58(新建默认类型 remote)、L138-L180(新建失败时提示并经内核代理重试)、L249(类型选项 Remote / Local)、L383-L388(允许无效证书);src-tauri/src/feat/profile.rs L100-L187(更新依次直连、内核代理、系统代理,日志只写最外层一句,三次都失败时手动触发才提示订阅名与最外层一句,自动更新下载失败不提示)、L206-L226(下载后正在用的订阅重新生成并校验,没通过时不论手动还是自动都发 update_failed 提示);src/components/profile/profile-item.tsx L390-L410、L510-L518(右键「更新」首次直连)、L641(当前订阅的卡片只有选中样式,没有文字标签);src/pages/_layout/utils/notification-handlers.ts L32-L36;src/services/notice-service.ts L245(提示前缀加原文);src-tauri/src/cmd/app.rs L9-L12 与 src-tauri/src/utils/dirs.rs L84-L86、L149-L151(配置目录里放着订阅列表与订阅文件);src-tauri/src/config/config.rs;src-tauri/src/core/validate.rs;src/locales/zh/profiles.json L7、L23、L34-L35、L63、L71-L72、L86-L87、L101-L117;src/locales/zh/shared.json L9;src/locales/zh/settings.json L635;全仓库无 failed to put configs)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(与 v2.5.2 对照:src-tauri/src/utils/network.rs L68(跟随重定向)、L147(旧 TLS 提示)、L252(默认 UA)、L291(内置根证书重试);src-tauri/src/config/prfitem.rs L249、L285、L360-L363;src-tauri/src/cmd/profile.rs L26-L32(profile_import_error)、L71-L72(日志「[导入订阅] 下载失败:」写完整原因链;导入失败返回 coded_error PROFILE_IMPORT_FAILED);src/services/cmds.ts L53-L58;src/services/notice-service.ts L63-L75(PROFILE_IMPORT_FAILED 对应「导入订阅失败」)、L400-L411(有对应说明的错误码时,前缀换成它);src/pages/profiles.tsx L216-L256(旧 TLS 走 showNotice.error(initialErr),同样带「导入订阅失败」前缀);src-tauri/src/feat/profile.rs L104-L182(三次尝试的日志「[订阅更新] 直接更新失败: …」等写完整原因链,提示仍只有订阅名与最外层一句,只在手动触发时发)、L184-L222(下载成功后正在用的订阅重新生成并校验,没通过时不论手动还是自动都提示,已存盘的写「订阅已保存,但未能确认已应用到内核: …」);src/pages/_layout/utils/notification-handlers.ts L114-L118;src/components/profile/profile-item.tsx L392、L500-L505;src/components/profile/profile-viewer.tsx L154、L407;src/locales/zh/profiles.json L35、L43-L44、L84-L85、L99、L114-L126、L144;src/locales/zh/shared.json L92(前缀与原文之间一个空格);src/locales/zh/settings.json L692;全仓库无 failed to put configs)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(与 v2.5.5 逐字相同:src-tauri/src/utils/network.rs(L68 跟随重定向最多 10 次、L147 旧 TLS 提示、L247-L253 默认 UA)、src-tauri/src/config/prfitem.rs、src-tauri/src/cmd/profile.rs、src/pages/profiles.tsx、src/components/profile/profile-viewer.tsx、src/components/profile/profile-item.tsx、src/services/notice-service.ts、src/locales/zh/profiles.json;src-tauri/src/feat/profile.rs L126-L180(「[订阅更新] 直接更新失败:」等日志;L178-L180 三次下载都失败时只在手动触发才发提示)、L195-L222(下载成功后正在用的订阅重新生成并校验,结果不是跳过或忙时,不论手动还是自动都发 update_failed 提示,已存盘的写「订阅已保存,但未能确认已应用到内核: …」);本条引用的其余几处在 2.5.6 只挪了位置、内容没变:src/services/cmds.ts L53-L58(「导入」第一次传 with_proxy: true,与 2.5.5 同一行号)、src/locales/zh/settings.json L698(withClashProxyFailed「使用 Clash 代理更新失败」)、src/pages/_layout/utils/notification-handlers.ts L184-L190(三次下载都失败、校验没通过这两种更新失败的提示);src-tauri/packages/windows/installer.nsi L1105(卸载程序运行 RemoveVergeService);src-tauri/packages/linux/pre-remove.sh L2 与 src-tauri/tauri.linux.conf.json L14、L24(deb、rpm 卸载前运行服务卸载程序))\n- cvr-repo-v2-4-1:https://github.com/clash-verge-rev/clash-verge-rev/tree/92d9c94e87b06b0b041fce3728c92d321b6c4452(src-tauri/src/utils/network.rs(下载客户端未设重定向策略);src-tauri/src/config/prfitem.rs L285-L287(非 2xx 报 with status))\n- cvr-repo-v2-4-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/5dca724017278d441cad567da19bff9862a5b868/UPDATELOG.md(UPDATELOG.md「v2.4.2」L18(修复 2.4.1 引入的订阅地址重定向报错问题);同一版本 src-tauri/src/utils/network.rs L136(重定向策略设为 isahc 的 RedirectPolicy 里的 Follow,未设次数上限,提交 89f3adc))\n- cvr-repo-v2-1-2:https://github.com/clash-verge-rev/clash-verge-rev/blob/7743c42dd1721ae8ff7d3fe861503c50cddcd7db/src-tauri/src/core/clash_api.rs(L14-L35 put_configs(向内核控制接口 PUT /configs,被拒时报 failed to put configs with status)、L79-L93(带 Bearer 口令))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(main.go L176-L186(-t 校验失败的输出);listener/http/proxy.go L68-L76(收到 CONNECT 先回 200 再转交隧道)、L121-L125(转发普通 HTTP 请求出错时回 502 Bad Gateway))\n- exp-subscription-update-failed-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-subscription-update-failed-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n\n最后修订:ca7861b 2026-09-28\n"},"tun-mode-not-working":{"id":"tun-mode-not-working","type":"troubleshoot","title":"Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网","aliases":["tun模式用不了","TUN 开不了","开了 TUN 就上不了网","虚拟网卡模式打不开","系统代理可以但 TUN 不行","TUN 开关弹回","TUN 开了就断网","Clash Verge TUN 模式没网","TUN 模式需要系统服务","TUN 模式需要安装服务模式或管理员模式","开了 TUN 没有虚拟网卡","装了服务模式 TUN 还是不生效","TUN 服务模式安装不了","装了服务模式 设备管理器里没有虚拟网卡","服务无法确认内核文件及所在目录是否安全,已拒绝高权限运行","已切换到普通模式(Sidecar),普通权限下无法使用 TUN","需要更新系统服务 修复服务 继续使用 Sidecar","服务已安装,但内核未通过服务运行","服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用","由于服务不可用,TUN 模式已自动关闭","core path has an untrusted write ACE","verge-mihomo.exe: core path C: has an untrusted write ACE: ace_index=5, sid=S-1-5-11 S-1-5-32-545 S-1-1-0","is writable by an account other than SYSTEM, Administrators or TrustedInstaller","core path is owned by an account other than SYSTEM, Administrators or TrustedInstaller","服务拒绝启动内核 应用数据目录的所有者不是当前账户","系统服务与当前应用要求不符 重新安装服务","运行模式显示用户模式 开不了 TUN","2.5.6 开 TUN 要以管理员身份运行","Clash Verge 装在 D 盘开不了 TUN","以管理员身份运行 开 TUN 报 core did not become ready after restart","TUN 开关还显示开着 虚拟网卡却没建起来","首页显示 TUN 模式已启用 但没接管流量","开 TUN 后 macOS 系统 DNS 被改成 114","TUN 堆栈 gVisor System Mixed 与防火墙放行内核 verge-mihomo","装了 Hyper-V WSL VMware 虚拟网卡后开 TUN 断网","覆写脚本改 tun 字段被丢弃 is managed by Settings"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","tun-and-service"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 的「虚拟网卡模式」(TUN)开不了、服务模式装不上、开了没反应或者一开就断网,按这个顺序查:\n\n1. **有没有权限**:要么装系统服务,要么(Windows)以管理员身份运行。2.5.5、2.5.6 点开关会弹出「TUN 模式需要系统服务」,点「安装服务」。\n2. **装了还是开不了,看首页「系统信息」卡的「运行模式」**:「用户模式」(即 Sidecar,普通权限运行,开不了 TUN)就是服务没接管内核(真正处理流量的程序)。按提示做:「服务无法启动内核,已降级为 Sidecar 模式运行」→ 重装一次服务;「服务无法确认内核文件及所在目录是否安全」→ 点通知里的「查看修复方法」,或以管理员身份运行;可能弹的「需要更新系统服务」→ 点右边的修复服务或重新安装服务,别点「继续使用 Sidecar」。Linux 上用 deb 包装了新版后,服务会被卸掉、TUN 被悄悄关掉,重装服务即可。\n3. **运行模式正常了**:看打开时有没有带 `test failed` 的报错、「日志」页有没有虚拟网卡没建起来的那行报错(原文见下文「虚拟网卡没建起来」那一条)。\n4. **开着却上不了网、系统代理能用 TUN 不行**:查防火墙有没有放行内核 verge-mihomo,以及 Windows 上的多余网卡(Hyper-V、WSL、VMware 这类软件装的)。\n\n**用 macOS 的先看这句**:开 TUN 后系统 DNS 变成四组都是 114 的那个公共地址,是 Clash Verge Rev 有意改的,不是中毒;关掉 TUN 或正常退出时它会尝试改回去,没改回来可以自己在系统设置里改回,改之前先看下文确认改哪个网络、原来是什么值。\n\n- **tun-service-not-installed**(没装服务):不以管理员身份运行时,要先装「服务模式」,由服务以管理员权限拉起内核。**2.5.5 起改了交互(2.5.6 相同)**:开关不再是灰的,点了会弹出「TUN 模式需要系统服务」对话框,按钮是「安装服务」和「稍后再说」,装好后自动开启。网上「开关点不了、点扳手图标」的说法是 2.5.2 的样子(更早的版本没有核对)。Linux 上用 deb 安装包升级客户端时,旧版的卸载前脚本会把服务卸掉:Linux 版从 2.5.5 升到 2.5.6 实测,打开新版不弹任何提示,TUN 被自动关掉,运行模式回到「用户模式」,重新装一次服务就恢复。服务模式是什么、装在哪、怎么卸载,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **tun-core-not-on-service**(服务装了但没接管内核):这时首页「运行模式」显示「用户模式」——按源码,既没有管理员权限、服务也不可用时,TUN 就开不了。服务装着却不可用时,一启动就弹「需要更新系统服务」,点右边的「修复服务」或「重新安装服务」能恢复(Linux、Windows 版上实测,macOS 按源码);上一条说的 Linux 升级后服务被卸掉,不会弹这个对话框。Windows 上服务目录里的内核因权限被拒时,弹的也是这个对话框,原因只写在日志里;在对话框里点了「继续使用 Sidecar」,才会冒出黄色「服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用。」和红色「自动关闭 TUN 模式失败」。按源码,应用内更新后服务版本对不上时,Windows 上只出那条黄色提示、一般不弹对话框(Windows 上没有实测)。装服务、重装或修复服务时被服务的安全检查拒绝,2.5.6 会弹一条不会自己消失的警告,附官方修复文档的链接(按源码)。官方 FAQ 说,Windows 上不想修的,以管理员身份运行同样能用 TUN。装服务时直接报错的,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **sub-config-rejected-by-core**(配置没过内核校验):打开虚拟网卡模式时,客户端会重新生成配置(订阅内容再经过覆写配置与脚本处理),先用内核校验;校验不通过,这次打开就失败,新配置也不会交给内核。内核解析配置出错时,校验输出里带 `test failed`,它前面那一行是具体原因。更新正在用的订阅时走的也是这套校验,订阅那一侧按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 排查。配置修好、开关能保持打开但网页还是打不开的,回到本条「日志」那一问(看有没有 `Start TUN listening error`)接着查。\n- **tun-adapter-create-failed**(虚拟网卡没建起来):内核校验**不会真的去建虚拟网卡**,所以配置能过校验、之后建网卡却失败,是另一个分支。建网卡失败时,内核只在日志里记下 `Start TUN listening error: <原因>`,然后照常运行,经代理端口的连接(比如系统代理)不受影响。界面上也看不出来:Linux 版 2.5.6 上实测,这时开关照样开着、首页还写着「TUN 模式已启用」,内核自己却已经把 TUN 标成关闭,流量没有经过虚拟网卡。对你来说就是「开关开着、系统代理也能用,但 TUN 没接管流量」。\n- **tun-core-blocked-by-firewall**(防火墙挡了内核):Clash Verge Rev 的官方术语页说,用虚拟网卡模式要自己在系统防火墙里放行内核 verge-mihomo 和 verge-mihomo-alpha,没有按堆栈分;mihomo 内核的文档说得更细:开着防火墙时 System、Mixed 两种堆栈用不了,Windows 要放行内核,macOS、Linux 一般无需配置。**要放行哪一份看版本**:2.5.5、2.5.6 装了服务时,服务运行的是它自己目录里的那份内核副本,放行应用文件夹里那份管不到它(按源码;Linux、Windows 上实测服务拉起的就是这份),Windows 上 2.5.6 的安装包每次运行都会把自带内核复制到 `C:\\ProgramData\\clash-verge-service\\cores`,给这份副本加入站放行规则,不论装不装服务(Windows 上实测,与源码一致),但加失败时不提示(按源码)。2.5.2 的服务直接运行应用文件夹里那份,以管理员身份运行、不走服务时也是这份,照术语页手动放行即可(按源码)。更新日志里「修复 Windows 服务模式下 TUN 使用 system/mixed 堆栈时无法接管流量」那一条,是服务改用自己的内核副本之后才出现的问题,随 2.5.5 修掉(按源码与提交说明)。Linux 版 2.5.6 服务模式下实测,堆栈换成 System、Mixed、Mips 都照常接管;Windows 上实测,删掉服务那两条放行规则后,GVisor 照常,System、Mixed 断网。\n- **tun-extra-adapters-conflict**(Windows,多余网卡冲突):系统里有多个网卡,或网段与配置里的规则冲突时,打开虚拟网卡模式后网络会异常;官方给的办法是删除多余的网卡。内核文档另外建议,同时连着多个出口网卡的设备手动指定出口网卡;Clash Verge Rev 的「虚拟网卡模式」设置里只有「自动选择流量出口接口」这个开关,没有指定出口网卡的地方(设置里的「虚拟网卡名称」是虚拟网卡自己的名字,不是出口网卡)。\n\n本条有些步骤按 2.5.5、2.5.6 与 2.5.2 分开写,自己用的是哪一版,看「设置」页「Verge 高级设置」的「Verge 版本」一行。2.5.4 的预发布版本条没有核对,建议先升级到 2.5.6 再按本条做(作者建议;最新版本号见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version),应用内更新失败见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed))。\n\n另外,官方已不再支持 Windows 7,在 Win7 上建不出虚拟网卡不属于上面任何一个原因。\n\n## macOS:开 TUN 后系统 DNS 变成 114\n\n在 macOS 上打开虚拟网卡模式时,Clash Verge Rev 会把「当前上网用的那个网络服务」的系统 DNS 改成 114 公共 DNS(四组数字都是 114),原来的值先存起来;关闭 TUN 时按存下的值改回去,原来是自动获取(DHCP)的就恢复成自动获取。**只有配置里 DNS 的增强模式是 fake-ip、或者没写时才改**,Windows 上没有这一步。\n\n为什么要改:TUN 在 macOS 上劫持不到发往局域网的 DNS 请求,开 TUN 时 DNS 实际由内核代理,改成的这个地址本身没有别的意义。**官方 FAQ 写的是改成另一个以 223 开头的公共地址——这已经过时**:2.5.2、2.5.5、2.5.6 的源码写死的都是 114,本机装的 2.5.2 程序包里也查到了同一个值(只读检查,没有实际开 TUN 看系统 DNS)。\n\n**什么时候会改回去**:关闭 TUN 时按存下的值改回。正常退出或重启应用、系统注销或关机时,应用会在停下内核后**尝试**恢复,但只等 1 秒,超时就只记一条警告日志;注销、关机那条路径源码自己也标明是尽力而为。强退时源码里没有恢复这一步,DNS 可能停在 114,直到下次打开 Clash Verge Rev(TUN 关着)时再恢复。另外,改回去的对象是「恢复那一刻正在上网用的网络服务」,中途从 Wi-Fi 换到有线这类情况下,原来那个网络服务的 DNS 不会被改回。这些都是按源码推断的,没有实测。\n\n**没改回来、或者已经不用 Clash Verge Rev 了**:可以自己改,不需要它,但要先确认两件事。① **改哪个网络**:被改的是开 TUN 时正在上网用的那个网络服务,不一定是你现在连的这个——比如开 TUN 时用的是 Wi-Fi、后来换成了有线,要改的是 Wi-Fi。② **原来是什么值**:在「系统设置 → 网络」里点那个网络服务,进「详细信息」→「DNS」。你确定开 TUN 之前这里没有手动填过 DNS(是自动获取的),就把 114 那一条删掉,删到空就回到自动获取;开 TUN 之前你在这里手动填过 DNS 的,删掉 114 找不回原来的值,而且删到空会变成自动获取、不是你原来的设置——先别动,找到原来填的地址(比如你自己的记录,或者当初让你填的网络管理员、运营商的说明)再换回去。这是系统自带的操作,入口是作者给出的,不来自 Clash Verge Rev 的文档。\n\n## 几条流传的说法\n\n- **「2.5.4 以后开 TUN 必须以管理员身份启动」**:不对。按源码,界面判断能不能开 TUN,看的是有管理员权限或者服务可用,满足一个就行;Linux、Windows 版上实测,以普通用户运行、装好服务后运行模式是「服务模式」,TUN 正常接管流量。反过来,只有管理员权限、没装服务时也不一定点一下就开:Linux 版以 root 运行实测,每次运行都要在弹出的「需要更新系统服务」里点一次「继续使用 Sidecar」——上次退出时 TUN 关着的,是第一次点开关时弹(点完再点一次开关才打开);开着的,是一启动就弹(点完 TUN 直接开着);Windows 上以管理员身份运行、没装服务时实测,TUN 关着的,点开关直接打开、不弹框,开着的,一启动就弹,点完 TUN 直接开着。官方 FAQ 把以管理员身份运行写成服务被安全检查拒绝时的替代办法,不是唯一的方式。\n- **「TUN 只能把软件装在 C 盘」「装到 D 盘就能绕开安全检查」**:两种都不对。2.5.5、2.5.6 的服务运行的是它复制到自己目录(Windows 上在 ProgramData 下)的那份内核,检查从这份副本一直查到所在磁盘的根目录,软件装在哪个盘都一样(按源码推断;Windows 上实测装在「下载」文件夹里也没有安全检查警告,D 盘没有试过)。官方 FAQ 的建议是改用官方安装包装到默认的 `C:\\Program Files\\Clash Verge`;细节见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **「在覆写脚本或扩展配置里改 tun 的堆栈、严格路由就能生效」**:2.5.5 起,这些字段归「设置」管,写进扩展配置或脚本的值会被丢弃,扩展日志里记一条 `` `<字段名>` is managed by Settings; the value written here was discarded ``。要改就点「虚拟网卡模式」这一行的齿轮图标,在打开的设置里改(TUN 模式堆栈、严格路由、自动选择流量出口接口、排除自定义网段)。\n- **「开 TUN 必须关掉浏览器的安全 DNS,不然断网」**:这句话没有找到官方文档或源码依据。在命令行内核上测到的是它背后的机制:连接到达内核时如果只带 IP、不带域名,按域名写的规则匹配不到,会落到后面的兜底规则上;配置里开了域名嗅探、嗅探又拿得到域名时,域名会被补回来、规则照常命中。那次的兜底规则是拒绝,所以表现为连不上;兜底规则是走代理或直连时,表现应该是**走错出口**而不是断网——这一半是推断,没有实测。浏览器的安全 DNS 会不会造成「只带 IP」的连接,本条也没有在浏览器上实测。**对你来说**:关不关安全 DNS 不是本条的检查项;如果现象是某些网站走错出口、而不是全都打不开,按 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute) 查。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.2、2.5.5、2.5.6 的源码与官方文档、mihomo 内核文档核对;2.5.6 的 Linux 版在虚拟机里、Windows 版在一台 Windows 11 实机上实测过主要分支,命令行内核在 macOS 与安卓模拟器上实测。文中「作者建议」「作者给出」指本站作者的建议,不是 Clash Verge Rev 官方的说法。\n\n- Windows 上没测:应用内更新后的提示;C 盘根目录这类上级目录权限触发的安全检查警告,以及 2.5.5 上的措辞。\n- macOS 上没有实机核对:提示、防火墙与 114 DNS 都只按源码与文档写;2.5.2 与 2.5.4 预发布版的界面也没有核对。\n- 「日志」页先点「清除」再回来重新读取,只按源码写,没有实测。\n\n## 取证\n- **tun-switch-clickable**:在「设置」页看「虚拟网卡模式」这一行:旁边**没有**橙色的三角警告图标(鼠标移上去提示「TUN 模式需要安装服务模式或管理员模式」)吗?看到这个图标算「不是」;2.5.5、2.5.6 点开关弹出「TUN 模式需要系统服务」对话框、2.5.2 开关是灰的点不动,也都算「不是」——这几种都表示还没有开虚拟网卡模式的权限。已经装过服务、还看到这个图标的,也选「不是」:下一步别反复点安装,做完那里的验证,它会把你带到「运行模式」那一问。\n pass → tun-switch-holds;fail → tun-service-not-installed;unknown → escalate\n- **tun-service-running-mode**:回到「首页」,在最下面的「系统信息」卡里看「运行模式」这一行(**只看、别点**:「用户模式」几个字带下划线,点一下就会直接开始装服务):显示的是「服务模式」「管理员模式」或「管理员 + 服务模式」吗?显示「用户模式」算不是(服务没有接管内核);屏幕上正开着「需要更新系统服务」或「修复服务」对话框、挡住了这一行的,也算不是。软件开着时服务被停掉的,这一行不会跟着变(Windows 上实测,仍显示「服务模式」,界面没有任何提示),托盘和设置页的「退出」也关不掉软件:到任务管理器结束「Clash Verge」(「详细信息」页里叫 clash-verge.exe),重新打开再看;重开后弹出的对话框,按 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里标题为 对话框「需要更新系统服务」 的小节处理,右边按钮是「修复服务」的那一条。显示「内核未运行」的,先按 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error) 把内核重新启动起来,再回来看这一行。首页上没有这张卡的,点首页右上角的齿轮(鼠标移上去提示「首页设置」),勾上「系统信息卡」。还是拿不准,算无法判断。\n pass → tun-switch-holds;fail → tun-core-not-on-service;unknown → escalate\n- **tun-service-mode-recovered**:按上一步处理之后,「运行模式」已经是「服务模式」「管理员模式」或「管理员 + 服务模式」了吗(只是开关或网页还有问题)?还是「用户模式」、或者又弹出了上一步那些提示的,算不是;拿不准算无法判断。\n pass → tun-switch-holds;fail → escalate;unknown → escalate\n- **tun-switch-holds**:打开「虚拟网卡模式」后,开关能保持打开、也没有弹出带 `test failed` 的报错吗?(弹出带 `test failed` 的报错算不能;开关弹回了但报错里没有 `test failed`,算无法判断,接着看日志。**先排除一种情况**:点开关后弹出「需要更新系统服务」、有时先冒出红色 `core did not become ready after restart` 的——没装服务、以管理员身份运行的,点「继续使用 Sidecar」(对话框里没有这个按钮的点「稍后再说」),再打开一次开关;Linux 版以 root 运行、没装服务时实测,这样第二次就开得了;Windows 上实测,以管理员身份运行、没装服务时点开关不弹这个对话框,虚拟网卡直接建好。装了服务的,点右边的确认按钮(修复服务、重新安装服务或安装服务),再到首页确认「运行模式」是「服务模式」。处理完,按开关现在的样子回答这一问)\n pass → tun-adapter-listening;fail → sub-config-rejected-by-core;unknown → tun-adapter-listening\n- **tun-adapter-listening**:打开左侧的「日志」页,**停在这一页别离开**;在托盘图标的菜单里点一下「TUN 模式」把它关掉,再点一下打开。这时新出现的几行里**没有** `Start TUN listening error` 吗?(出现了算没有——那表示虚拟网卡这次没建起来;什么都没出现、或者拿不准,算无法判断。别离开「日志」页去「设置」页关开:Linux 版 2.5.6 上实测,停在这一页时新产生的日志会出现,离开期间产生的回来时不会补上。托盘菜单里的这一项 Windows 上实测有;找不到托盘图标的,可以先点「日志」页右上角的「清除」,再去「设置」页关开一次、回来看——按源码列表清空后回来会重新读取,这一点也没有实测)\n pass → tun-core-firewall-allowed;fail → tun-adapter-create-failed;unknown → tun-core-firewall-allowed\n- **tun-core-firewall-allowed**:系统防火墙放行了内核 verge-mihomo(Clash Verge Rev 里真正处理流量的程序)吗?按你的情况看一种。① **Windows、2.5.5 或 2.5.6、装了服务**(「虚拟网卡模式」这一行有鼠标移上去提示「卸载服务」的垃圾桶图标):在「控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则」里按名称排序,找名称是「Clash Verge Service core (verge-mihomo.exe)」的规则——用的是预览版内核的,找 verge-mihomo-alpha.exe 那一条(在「设置」页「Clash 设置」卡片里点「Clash 内核」这一行的齿轮,选中的是 Mihomo 还是 Mihomo Alpha)。有这一条、已启用、操作是「允许」,算放行。② **Windows 的其他情况**(以管理员身份运行、没装服务,或者用的是 2.5.2,装没装服务都算):防火墙的允许列表里有 verge-mihomo 和 verge-mihomo-alpha、名称前的框勾着、当前网络类别那一栏(「专用」或「公用」,在「设置 → 网络和 Internet」里看当前连接是哪一种)也勾着,或者防火墙本来就关着,算放行;列表里有、但名称前的框或当前网络类别那一栏没勾的,算没放行(以前在防火墙弹窗里点过「取消」就会这样,Windows 上实测)。③ **macOS**:防火墙关着的算放行。开着的也不等于没放行——内核文档说 macOS 一般无需配置、防火墙默认放行签名软件;先在「系统设置 → 网络 → 防火墙 → 选项」里核对内核是否确实被拦,确认被拦才算没放行。④ **Linux**:没有自己设过拦截出站流量的防火墙规则的,算放行(内核文档说 Linux 一般无需配置);设过的,先核对这些规则是否确实拦了内核或虚拟网卡的出站流量,确认拦了才算没放行。确认不了、找不到入口或拿不准,选无法判断。\n pass → tun-only-expected-adapters;fail → tun-core-blocked-by-firewall;unknown → escalate\n- **tun-only-expected-adapters**:网络设置里的网卡都还在用吗?(只适用于 Windows,用 macOS 或 Linux 请选无法判断。网卡列表在「控制面板 → 网络和共享中心 → 更改适配器设置」里看。正在上网用的网卡、Clash Verge Rev 的虚拟网卡、你确认在用的网卡都算在用;有你确认已经不用的网卡,算不是;有用途拿不准的网卡,算无法判断)\n pass → escalate;fail → tun-extra-adapters-conflict;unknown → escalate\n\n## 原因\n- **tun-service-not-installed**(可能性 high)→ 修复 install-service-mode\n- **tun-core-not-on-service**(可能性 medium)→ 修复 get-core-onto-service\n- **sub-config-rejected-by-core**(可能性 medium)→ 修复 fix-sub-config-rejected-by-core\n- **tun-adapter-create-failed**(可能性 medium)→ 修复 retry-tun-adapter\n- **tun-core-blocked-by-firewall**(可能性 medium)→ 修复 allow-core-in-firewall\n- **tun-extra-adapters-conflict**(可能性 low)→ 修复 remove-extra-adapters\n\n## 修复\n### install-service-mode\n1. **2.5.5、2.5.6**:在「设置」页点「虚拟网卡模式」开关,弹出「TUN 模式需要系统服务」对话框后点「安装服务」,按系统提示授权;装好后客户端会自动把虚拟网卡模式打开,提示(默认在右上角)「服务已安装,内核已通过服务运行,刚才的系统代理改动已重新应用。」——你改的是 TUN、提示里说的却是系统代理,这是正常的(Linux、Windows 版上实测)。点「稍后再说」就什么都不装,开关也不会打开。**刚升级完客户端,TUN 就被关掉、这一行又出现橙色三角的**,也照这样重装服务:Linux 用 deb 安装包升级时、Windows 用安装包覆盖安装且保持默认的「安装前卸载」时,旧版会先把服务卸掉,打开新版时 TUN 被自动关掉、运行模式回到「用户模式」,没有任何提示(Linux 2.5.5 升 2.5.6、Windows 手动运行 2.5.6 安装包实测),详见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 的「升级、覆盖安装软件后服务还在吗」。**2.5.2**(更早的版本没有核对):开关是灰的,点这一行鼠标移上去提示「安装服务」的扳手图标。**用 Windows、不想装服务的**,改为以管理员身份运行也能开 TUN(官方 FAQ;Windows 上实测),做法见后面「以管理员身份运行(Windows)」那一步。装的过程中弹出别的提示、或者装完开关还是打不开,先别反复点,接着做下面的验证。\n验证:tun-switch-stays-on\n\n### get-core-onto-service\n1. 下面五段,按你看到的提示**只选一段**做。**对话框「需要更新系统服务」**(各系统都会弹,Windows 上也实测到;按源码,Windows 上还有一种标题为「修复服务」的对话框,也按这段):点右边的确认按钮——「修复服务」「重新安装服务」或「安装服务」,按系统提示授权。Linux、Windows 版上实测,点「修复服务」后回到「服务模式」,TUN 也跟着恢复。**别点「继续使用 Sidecar」**(打算以管理员身份运行的除外,见第四段):它只让这次先用普通模式运行,还会把 TUN 关掉,服务修好后要自己再打开(Linux 版上实测)。三种按钮各对应什么情况,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里标题为 对话框「需要更新系统服务」 的小节。\n2. **Windows:黄色提示「服务无法启动内核,已降级为 Sidecar 模式运行,服务仍不可用。」**(几秒后自己消失):服务没把内核拉起来,客户端自己退回了普通模式,TUN 被关掉。按源码,同时可能还有一条「由于服务不可用,TUN 模式已自动关闭」(Windows 上实测没看到,看到的是红色「自动关闭 TUN 模式失败」)。服务目录里的内核因权限被拒时,Windows 上实测弹的是上一段的「需要更新系统服务」、右边按钮「修复服务」,原因只写在日志里。弹了对话框的,按上一段点确认按钮;没弹的,到「设置」页点「虚拟网卡模式」开关,在弹窗里点「安装服务」。重装后换成下一段那条警告的,按下一段;还是这条提示的,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里的同名小节,或者改为以管理员身份运行(第四段)。\n3. **Windows:装服务、重装或修复服务时,出现一条不会自己消失的警告**「服务无法确认内核文件及所在目录是否安全,已拒绝高权限运行。 已切换到普通模式(Sidecar),普通权限下无法使用 TUN。……」(2.5.6,按源码):服务检查内核文件和它上面每一级文件夹的权限,没通过。不合格的如果是上级目录(比如 C 盘根目录或 ProgramData),反复点「安装服务」解决不了(官方 FAQ:可能无法解决)。不想修就做第四段;想修的,点通知里的「查看修复方法」看官方 FAQ,再右键这条通知复制原始报错,按报错里的路径对照 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里标题为 Windows:警告「服务无法确认内核文件及所在目录是否安全,已拒绝高权限运行。」 的小节处理;官方 FAQ 特别警告不要对整个 C 盘递归重置权限。原始报错里带 `has an untrusted write ACE` 的就是这种情况;**2.5.5** 没有这条中文说明,同一项检查没通过时可能看到英文原始报错 `is writable by an account other than SYSTEM, Administrators or TrustedInstaller`(官方 FAQ 标为旧版本的措辞),也可能只看到上一段那条黄色提示,处理方法相同,也可以先升级到 2.5.6(更新日志修了 Windows 系统隔离权限被误判)。修好后重装服务:有垃圾桶图标的先点它卸载,再点开关、在弹窗里点「安装服务」(FAQ 写的「设置 → 服务模式」在 2.5.6 的设置页里没有这一项)。\n4. **以管理员身份运行(Windows)**:不想修权限、或者上面做完还是「用户模式」时用。官方 FAQ 给的办法是不装服务、直接以管理员身份运行,这样也能用 TUN。在托盘图标菜单里退出 Clash Verge Rev(只关窗口不算退出;服务被停掉时「退出」关不掉它,到任务管理器结束「Clash Verge」),右键它的快捷方式或 clash-verge.exe,选「以管理员身份运行」并允许授权;再出现安装或修复服务的提示时选「继续使用 Sidecar」,对话框里没有这个按钮的点「稍后再说」,别点安装、修复或重装;进去后重新打开「虚拟网卡模式」。这时「运行模式」显示「管理员模式」(Windows 上实测)。打开开关时冒出红色 `core did not become ready after restart`、接着弹「需要更新系统服务」的,同样点「继续使用 Sidecar」,再打开一次开关(Linux 版以 root 运行、没装服务时实测如此;Windows 上实测,没装服务时点开关不弹框,虚拟网卡直接建好)。以后每次都要这样启动,而且这不会修好原来的权限问题。开了「开机自启」的:按源码,自启方式是在打开这个开关时定下的,普通方式运行时打开的,开机后仍是普通权限;以管理员身份运行时把「设置」页的「开机自启」关掉再打开一次,会改成以最高权限运行的计划任务「Clash Verge (Admin)」(Windows 上实测);实测这样开机自启后主窗口可能出不来,要从托盘退出再打开,以后要关掉这个开机自启,也得先以管理员身份运行。macOS 和 Linux 上没有找到对应的官方说法,本条不把它当作办法推荐。\n5. **其他提示**:红色「服务已安装,但内核未通过服务运行。请检查内核状态后重试。」——服务装上了,内核却没转到服务上,官方没有针对它的说明;作者建议(本站作者,不是 Clash Verge Rev 官方)从托盘完全退出再打开,按弹出的提示走上面几段之一,Windows 上也可以改用管理员身份运行。「服务拒绝启动内核:磁盘上应用数据目录的所有者不是当前账户……」、下面附一条以 `sudo chown -R` 开头的命令(2.5.6 更新日志列在 macOS 下,按源码 Linux 也会出现)——提示里写明修复服务解决不了,按它说的在终端运行那条命令,再重启软件(按源码,没有实测)。装服务时直接报「安装服务失败」「修复服务失败」、后面跟着英文原因的,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode) 里标题为 红色「安装服务失败」「修复服务失败」,后面跟着英文原因 的小节。还在用 2.5.5 或更早版本的(2.5.4 预发布版本条没有核对),可以先升级到 2.5.6 再装,2.5.6 的更新日志修了几种服务装不上或内核起不来的情况(作者建议;应用内更新失败的见 `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed),最新版本号见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version))。都对不上的,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,带着首页「运行模式」、提示原文和「日志」页的内容去求助;贴出去之前遮掉订阅链接和服务器地址。\n验证:tun-on-after-service-fix\n\n### fix-sub-config-rejected-by-core\n1. 在报错提示里找到 `test failed` 前面那一行,那是内核解析配置时给出的具体原因;拿它到「mihomo 内核报错信息表」里查是哪一类问题。\n2. 交给内核校验的配置,是订阅下载来的内容再经过「扩展覆写配置」「扩展脚本」(以及全局的这两项)处理的结果。那一行指向你自己改过的覆写或脚本时,先撤掉那处改动;那一行是 `proxy [名称] not found`、名字又是你在「编辑规则」「编辑代理组」「编辑节点」或扩展里写过的,按 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found) 改;指向订阅下发的内容时,把那一行原文发给订阅服务商,请对方提供当前内核能通过校验的配置。修好之前先别重启 Clash Verge Rev:这时运行中的还是旧配置,重启会退回没有节点的默认配置,见 `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)(2.5.5 按源码,`not found` 的情形实测过)。\n验证:verify-core-accepts-config\n\n### retry-tun-adapter\n1. 把 `Start TUN listening error` 这一行冒号后面的原因记下来。出现这一行时,内核(Clash Verge Rev 里真正处理流量的程序 verge-mihomo)没建出虚拟网卡,但它**不会退出**:照常在跑,经代理端口的连接(比如系统代理)也照常能用,只是流量没有交给虚拟网卡——这正是「开了没反应」的样子。界面不会提醒你:Linux 版 2.5.6 上实测,这时开关照样开着、没有橙色三角,首页还写着「TUN 模式已启用,应用将通过虚拟网卡访问网络」,因为界面看的是设置里的值,不看内核有没有建出网卡。在设备管理器、网络连接或 `ip link` 里找不到虚拟网卡的,也先按这一步看日志;别按设置窗口里「虚拟网卡名称」显示的名字去找:没在那里保存过时,窗口显示的是它自己的缺省值(macOS 显示 utun1024,其他系统显示 Mihomo),Linux、Windows 上实际建出的网卡都叫 Meta(实测)。第一次在这个窗口里点「保存」后,网卡名会变成 Mihomo(Linux 上最大传输单元还会从 9000 变成 1500,Windows 上保存前就是 1500),这本身不影响接管(Linux 版实测改完照常接管)。\n2. **改过「虚拟网卡名称」的**(点这一行的齿轮能看到):把它清空、保存,设置窗口会存成 Mihomo(macOS 上是 utun1024),再关掉、打开一次「虚拟网卡模式」看日志(跟前面一样,停在「日志」页用托盘菜单关开)。Linux 版上实测:名称和系统里已有的网卡重名时,报的是 `configure tun interface: invalid argument`,清空保存后存成 Mihomo,网卡和路由都恢复了。没改过名称的跳过这一步。\n3. 原因里说的是权限不够、被拒绝(在安卓模拟器上以普通权限运行 mihomo 的 linux 构建时,报的是 `permission denied`;Windows 上实测是 `configure tun interface: Access is denied.`,意思是权限被拒的都算)时,多半是内核没拿到建网卡的权限(推断)。Windows 上可以退出 Clash Verge Rev,改为以管理员身份运行,再打开一次「虚拟网卡模式」。**这是作者根据报错含义给的试法,官方没有针对这一行报错的说明**;macOS、Linux 上,或原因是别的内容时,本条覆盖不了,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 找到日志,带着这一整行去求助。\n验证:tun-site-opens\n\n### allow-core-in-firewall\n1. **Windows、2.5.5 或 2.5.6、装了服务**:这条放行规则本该自动加上:2.5.6 的安装包每次运行都会把自带的两个内核复制到 `C:\\ProgramData\\clash-verge-service\\cores`,给这两份副本各加一条入站允许规则,不论装不装服务(Windows 上实测,与源码一致);加失败时只在安装过程里打印一行错误、不会弹提示(按源码)。先让它重试(重装是作者的建议):首页「运行模式」是「管理员 + 服务模式」的,先从托盘退出、按普通方式重新打开——以管理员身份运行时,卸载服务后点开关不会弹安装对话框(Windows 上实测);然后点「虚拟网卡模式」这一行鼠标移上去提示「卸载服务」的垃圾桶图标,再打开开关,在弹窗里点「安装服务」。**也可以点这一行的齿轮图标,把「TUN 模式堆栈」改回默认的 gVisor 并保存**(改之前记下原来选的是哪个,改了网页还是打不开就改回去):内核文档说开着防火墙时用不了的是 System、Mixed 两种堆栈,服务安装器源码的注释也写明需要这条规则的是 System / Mixed 堆栈和局域网监听。重装后还是没有这条规则的,也可以在「设置 → Windows 安全中心 → 防火墙和网络保护 → 允许应用通过防火墙」里手动添加服务目录里那份内核(内核文档写的入口少了「防火墙和网络保护」这一级):它在 `C:\\ProgramData\\clash-verge-service\\cores` 里(Windows 上实测自动规则指向这里;手动添加这一步没有实测)。\n2. **Windows 以管理员身份运行、没装服务,或者用的是 2.5.2(装没装服务都算)**:这时运行的是应用文件夹里那份内核(2.5.2 的服务也直接运行这一份,按源码)。官方术语页要求在系统防火墙里放行 verge-mihomo 和 verge-mihomo-alpha 两个内核程序;入口是「设置 → Windows 安全中心 → 防火墙和网络保护 → 允许应用通过防火墙」(内核文档少写了「防火墙和网络保护」这一级,Windows 上实测),选中内核。两个文件和主程序在同一个文件夹,在「设置」页「Verge 高级设置」里点「内核目录」就能打开;列表里没有的,点「更改设置」「允许其他应用」浏览选中;列表里有、但名称前的框没勾的,点「更改设置」后把它勾上,当前网络类别(「专用」或「公用」)那一栏也要勾着(Windows 上实测,勾上会把原来那条阻止规则改成允许)。防火墙本来就关着的,不用做这一步。改完重新打开「虚拟网卡模式」。\n3. **macOS**:内核文档说一般无需配置(防火墙默认放行签名软件);确认防火墙拦了内核时,可以在「系统设置 → 网络 → 防火墙 → 选项」里添加内核。2.5.5、2.5.6 装了服务的,服务运行的是 `/Library/Application Support/clash-verge-service/cores` 里那份,要添加的应当是它(作者按源码推断,内核文档没说服务模式下放行哪一份);2.5.2 或没装服务的,添加「内核目录」里那份。**Linux**:内核文档说一般无需配置,可以尝试用 iptables 放行虚拟网卡的出站流量,没有给具体命令。确认自己设的防火墙规则拦了虚拟网卡的出站流量时,找到拦住它的那条规则,用你当初设规则的工具(iptables、nftables、ufw 等)调整它,让它不再拦虚拟网卡,别的拦截条件照旧保留(作者建议);不要随手加一条放行这张网卡全部流量的规则,它会连你别的拦截规则一起绕过。网卡名以「日志」页 `Tun adapter listening at:` 后面的名字为准(Linux 版上实测是 Meta,在虚拟网卡设置里保存过一次后是 Mihomo;内核文档的例子写的是 Mihomo)。macOS、Linux 上这两种放行都没有实测。\n验证:tun-site-opens-after-firewall\n\n### remove-extra-adapters\n1. 在「控制面板 → 网络和共享中心 → 更改适配器设置」里,找到你确认已经不用的网卡,先右键「禁用」(能撤回;WSL 的虚拟网卡右键没有「禁用」,Windows 上实测),再重新打开「虚拟网卡模式」试。禁用后有效、又确定以后都不用的,再到设备管理器的「网络适配器」里卸载,或者用装它的那个软件(比如 Hyper-V、WSL、VMware)自带的办法移除。用途拿不准的网卡不要动;禁用后别的软件出了问题,右键「启用」改回来。官方 FAQ 只写了「打开网络设置,删除多余网卡」,先禁用再删是作者的建议;这个入口 Windows 上实测存在,禁用后能不能恢复没有测到(那台机器开 TUN 本来就正常)。\n验证:tun-site-opens\n\n## 验证\n- **tun-switch-stays-on**(人):服务装好后(2.5.5、2.5.6 会自动打开开关),在「设置」页打开「虚拟网卡模式」并确认它开着(没有自动打开的自己打开),关掉「系统代理」;在「代理」页确认选的是「规则」或「全局」、出口是一个节点,再打开一个平时打不开、按配置应该走节点的网页。\n 预期:开关保持打开,这一行不再有橙色三角警告图标,网页正常显示。没做到的(开关弹回、弹出别的提示或网页打不开)或拿不准的,先把刚关掉的「系统代理」开回去,再往下查。\n 通过 → resolved;失败 → tun-service-running-mode;无法判断 → escalate\n- **tun-on-after-service-fix**(人):回「首页」看「系统信息」卡的「运行模式」;再到「设置」页确认「虚拟网卡模式」开着(没有自动打开的自己打开),关掉「系统代理」,在「代理」页确认选的是「规则」或「全局」、出口是一个节点,打开一个平时打不开、按配置应该走节点的网页。\n 预期:「运行模式」是「服务模式」「管理员模式」或「管理员 + 服务模式」,开关保持打开、这一行没有橙色三角,网页正常显示。没做到或拿不准的,先把刚关掉的「系统代理」开回去,再往下查。\n 通过 → resolved;失败 → tun-service-mode-recovered;无法判断 → escalate\n- **tun-site-opens**(人):保持「虚拟网卡模式」打开,关掉「系统代理」;在「代理」页确认选的是「规则」或「全局」、出口是一个节点,再打开一个平时打不开、按配置应该走节点的网页。\n 预期:网页正常显示。打不开或拿不准的,先把刚关掉的「系统代理」开回去,再去求助。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **tun-site-opens-after-firewall**(人):保持「虚拟网卡模式」打开,关掉「系统代理」;在「代理」页确认选的是「规则」或「全局」、出口是一个节点,再打开一个平时打不开、按配置应该走节点的网页。\n 预期:网页正常显示。还是打不开的,先把刚关掉的「系统代理」开回去,再接着查网卡;拿不准的,也先开回去再求助。\n 通过 → resolved;失败 → tun-only-expected-adapters;无法判断 → escalate\n- **verify-core-accepts-config**(人):改好后,在「订阅」页右键这个订阅(用「编辑文件」直接改过它的,更新成功后那些改动会被新下载的内容替换:先抄下来,按 `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config) 的第一步(选对工具)挪到对应的地方)点「更新」。然后**按你最初的症状**再补做一步:原本是导入就报错的,重新导入一次;原本是点订阅卡片激活不了的,回「订阅」页再点一次这张卡片;原本是「代理」页节点组空的,回「代理」页看一眼;原本是「虚拟网卡模式」开不了的,再打开一次(改的是覆写或脚本、没动订阅的,不用先「更新」,直接这样做:打开时客户端会重新生成配置、再交给内核校验),然后关掉「系统代理」,在「代理」页确认选的是「规则」或「全局」、出口是一个节点,打开一个平时打不开、按配置应该走节点的网页。\n 预期:更新不再报错,订阅卡片上的更新时间变成刚才(鼠标移到那段文字上,提示的是「点击查看上次更新时间」,说明显示的是下次更新,先点一下切回来)。**最初的那个症状也要跟着消失——只确认「更新成功」不算通过**:原本是导入报错的,这次导入成功并出现订阅卡片;原本是激活不了的,这次这张卡片变成选中(高亮)的样子、成为正在使用的订阅,而且没有报错(客户端用的可能还是上一份配置);原本是节点组空的,这次「代理」页列出了节点;原本是虚拟网卡模式开不了的,再打开后开关保持打开、没有带 `test failed` 的报错,而且那个网页能正常显示(没做「更新」的只看这一条。没做到的——开关弹回、又报 `test failed`,或者开关能保持打开但网页打不开(说明还有别的原因,比如防火墙没有放行内核)——这一步都不算通过,先把刚关掉的「系统代理」开回去;拿不准的也先开回去)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽`(见 browser-local-network-prompt)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式;服务模式(服务模式的用途是以非管理员身份启动 TUN;使用 TUN 模式需自行放行内核 verge-mihomo 和 verge-mihomo-alpha,不分堆栈))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(打开TUN模式后网络异常(打开网络设置,删除多余网卡);Windows 7 无法使用;服务内核未通过安全检查,已切换到普通模式(Sidecar)(#service-core-permissions:为什么会出现、不想或不会修复:以管理员身份运行「这种方式也可以使用 TUN」、修复权限并恢复服务模式、复制出的原始报错指向 C: 时(只修改安装文件夹或反复重装服务可能无法解决;dangerous=0x00010000 一段:新版服务不再因卷根目录的「删除」权限拦截,若仍被拒绝按新的原始报错继续检查)、不要对整个 C 盘递归重置权限))\n- cvr-faq-macos:https://www.clashverge.dev/faq/macos.html(开启Tun模式系统DNS被修改)\n- mihomo-docs-tun:https://wiki.metacubex.one/config/inbound/tun/(stack(mips 使用 mihomo 自研的 IP 协议栈;紧接其下一段:如果打开了防火墙,则无法使用 system 和 mixed 协议栈——Windows 在「设置 → Windows 安全中心 → 允许应用通过防火墙」选中内核,MacOS 一般无需配置、可尝试在「系统设置 → 网络 → 防火墙 → 选项」添加 mihomo app,Linux 一般无需配置、可尝试 iptables 放行 TUN 网卡出站流量);dns-hijack;auto-detect-interface。这是 mihomo 内核的文档,不是 Clash Verge Rev 的文档)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/components/shared/proxy-control-switches.tsx(L111-L116 齿轮图标;L158-L168 handleTunToggle:没有权限时弹服务对话框并记下待恢复的 enable_tun_mode;L199 开关 active = enable_tun_mode && isTunModeAvailable;L207-L215 橙色三角;L216-L226 卸载服务图标)、src-tauri/src/core/runstate/health.rs L61-L69(tun_capable = is_admin || service_usable)与 L73-L96(service_needs_attention 不含 NotInstalled;tun_should_be_disabled)、src-tauri/src/feat/tun.rs(L19-L37 启动时服务未安装直接关掉 TUN;L40-L84 运行中服务不可用时关掉 TUN 并发出自动关闭通知)、src/hooks/use-system-state.ts、src/components/layout/sysproxy-privilege-dialog.tsx(L29-L49 对话框标题与正文,TUN 弹窗 remedy 恒为 installAndRestart;L101-L156 安装结果:L111-L118 Sidecar 警告、「内核未通过服务运行」报错、成功提示;L160-L170 按钮)、src/hooks/use-service-installer.ts L30-L32 与 service-migration-dialog.tsx L113-L121(permissionFallback 只在安装、重装、修复的结果是 Sidecar 时出现)、src-tauri/src/cmd/service.rs L11-L82(Sidecar 结果只在 Windows 编译里)、src/components/layout/notice-manager.tsx(L24-L29、L71-L98 固定显示简化说明与修复文档链接;L189-L200、L285 右键复制原始原因)、src/components/layout/service-migration-dialog.tsx(L36-L47 按钮选择、L183-L209)、src/components/home/system-info-card.tsx(L88-L98 点「用户模式」直接装服务;L124-L135 下划线样式;L186-L199 运行模式文字)、src/pages/home.tsx(L88-L99 默认显示的首页卡片;L314-L320 系统信息卡排在最后;首页设置按钮与设置对话框)、src/locales/zh/home.json(L6 首页设置、L23 系统信息卡)、src/components/setting/mods/clash-core-viewer.tsx L26-L37(内核列表 Mihomo / Mihomo Alpha)、src-tauri/src/core/tray/menu_def.rs L36 与 src-tauri/src/core/tray/mod.rs L900-L902、src-tauri/src/feat/proxy.rs L72-L95(托盘「TUN 模式」一项切换 enable_tun_mode;文字见 crates/clash-verge-i18n/locales/zh.yml L72)、src-tauri/src/core/autostart.rs L13-L22 与 src-tauri/src/utils/schtasks.rs L10-L43、L331-L352(Windows 开机自启按打开开关时是否管理员建普通或 HighestAvailable 计划任务;只在改「开机自启」时由 src-tauri/src/feat/config.rs L153-L154、L214-L216 调用)、src-tauri/src/core/manager/lifecycle.rs(L193-L232、L595-L599、L643-L684:仅 Windows,服务不可用或版本不符时自动改用 Sidecar)、src-tauri/src/core/runstate/mod.rs L339-L341(改用 Sidecar 时同时允许 Sidecar,不再要求修复)、src/pages/_layout/utils/notification-handlers.ts L85-L97(仅 Windows 的「修复服务」对话框)、L118-L126(sidecarFallback 警告)与 L161-L164(tunMode.autoDisabled 提示)、src/services/notice-service.ts L58(警告默认 6 秒消失)、src/components/layout/notice-manager.tsx L42-L46(通知位置默认右上角)、src-tauri/src/core/service.rs(L46-L50 仅 Windows 的 Sidecar 降级通知;L65-L71 chown 命令,只对 Unix 身份生成;L719-L732 重装、修复都调 install_service;L883-L887 仅 Windows 的修复通知;L888-L891 AppDataRootNotOwned,不限系统)、src/locales/zh/layout.json(L24-L31 需要更新系统服务、版本不符、修复服务)与 settings.json(L27 tunMode.autoDisabled;L238 通知位置;L662 安装服务失败;L687 appDataNotOwned;L689 permissionFallback;L693 sidecarFallback)、src-tauri/src/config/clash.rs L58-L66 与 constants.rs L63-L66(默认 TUN 配置)、src/components/setting/mods/tun-viewer.tsx L74-L78(窗口里网卡名缺省显示 Mihomo / utun1024)与 L103-L109(清空保存时存成 Mihomo,macOS 存成 utun1024)、src-tauri/src/enhance/tun.rs L50-L56(macOS 系统 DNS 改成 114)、src-tauri/src/core/manager/lifecycle.rs L40-L54 与 L590-L600(TUN 开着、服务未安装时启动决定一律是等待,不看是否管理员;非 Windows 版等待就是不启动内核)与 L737-L751(core did not become ready after restart)、src/hooks/use-log-data.ts L115-L129 与 L152-L158(日志页只在列表为空时读取后台保存的日志;「清除」把列表清空)、src/pages/logs.tsx L142-L150(「清除」按钮)、src-tauri/Cargo.toml L102(服务组件 clash-verge-service-ipc v2.7.4)、src-tauri/packages/windows/installer.nsi L964-L980(复制完文件后不论装不装服务,都对 verge-mihomo.exe、verge-mihomo-alpha.exe 各运行一次 clash-verge-service-install.exe --install-core,把自带内核发布到服务目录))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src/components/shared/proxy-control-switches.tsx(L111-L116 这一行的设置入口是 SettingsRounded 齿轮图标;L158-L168 handleTunToggle;L199 开关 active = enable_tun_mode && isTunModeAvailable,按设置显示、不读内核状态;L212-L213 WarningRounded 警告图标,颜色 warning.main;L221 卸载服务的 DeleteForeverRounded 图标)、src/pages/_theme.tsx(warning_color 为 #FF9500 / #FF9F0A)、src/components/setting/setting-verge-advanced.tsx(「内核目录」与「Verge 版本」)、src-tauri/src/cmd/app.rs(open_core_dir 打开主程序所在文件夹)、src-tauri/src/core/service.rs L468-L475(内核与主程序同目录)、src/components/setting/mods/stack-mode-switch.tsx(Mips 堆栈选项)、src/components/layout/sysproxy-privilege-dialog.tsx、src/locales/zh/layout.json 与 settings.json、src-tauri/src/core/runstate/health.rs(tun_capable)、src-tauri/src/config/clash.rs 与 constants.rs(默认 TUN 配置、GUI_KEYS)、src-tauri/src/enhance/tun.rs 与 mod.rs(系统 DNS 改写、discarded_note)、src-tauri/src/feat/window.rs L82-L101(退出时恢复 DNS,限时 1000ms,超时记 warn)与 L195-L225(注销关机时 best-effort)、scripts/unset_dns.sh(按恢复时的默认路由网卡写回)、src-tauri/src/feat/config.rs(切换 TUN 走 update_config_checked)、src-tauri/src/core/manager/lifecycle.rs(L189 起、L592:仅 Windows 的 Sidecar 自动降级,2.5.5 已有)与 src/locales/zh/settings.json L687(sidecarFallback 文字)、sysproxy-privilege-dialog.tsx L140-L141(2.5.5 装服务出错时直接显示原始错误,没有 Sidecar 安装结果)、src-tauri/Cargo.toml L102(服务组件 v2.7.3)、src-tauri/packages/linux/pre-remove.sh L2(升级时运行的是旧包这份脚本,第一件事就是运行服务卸载程序);上面这些文件里,到 v2.5.6 改过的是 sysproxy-privilege-dialog.tsx、core/service.rs、zh/settings.json、core/manager/lifecycle.rs(新增 SidecarAllowed 状态的判断,仅 Windows 自动降级的行为 2.5.5 已有)与 Cargo.toml(服务组件 v2.7.3 改为 v2.7.4),其余没有改动)\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/hooks/use-system-state.ts、src/components/shared/proxy-control-switches.tsx(L110 齿轮图标;L203 active = enable_tun_mode;L208 disabled 与 L225 扳手图标)、src/components/setting/setting-verge-advanced.tsx(「内核目录」与「Verge 版本」)、src-tauri/src/core/service.rs(L42-L45 与 L47-L74 service_core_path:内核路径取主程序旁边那份,macOS 只在应用被系统临时转移时改用安装位置;L480-L486 把这个路径作为 core_path 发给服务)、Cargo.lock L1211-L1213(服务组件 clash_verge_service_ipc 2.3.3,钉到 b964ed2)、src-tauri/src/feat/config.rs、src-tauri/src/config/config.rs、src-tauri/src/core/manager/config.rs、src-tauri/src/core/validate.rs、src-tauri/src/enhance/tun.rs、src/locales/zh/settings.json)\n- cvr-service-ipc-v2-3-3:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b964ed2992599fadefd589425c1acdabcb875623(src/core/manager.rs L285-L297 start_core:L296 run_with_logging(&config.core_config.core_path, …) 直接运行客户端发来的内核路径(即应用文件夹里那份);这个版本的 src 里没有复制内核、批准副本或防火墙规则的代码)\n- cvr-changelog-v2-5-4:https://github.com/clash-verge-rev/clash-verge-rev/blob/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576/docs/Changelog.history.md(v2.5.4 一节(未单独发正式版,改动随 v2.5.5 发布):L29 修复 Windows 服务模式下 TUN 使用 system/mixed 堆栈时无法接管流量、防火墙放行规则改为自动添加;L58 新增 TUN「Mips」堆栈选项,需配合 mihomo v1.19.31 及以上内核;TUN 权限引导;TUN 配置界面设置优先)\n- cvr-changelog-md-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/blob/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576/Changelog.md(v2.5.5 优化改进 L34:扩展配置或脚本写入由应用设置接管的字段时,弹出提示并在扩展日志中记录该值已被丢弃)\n- cvr-changelog-md-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/blob/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b/Changelog.md(v2.5.6 L1-L31:修复 Windows 系统隔离权限被误判导致服务模式和 TUN 无法使用;修复 Windows 旧版服务状态残留导致无法重装;优化 Windows 服务安全检查失败提示并提供修复文档链接;macOS 修复残留的服务进程导致内核无法启动、「继续使用 Sidecar」失败;macOS 用户目录在外置磁盘时给出修复命令)\n- cvr-service-ipc-v2-7-3:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/29251d968e1a38fac1de0ebe9d6d69402bea83b4(src/bin/install_service.rs L336-L362(安装服务时给服务专用的内核副本加防火墙入站规则,注释 L337-L338:应用文件夹的规则管不到这份副本,TUN system/mixed 堆栈和局域网监听需要它;失败只打印错误)、src/bin/shared/mod.rs L90-L101(规则名)、src/channel.rs(服务显示名)、src/core/trusted_core_location.rs L211 与 L247(旧措辞 is owned by / is writable by an account other than SYSTEM, Administrators or TrustedInstaller)、src/core/runtime_generation/assets.rs L386-L427(服务只运行批准的内核副本))\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/bin/install_service.rs L340-L365(加规则的函数:给批准的内核副本加防火墙入站规则,已启用、操作为允许,注释:TUN system/mixed stacks and LAN listeners need the rule,与 v2.7.3 相同;失败只打印错误)、L392-L405(--install-core 装完每份内核就调用它)、src/bin/shared/mod.rs L92-L101(规则名「Clash Verge Service core (<内核文件名>)」)、src/core/trusted_core_location.rs(L19-L21 位置不可信时返回 InvalidInstallLocation;L33-L66 macOS;L71-L104 Linux:到根目录每一级归 root、组和其他人不可写;L163-L177 Windows:从内核一直查到卷根目录)、src/core/runtime_generation/assets.rs L386-L427(validate_core_path / approved_core_copy:服务只运行自己目录里批准的内核副本,各系统相同)、src/core/trusted_core_location.rs L227 与 L278(is owned by / has an untrusted write ACE 措辞)、src/core/paths.rs L65 与 L184-L205(批准的内核副本放在服务自己的目录 cores 下:macOS /Library/Application Support/clash-verge-service,Linux /var/lib/clash-verge-service)、src/core/paths/windows.rs(Windows 上这个目录在 ProgramData 下))\n- cvr-service-ipc-firewall-rule:https://github.com/clash-verge-rev/clash-verge-service-ipc/commit/1ac4a5c9f7b06639ea674145e21b0b20f985ffb8(fix(installer): admit staged cores through Windows Firewall——服务安装器开始自动给内核副本加防火墙放行规则的提交;说明原文:服务运行 %ProgramData% 下自己的内核副本,用户给应用旁边那份内核加的规则不再匹配(no longer matches),于是 Windows 防火墙丢掉 TUN system/mixed 堆栈的流量,gvisor 仍可用)\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(main.go(-t 校验只解析配置、失败时输出 test failed);listener/listener.go(ReCreateTun:建网卡失败只记 Start TUN listening error);listener/sing_tun/server.go L39 与 L80-L88、L150-L154(配置没写 device 时网卡默认名 Meta;macOS 上强制为 utun 加最小空闲编号))\n- exp-tun-mode-not-working-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-tun-adapter-fail-android-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-tun-mode-not-working-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-firewall-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-service-admin-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"tun-vs-system-proxy":{"id":"tun-vs-system-proxy","type":"concept","title":"Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN","aliases":["要不要开TUN","tun 是什么","TUN 和系统代理选哪个","系统代理和 tun","游戏走不走代理","命令行走不走代理","系统代理管不管游戏","游戏不走代理","系统代理和虚拟网卡的区别","开 TUN 要不要装服务","不装服务能不能用 TUN","以管理员身份运行 TUN","TUN 模式需要系统服务"],"primary_topic":"basics","topics":["basics","clash-verge-rev","tun-and-service"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos"],"panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN\n\n主题:`基础概念`\n适用:clash-verge-rev / windows/macos / any\n最后验证:2026-09-27\n标记:信息说明\n\n> Clash Verge Rev 里的系统代理只是一种「约定」——只有自己去读系统代理设置的程序才会走它,而且不能代理 UDP。TUN 模式改的是系统路由,TCP 和 UDP 一并接管,不问程序愿不愿意;代价是要额外的权限,还可能要给内核放行防火墙(官方术语页不分平台;内核文档只说 System、Mixed 堆栈:开着防火墙时 Windows 要放行,macOS、Linux 一般无需配置)。权限来自装服务模式;在 Windows 上,以管理员身份运行、不装服务也能用 TUN(2.5.6 界面文案与官方 Windows FAQ)。macOS 走服务模式。浏览器的大部分需求,系统代理就能处理。\n\n这两个开关决定的是**哪些程序的流量会进到 Clash Verge Rev**:系统代理要程序自己配合,虚拟网卡模式不需要。\n\n## 系统代理:一种约定,程序可以不理它\n\n代理程序会在系统**「约定」**的特定位置(如注册表、系统变量等)写下自己监听请求的端口信息;进行网络请求的应用会**自发性**地去读这部分信息,再把请求发过来。\n\n关键在「自发性」。官方把它称为**行业内的「约定」,并非所有程序都遵守这种非强制性的「约定」,最终采取哪种方式发起请求往往取决于开发人员的意愿**。\n\n还有一条硬限制:系统代理**不能代理 `UDP` 流量(如游戏数据包)**。\n\n所以「开了代理但游戏连不上」不一定是节点坏了——可能那个程序根本没在走代理。\n\n## 虚拟网卡模式(TUN):改路由,不问程序\n\n代理程序创建一张虚拟网卡,通过配置操作系统的路由把网络请求**重定向**到这张网卡,从而**拦截和处理所有流量(`TCP`/`UDP`)**并转交给本地的代理程序。\n\n官方给出的用途很直白:**接管不支持「系统代理」的程序(例如游戏和命令行)**。\n\n## 它的代价:权限与防火墙\n\n- **权限。** 官方术语页的说法是「**服务模式的用途是能够以非管理员身份启动 TUN 模式**」:服务模式以管理员身份安装并启动,由它「拉起」内核,内核因此跑在管理员权限下。**在 Windows 上,另一条途径是以管理员身份运行**:2.5.6 在服务内核没通过安全检查时的提示写着「普通权限下无法使用 TUN……可直接以管理员身份运行软件,无需安装服务」,源码里判断能不能开 TUN 的条件也是「以管理员身份运行,或者服务可用」,装服务失败后按「管理员兜底」继续也只在 Windows 上成立;官方 Windows FAQ 写着不装服务、直接以管理员身份运行,「这种方式也可以使用 TUN」。Windows 上实测,以管理员身份运行、不装服务能开 TUN。**macOS 上不适用**:源码里的「管理员」在 macOS 上指的是以 root 身份运行这个程序,用管理员账户登录不算;以 root 运行不是常规用法,本条不作建议,macOS 走服务模式。服务模式怎么装、装不上怎么办,见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)。\n- **两样都没有时,开关会先弹引导。** 设置页「虚拟网卡模式」这一行会带一个橙色三角,提示「TUN 模式需要安装服务模式或管理员模式」;点开关弹出「TUN 模式需要系统服务」,正文是「TUN 模式需要 Clash Verge 系统服务才能接管网络流量。安装完成后会自动为你开启 TUN 模式。」,点「稍后再说」开关仍然关着(2.5.6 在 Linux 上实测,Windows 上三角提示与对话框字样相同)。装了服务还是开不了,见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n- **防火墙。** 官方术语页说**使用 TUN 模式需要自行对系统防火墙放行内核**。Windows 上,2.5.5 起服务运行的那份内核会自动得到入站放行规则(更新说明):2.5.6 的安装包每次运行都会把自带的两个内核复制到 `C:\\ProgramData\\clash-verge-service\\cores`,给这两份副本各加一条规则,不论装不装服务(Windows 上实测,与源码一致);加不上只打印错误(按源码)。术语页这句话还没有跟着改。这两条规则只管服务目录里那份内核,安装目录里的内核没有自动规则;不装服务、以管理员身份运行时,内核从安装目录启动,所以术语页「自己放行内核」的提醒仍然适用(按源码与官方文档,没有在 Windows 上实测)。mihomo 内核文档的说法限定在 System、Mixed 两种堆栈、并且分平台:开着防火墙时这两种堆栈用不了,要用它们,Windows 要在系统防火墙里放行内核,macOS、Linux 一般无需配置(macOS 防火墙默认放行签名软件)。它是内核的文档,不是 Clash Verge Rev 的,与术语页那句不分平台的说法口径不同;macOS 上确认防火墙拦了内核再去放行,怎么查见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n- **它不随客户端关闭。** `clash-verge-service` 是独立于 Clash Verge Rev 之外的进程,不会随它关闭。\n\n这几项没做到位时的具体表现与排查顺序,见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)。\n\n## 怎么选\n\n| 你要让什么走代理 | 开哪个 |\n|---|---|\n| 浏览器 | 系统代理**能处理大部分通过浏览器的需求** |\n| 游戏、命令行这类不读系统代理设置的程序 | 虚拟网卡模式 |\n| 需要 UDP(游戏数据包) | 虚拟网卡模式——系统代理做不到 |\n\n**开了虚拟网卡模式之后还要不要留着系统代理**,以及另一组开关(决定进来的流量从哪个出口出去)管什么,见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。只开虚拟网卡、系统代理关着时,Chrome 可能开始问某些网站能不能连本地网络上的设备,这是浏览器的权限提示,见 `开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽`(见 browser-local-network-prompt)。\n\n上面这些都是「流量怎么进到 Clash Verge Rev」。网页仍然打不开时,见 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)。\n\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `开了虚拟网卡(TUN)后,浏览器问网站能不能连接本地网络上的设备:点允许还是屏蔽`(见 browser-local-network-prompt)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n- `检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法`(见 webrtc-leak)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理、Tun 模式、服务模式)\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(打开代理(或开启 Tun 模式))\n- cvr-faq-windows:https://www.clashverge.dev/faq/windows.html(服务内核未通过安全检查,已切换到普通模式(Sidecar)→ 不想或不会修复:以管理员身份运行(可以不安装服务,直接以管理员身份运行 Clash Verge Rev,这种方式也可以使用 TUN))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/core/runstate/health.rs L66-L69(tun_capable = is_admin || service_usable);crates/tauri-plugin-clash-verge-sysinfo/src/lib.rs L113-L123(is_admin:非 Windows 上是 geteuid() == 0,即以 root 身份运行;Windows 上看进程令牌的权限级别);src/components/layout/sysproxy-privilege-dialog.tsx L124-L130(装服务失败后的管理员兜底只在 getSystem() === 'windows' 时成立);src-tauri/src/core/manager/lifecycle.rs L392(注释 Elevation alone carries TUN on Sidecar);src/components/shared/proxy-control-switches.tsx L158-L168(没有 TUN 权限时点开关弹服务引导,开关不打开)、L207-L214(橙色三角提示);src/components/layout/sysproxy-privilege-dialog.tsx L40、L48(tunNeedsService 用的标题与正文);src/locales/zh/layout.json L46、L50-L51(稍后再说;TUN 模式需要系统服务……安装完成后会自动为你开启 TUN 模式);src/locales/zh/settings.json L36(TUN 模式需要安装服务模式或管理员模式)、L689(普通权限下无法使用 TUN……可直接以管理员身份运行软件,无需安装服务);src-tauri/Cargo.toml L102(clash-verge-service-ipc 钉在 v2.7.4);src-tauri/packages/windows/installer.nsi L964-L980(复制完文件后不论装不装服务,都对 verge-mihomo.exe、verge-mihomo-alpha.exe 各运行一次 clash-verge-service-install.exe --install-core <路径> --sha256 <摘要>,把自带内核发布到服务目录;失败不致命))\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/bin/install_service.rs L340-L365(加规则的函数:给服务专用的内核副本加入站允许规则,注释写应用文件夹的规则管不到这份副本;失败只打印错误;非 Windows 为空函数)、L392-L405(--install-core 装完每份内核就调用它,每份各加一条))\n- cvr-firewall-auto-rule-commit:https://github.com/clash-verge-rev/clash-verge-rev/commit/1d9bca13c823a766a873ee69e519f227ab9da3e3(chore(deps): bump clash-verge-service-ipc to v2.7.0——The service installer now admits the staged core copies through Windows Firewall, so TUN system/mixed stacks pass traffic in service mode again without users re-allowing the new path by hand(更新说明 2.5.4 一节:防火墙放行规则改为自动添加;2.5.4 没发正式版,随 2.5.5 发布))\n- mihomo-docs-tun:https://wiki.metacubex.one/config/inbound/tun/(stack(mips 使用 mihomo 自研的 IP 协议栈;紧接其下一段:如果打开了防火墙,则无法使用 system 和 mixed 协议栈——Windows 在「设置 → Windows 安全中心 → 允许应用通过防火墙」选中内核,MacOS 一般无需配置、可尝试在「系统设置 → 网络 → 防火墙 → 选项」添加 mihomo app,Linux 一般无需配置、可尝试 iptables 放行 TUN 网卡出站流量);dns-hijack;auto-detect-interface。这是 mihomo 内核的文档,不是 Clash Verge Rev 的文档)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-firewall-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:107dc7f 2026-10-02\n"},"uninstall-and-reset":{"id":"uninstall-and-reset","type":"howto","title":"彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪","aliases":["Clash Verge 彻底卸载","Clash Verge 卸载干净","Clash Verge 重置","Clash Verge 恢复初始设置","Clash Party 卸载","Clash Party 彻底卸载","Clash Party 重置","v2rayN 卸载","v2rayN 删除干净","v2rayN 重置","Karing 卸载","Karing 电脑版卸载","Karing 卸载重装 还是旧配置","代理软件 卸载干净","代理软件 卸载后 残留","卸载重装后 订阅还在"],"primary_topic":"install-and-download","topics":["install-and-download","clash-verge-rev","clash-party","v2rayn","karing"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn","karing"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪\n\n主题:`客户端` › `下载、安装与系统要求`\n适用:clash-verge-rev/clash-party/v2rayn/karing / windows/macos/linux / any\n最后验证:2026-10-01\n\n**彻底卸载 = 卸载软件 + 手动删掉数据目录和自启项。** Clash Verge Rev、Clash Party、Karing 卸载默认不删订阅和设置(两个 Clash 客户端实测,Karing 按源码),卸了再装还是旧订阅、系统代理照旧开着;v2rayN 免安装版删文件夹就一起删了。**只想恢复到刚装好的样子**:不用卸载,退出后把数据目录改个名再打开(作者建议,Linux 实测有效),改回原名就能找回。\n\n卸载前先关掉系统代理、虚拟网卡(TUN)和开机自启,再正常退出(作者建议):卸载本身不碰系统代理,正常退出才会关掉它;软件没正常退出就没了,系统代理会留在「开」,浏览器报 `ERR_PROXY_CONNECTION_FAILED`,软件卸掉后只能手动关(Linux 实测;Clash Party 在 Windows 上也实测到)。\n\n## 数据目录在哪\n\n| 软件 | Windows | macOS | Linux | 软件里打开它 |\n|---|---|---|---|---|\n| Clash Verge Rev | `%APPDATA%\\io.github.clash-verge-rev.clash-verge-rev` | `~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev` | `~/.local/share/io.github.clash-verge-rev.clash-verge-rev` | 「设置 → Verge 高级设置 → 配置目录」 |\n| Clash Party | `%APPDATA%\\mihomo-party`;便携版在程序文件夹里的 `data`(按源码) | `~/Library/Application Support/mihomo-party` | `~/.config/mihomo-party` | 托盘「打开目录 → 应用目录」 |\n| v2rayN | 免安装版在程序文件夹里(`guiConfigs` 等) | `~/Library/Application Support/v2rayN` | `~/.local/share/v2rayN` | 「设置 → 打开存储所在的位置」 |\n| Karing | 用右边的入口打开;便携模式在 `karing.exe` 旁的 `profiles` | 同左(不含便携模式) | 同左(不含便携模式) | 「关于 → 开发者选项 → 打开文件目录」 |\n\n两个 Clash 客户端的位置 Windows、Linux 实测,Mac 按源码;Clash Verge Rev 另有不含订阅的同名缓存目录(Windows `%LOCALAPPDATA%`、Mac `~/Library/Caches`、Linux `~/.cache` 下)。v2rayN 程序文件夹不能写时(Program Files、WinGet、dmg、deb)改存用户目录,Windows 是 `%LOCALAPPDATA%\\v2rayN`,macOS、Linux 按源码推算、没有核实。Karing 按公开的部分源码。\n\n## 卸载会留下什么\n\n- **Windows**:Clash Verge Rev 卸载后 `C:\\ProgramData\\clash-verge-service`、两条防火墙规则、Program Files 里的 `resources\\sysproxy.exe` 和 `resources\\locales` 留着(实测);开机自启的计划任务「Clash Verge」或「Clash Verge (Admin)」、Clash Party 的「mihomo-party」,卸载程序都不删(按源码)。Karing 卸载只删程序文件夹(按安装脚本)。\n- **Linux(实测)**:数据目录和 `~/.config/autostart` 里的 `.desktop` 留着;Clash Verge Rev 还留下 `~/.config`、`~/.cache` 下的同名目录和 `~/.local/share/applications/clash-verge-handler.desktop`,Clash Party 在 `~/.config/mimeapps.list` 里留两行。装着服务、开着 TUN 时卸载 Clash Verge Rev,服务和虚拟网卡立刻没了,服务目录和指向已不存在网卡的 `ip rule` 留着(这台虚拟机里不影响上网),系统代理约 14 秒后被还开着的 Clash Verge Rev 清掉。\n- **Mac**:先在 Karing「设置」里点「删除系统VPN配置」再删 app(作者建议,没有在 Mac 上试过)。\n\n## 只想重置、不卸载\n\n退出软件,把数据目录改名再打开:Clash Verge Rev 是没有订阅、系统代理关着的初始状态,Clash Party 弹出首次启动教程(Linux 实测)。**自启项不跟着重置**:旧 `.desktop` 文件还在,Clash Party 的「开机自启」因此显示为开。**卸载再装回不等于重置**:装回后沿用原来的数据目录,系统代理直接是开的(实测)。\n\n- Clash Party 设置页的「重置软件」按源码会退出、删掉整个数据目录再启动,不碰自启项(没有实测)。\n- Clash Verge Rev 旧目录拷回去前,先删掉其中的 `singleton-instance.json`、`singleton-instance.lock`,不然 Windows 上 2.5.6 起不来(实测)。\n- v2rayN 改名 `guiConfigs`,找不到时会新建一份(按源码);Karing「设置」里的「重置设置」只恢复设置项(按公开的部分源码)。\n\niPhone 上:系统「设置 → VPN」里可以直接删掉 Karing 装的 VPN 配置(实测,见 `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run))。安卓本站没有核对。\n\n## 这些说法怎么核对的\n\n按 Clash Verge Rev 2.5.6、Clash Party 2.0.3、v2rayN 7.24.9 与 Karing 1.2.25(公开部分)的源码和 Apple 文档核对;「实测」在 Windows 11 实机或 Linux 虚拟机(Ubuntu,官方 deb,GNOME)上做过。macOS、Karing 电脑版、v2rayN 的卸载没有实测。\n\n## 步骤\n1. **要留订阅的先备份**(不打算再用的跳过):Clash Verge Rev 照 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)「升级前、动手清理前先备份」导出到配置目录以外;Clash Party 用设置页「备份与恢复」的「导出备份」(按源码);v2rayN 把数据目录里的 `guiConfigs` 复制到别处(作者建议);Karing 用「设置 → 备份与同步」(按公开的部分源码)。备份里有你的订阅,别发给别人。\n 失败时 → escalate\n2. **在软件里关掉系统代理、虚拟网卡(TUN)和开机自启,再正常退出**(作者建议)。点窗口的 × 只是隐藏,Clash Party 的「轻量模式」会留着内核和系统代理(Linux 实测)。开机自启的开关:Clash Verge Rev「设置 → 系统设置 → 开机自启」,Clash Party 设置页「开机自启」,v2rayN「设置 → 参数设置 → v2rayN 设置」的「开机启动 (可能会不成功)」,Karing(Windows)「设置 → 开机启动」。关掉开关会删掉启动项(按源码,Karing 没核对),卸载却不删(Linux 实测)。\n 失败时 → escalate\n3. **Clash Verge Rev 装过服务的先卸服务**(首页是「服务模式」的,以及服务停了、被切回 Sidecar 或用户模式运行的——服务可能还装着):做法见 `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)「怎么卸载、切回用户模式」,看不到卸载图标的用那里的命令。Windows 上直接卸软件会留下服务的防火墙规则(实测),Mac 上删 app 不会撤掉服务(按源码)。\n 失败时 → escalate\n4. **卸载软件。** Windows:在系统「设置」的应用列表里卸载(作者建议;Clash Verge Rev 叫 Clash Verge);卸载窗口里的「删除应用程序数据」(Clash Verge Rev,实测)和「同时删除用户数据(设置、订阅、日志等)」(Clash Party,按源码)默认不勾,勾上才连订阅一起删。macOS:把「应用程序」里的它拖到废纸篓(按 Apple 文档)。Linux 的 deb:`sudo apt purge clash-verge`、`sudo apt purge mihomo-party`(Clash Party 用 remove 会在 dpkg 里留记录),都不删用户目录;软件开着时卸载不会结束它,卸完在窗口里点「退出」(都是实测)。v2rayN、Karing 的包名是 `v2rayn`、`karing`(按打包脚本);v2rayN 免安装版退出后删掉文件夹。\n 失败时 → escalate\n5. **要清干净,手动删掉数据目录**(见正文的表;软件里的入口要在卸载前打开)。Linux 上再删 `~/.config/autostart` 里的 `Clash Verge.desktop` 或 `mihomo-party.desktop`(实测卸载后还在)。装过 Clash Verge Rev 服务的,再删服务目录(Windows `C:\\ProgramData\\clash-verge-service`,Linux `/var/lib/clash-verge-service`,Mac `/Library/Application Support/clash-verge-service`,要管理员权限),里面有含订阅内容的运行时配置(Windows、Linux 实测,Mac 按源码)。\n 失败时 → escalate\n\n## 验证\n- **uar-clean-check**(人):重启电脑,打开一个国内网站,再看系统代理和卸掉的服务。\n 预期:网页能打开;卸掉的软件没有自己启动;系统代理是关的:Windows「设置 → 网络和 Internet → 代理」里「使用代理服务器」和「使用设置脚本」都是「关」,Linux GNOME「设置 → 网络 → 代理」里「网络代理」开关是关的(macOS 本站没有核对)。卸过 Clash Verge Rev 服务的,Windows 上 `sc query clash_verge_service` 报 1060,Linux 上 `systemctl show --property=LoadState --value clash-verge-service.service` 输出 not-found(都是实测)。系统代理还开着、地址以 127 开头的,按 `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet) 关掉。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 Karing(iPhone):首次向导、导入订阅、允许添加 VPN 配置、选节点`(见 karing-ios-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/utils/dirs.rs L11-L14、L28-L32(配置目录 = 系统数据目录下的 io.github.clash-verge-rev.clash-verge-rev);src/locales/zh/settings.json L13、L22(「系统设置」里的「开机自启」)、L183、L186(「Verge 高级设置」与配置目录按钮的提示「如果软件运行异常,!备份!并删除此文件夹下的所有文件,重启软件」)、L197(备份设置);src/components/setting/setting-system.tsx L50-L62(开机自启开关);src-tauri/src/core/autostart.rs L13-L36(Windows 用计划任务,其余系统用 tauri-plugin-autostart);src-tauri/src/utils/schtasks.rs L11-L12(计划任务名「Clash Verge」「Clash Verge (Admin)」)、L331-L380(关掉开机自启时删除计划任务);src-tauri/packages/windows/installer.nsi L410-L447(卸载页「删除应用程序数据」复选框,创建时不勾)、L1097-L1105(卸载时执行 RemoveVergeService,宏在 L660)、L1113-L1132(只清旧版写在注册表 Run 里的启动项)、L1280-L1286(删 HKCU Run 里的启动项)、L1288-L1304(勾了才删 %APPDATA% 与 %LOCALAPPDATA% 下的同名目录);installer.nsi 全文没有 schtasks;src-tauri/packages/linux/pre-remove.sh L1-L2(deb、rpm 卸载前运行 /usr/bin/clash-verge-service-uninstall);src-tauri/tauri.linux.conf.json L13-L14、L24)\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/core/paths.rs L58-L60、L185-L205(服务目录:macOS /Library/Application Support/clash-verge-service、Linux /var/lib/clash-verge-service);src/core/paths/windows.rs L30-L38(Windows 在 ProgramData 下);src/bin/uninstall_service.rs L15-L87(卸载时删内核副本,Windows 另删防火墙规则)、L107-L150(macOS:删 LaunchDaemons 配置与 .bundle,服务目录里的其余文件留着))\n- cvr-uninstall:https://www.clashverge.dev/uninstall.html(卸载软件 → 相关文件及目录:Windows %APPDATA% 与 macOS ~/Library/Application Support 下的配置(软件工作)目录;三个平台的「WebView 缓存目录」一行(Windows %LOCALAPPDATA%、macOS ~/Library/Caches、Linux ~/.cache 下的 io.github.clash-verge-rev.clash-verge-rev))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(package.json L2(name 为 mihomo-party);src/main/utils/dirs.ts L8-L37(数据目录是 Electron 的 userData,程序目录有 PORTABLE 文件时用程序目录下的 data);src/main/resolve/tray.ts L326-L338(托盘「打开目录 → 应用目录」打开数据目录);src/main/sys/autoRun.ts L12(启动项名 mihomo-party)、L111-L217(开机自启:Windows 建计划任务 mihomo-party,Linux 写 ~/.config/autostart/mihomo-party.desktop)、L219-L253(关掉时删除计划任务、注册表 Run 项与 Linux 的 .desktop);src/renderer/src/components/settings/general-config.tsx L268 与 src/renderer/src/locales/zh-CN.json L79(「开机自启」);src/main/lifecycle.ts L106-L110、L165-L167(正常退出时关掉系统代理);build/installer.nsh L1-L84(卸载页「同时删除用户数据(设置、订阅、日志等)」默认不勾,勾了才删 %APPDATA% 下的数据目录;全文没有删计划任务);build/linux/postuninst(只删 /usr/bin/clash-party 链接、刷新系统缓存);src/main/sys/autoRun.ts L104-L106(Linux 上按 ~/.config/autostart/mihomo-party.desktop 是否存在显示开机自启);src/main/sys/misc.ts L108-L135(重置软件:退出、等进程结束后删掉整个数据目录再启动)与 zh-CN.json L423-L425(「重置软件」「删除所有配置,将软件恢复初始状态」);src/renderer/src/components/settings/local-backup-config.tsx L71-L80 与 zh-CN.json L320-L324(「备份与恢复」「导出备份」))\n- electron-app-docs-v43-7-3:https://github.com/electron/electron/blob/79de330422c91960492053e3e7d894911eddb55a/docs/api/app.md(L612-L620(appData 在 Windows 是 %APPDATA%、macOS 是 ~/Library/Application Support;userData 默认是 appData 加应用名))\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Common/Utils.cs L1029-L1061(HasWritePermission:程序目录不能写、有 NotStoreConfigHere.txt、或是 WinGet 安装路径时判为不可写)、L1084-L1092(StartupPath:此时改用 LocalApplicationData 下的 v2rayN)、L1123-L1125(guiConfigs 在 StartupPath 下,不在就新建);v2rayN/ServiceLib/Handler/AutoStartupHandler.cs L9-L40(按开关先清再设启动项)、L44-L78(Windows:普通身份写注册表 Run 项 v2rayNAutoRun_<哈希>,管理员身份建计划任务)、L129-L174(Linux:~/.config/autostart/v2rayN.desktop)、L176-L250(macOS:LaunchAgents);v2rayN/ServiceLib/Global.cs L78-L79;v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L417-L418、L432-L433、L717-L718、L732-L733(设置、参数设置、v2rayN 设置、「开机启动 (可能会不成功)」);ServiceLib/Enums/ESysProxyType.cs、SysProxy/SysProxyHandler.cs L7-L50 与 Manager/AppManager.cs L128(退出时按系统代理选项处理,默认清除);package-debian.sh L515、L622(deb 包名 v2rayn,装在 /opt/v2rayN);package-osx.sh(NotStoreConfigHere.txt))\n- dotnet-runtime-v10-0-0:https://github.com/dotnet/runtime/blob/60629d14374c56f1cb51819049ad1fa529307f8d/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs(SpecialFolder.LocalApplicationData:macOS 为 Application Support 目录;其它 Unix 为 $XDG_DATA_HOME,未设置时为 ~/.local/share)\n- karing-repo:https://github.com/KaringX/karing/tree/0c320dc182d095ec0d483f852169421e749c2bac(公开的部分源码(数据目录的路径定义 lib/app/utils/path_utils.dart 不在公开部分):lib/screens/about_screen.dart L336-L344(电脑版「关于 → 开发者选项」里的「打开文件目录」打开配置目录);lib/screens/settings_screen.dart L799(备份与同步)、L910-L930(Windows 的「开机启动」)、L953-L966(便携模式)、L973-L1049(「删除系统VPN配置」只在 iOS、macOS 显示)、L1304-L1320(重置设置只重置设置项)、L1321-L1362(清理缓存:删缓存目录、配置数据目录里的缓存与日志、WebView 缓存);lib/i18n/zh-CN.i18n.json L10、L248、L251-L252(退出便携模式:退出后删掉 karing.exe 同目录下的 profiles 文件夹)、L259、L267-L268、L472、L530;windows/packaging/exe/inno_setup.iss L77-L80(卸载时只额外删程序文件夹里的 data);linux/packaging/deb/make_config.yaml(包名 karing))\n- ms-windows-proxy-server:https://support.microsoft.com/zh-cn/windows/experience/connectivity-networking/use-a-proxy-server-in-windows(在 Windows 中使用代理服务器:设置 → 网络 & Internet → 代理;「手动代理设置」下「使用代理服务器」旁选择「设置」,在「编辑代理服务器」对话框里打开或关闭「使用代理服务器」,选择「保存」;「使用设置脚本」旁选择「设置」,在「编辑设置脚本」对话框里打开「使用设置脚本」、输入脚本地址、保存)\n- apple-mac-uninstall-apps:https://support.apple.com/zh-cn/guide/mac-help/mh35835/mac(在 Mac 上安装和卸载来自互联网或光盘的 App → 卸载 App:在「访达」边栏点「应用程序」,App 有卸载器时运行它,否则把 App 拖到废纸篓)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-broken-after-client-update-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-karing-ios-first-run-gui-2026-10-01:验证记录(内部存档,未公开)\n- exp-proxy-residue-uninstall-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n\n最后修订:51f7ce4 2026-10-02\n"},"upgrade-core":{"id":"upgrade-core","type":"howto","title":"Clash Verge Rev 怎么单独升级内核","aliases":["升级内核","更新内核","内核怎么升级","单独升级内核","升级内核的按钮","升级内核失败","升级内核 Permission denied","升级内核 拒绝访问","升级内核后内核没了"],"primary_topic":"clash-verge-rev","topics":["clash-verge-rev","updates"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# Clash Verge Rev 怎么单独升级内核\n\n主题:`客户端` › `Clash Verge Rev`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-09-27\n\nClash Verge Rev 的内核可以单独升级,不必等新版的 Clash Verge Rev:在「设置」页打开「Clash 内核」窗口,点「升级内核」。\n\n- **升到哪个版本**:正在用哪个内核就升哪个,「Mihomo」升到最新的正式发布,「Mihomo Alpha」升到最新的 Alpha 预发布。两种内核与各发版渠道的版本号怎么看,见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)。\n- **怎么升的**:2.5.5、2.5.6 里(两版这部分源码相同;2.5.4 没有逐条核对)是 Clash Verge Rev 自己去 GitHub 取版本号、下载内核:先经它自己的代理端口(按你的规则和模式转发),不通再试系统代理(系统代理没开时这一步和直连一样),最后直连;Linux 版上实测时规则把所有流量交给节点,去 GitHub 的请求确实经节点出去了。下载的文件先在内核旁边暂存、确认能运行且版本对,再换掉旧的,然后重启内核,所以提示「内核版本已更新」时重启已经完成。\n- **升级之后**:新版本的内核可能改变或移除旧的配置项,`mihomo 内核报错信息表`(见 mihomo-error-catalog) 里就有这一类,例如「`global-client-fingerprint` 配置已移除」那一行:内核照常启动,但这项全局设置不再生效。升级后打不开网页、更新订阅失败,或者某项设置不再起作用,拿提示去那里查。升级后内核起不来、「代理」页空着的,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error);升级的是 Clash Verge Rev 软件本身、装完出问题的,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。\n- **用服务模式时**:只有内核所在的文件夹能写(见下一节)时才会走到这一步。服务只运行经管理员批准的内核副本,所以换好文件后,Clash Verge Rev 要经系统的管理员授权把新内核交给服务,这时会弹授权框;拒绝的话会换回旧内核(旧内核能读出版本时)。但以管理员身份运行时(首页「管理员 + 服务模式」)不弹授权框,直接交给服务,服务目录里的那份也一起换成新的(Windows 上实测)。文件夹写不进去时(例如 Linux 的 deb 安装,或 Windows 上以普通身份运行),在换文件那一步之前就失败了,不会弹授权框(Windows 上实测)。另一种情况:在普通模式下升级、之后再开服务模式(比如为了 TUN),服务仍跑它之前批准的旧内核;这时在服务模式下再点「升级内核」,只要没有更新的版本出来,会提示「已经是最新内核版本」、不会交给服务,要重装一次服务才换成新的。弹授权框、拒绝后换回旧内核和这种情况都只按源码,没有在机器上试过。\n\n## 报错之后\n\n失败时提示是红色的「操作失败」,后面跟一段原因(开头多是英文)。这条提示大约 8 秒后自己消失,上面没有复制按钮;实测那次失败,报错本身也没有写进日志(`latest.log` 里只有一行 `downloading`),所以看到就先截图或抄下原因。**只有提示「已经是最新内核版本」才表示已经是最新**,别的失败提示不代表没有新版本。按源码,常见的原因有这几种:\n\n| 原因里的字样 | 意思 | 本机的内核 |\n|---|---|---|\n| `… could not reach …/version.txt`、`… returned status …` 或 `… returned an unusable version` | 三条路都没取到版本号(原因里写的是最后一条直连的结果) | 没动 |\n| `failed to download …` | 取到了版本号,下载内核包失败 | 没动 |\n| `failed to create …tmp: Permission denied` | 内核所在的文件夹不让写(这是 Linux 上的原文;中文 Windows 上实测是 `failed to create …tmp: 拒绝访问。 (os error 5)`,见下文) | 没动 |\n| `the staged core is not runnable` | 下载的内核运行不起来 | 没动 |\n| `core replaced but not accepted by the service` | 服务模式下没把新内核交给服务(例如拒绝了授权) | 换回旧的(旧内核能读出版本时) |\n| `core replaced but failed to restart` | 换好了,重启内核失败 | 旧内核能读出版本时:内核停着就换回旧的并重启;文件没了就把旧文件放回去;新内核已经跑起来的保留新的 |\n\n表里的「换回旧的」还有一个前提:替换前给旧内核留的备份(同一文件夹里的硬链接,Windows 上实测名字形如 `.verge-mihomo-alpha.rollback`,升级成功后删掉)建成了。\n\n**Linux 用 deb 安装时,只要真有新版本,这个按钮就会失败**:新内核要先写进内核所在的文件夹,deb 装的内核在只有管理员能写的 `/usr/bin` 里,以普通用户运行的 Clash Verge Rev 写不进去,报的就是上表第三行,本机内核没变。这是用 Mihomo Alpha 实测的;Mihomo 正式版当时没有更新的版本、没有触发,它装在同一个文件夹,按源码同样如此。rpm 包也把附带的程序装在 `/usr/bin`,按源码应当相同,没有实测。这时用这个按钮升不了,内核版本跟着安装包走,要等装新版的 Clash Verge Rev(作者建议)。\n\n**Windows 按安装包配置默认装在 `C:\\Program Files\\Clash Verge`**,安装脚本没有放宽这个文件夹的写权限。以普通身份运行时,只要真有新版本,下载完就在建暂存文件这一步失败,本机内核不变;装了服务、首页是「服务模式」时也一样,不弹授权框。Windows 上实测报的是「操作失败」加 `failed to create C:\\Program Files\\Clash Verge\\.verge-mihomo-alpha.exe.<进程号>.0.tmp: 拒绝访问。 (os error 5)`。**以管理员身份运行就能升**:先从托盘退出,再右键 Clash Verge Rev 选「以管理员身份运行」,实测没装服务(首页「管理员模式」)和装了服务(首页「管理员 + 服务模式」)都升级成功,后者不弹授权框。装到别的文件夹时怎样,本站没有在 Windows 上试过。macOS 上内核所在的文件夹能不能写,本站没有核对。\n\n**2.5.2 与更早的版本**是让内核自己下载、替换自己,报错和上表不同;那种做法在替换中断时会留下一个空的内核文件,这正是后来改掉它的原因。在老版本上升级后内核没了、起不来的,装一遍新版的 Clash Verge Rev(作者建议)。\n\n## 适用范围与验证方式\n\n按 Clash Verge Rev 2.5.6 的源码逐条核对,2.5.5 的这部分源码与它相同;Linux 版 2.5.6(deb,arm64)在虚拟机里、Windows 版 2.5.6(装在 Program Files)在一台 Windows 11 实机上实际点过。\n\n- 拒绝授权后换回旧内核、升级失败后的回滚、「先普通模式升级再开服务模式」都没有触发过;rpm 没有装过。\n- macOS 没有实际操作过。\n\n## 步骤\n1. 打开「设置」页,在「Clash 设置」里找到「Clash 内核」这一行,记下右侧显示的版本号,再点这一行的齿轮图标,打开「Clash 内核」窗口。\n 失败时 → escalate\n2. 窗口里列着「Mihomo」(标着「正式版」)和「Mihomo Alpha」(标着「预览版」),高亮的是正在用的那个。升级只作用于正在用的内核:用 Mihomo 时升到 mihomo 最新的正式发布,用 Mihomo Alpha 时升到最新的 Alpha 预发布。点另一项会立刻换成那个内核、不再确认,只想升级就不要点另一个。\n 失败时 → escalate\n3. 点窗口右上角的「升级内核」,等按钮转完。Clash Verge Rev 会自己去 GitHub 取最新版本号、下载内核文件,校验能运行后替换本机的那一份,再重启内核;重启时现有连接会断开一下。版本号已经是最新时什么都不换、也不重启。内核所在的文件夹以普通权限写不进去时(Linux 的 deb 安装、Windows 默认装在 Program Files 时都实测如此),真有新版本也会在替换之前失败,见正文「报错之后」;Windows 上以管理员身份运行就能升。\n 失败时 → escalate\n\n## 验证\n- **core-version-updated**(人):看右上角弹出的提示。提示「内核版本已更新」时,内核已经换好并重启过,看「设置」页「Clash 内核」一行的版本号,再打开一个平时打不开、按你的配置应该走节点的网页;提示「已经是最新内核版本」时什么都没变,不用再做什么。\n 预期:提示「内核版本已更新」、版本号换成了新的、网页正常显示;或者提示「已经是最新内核版本」,这表示已经是最新。出现红色的「操作失败」加一段原因(开头多是英文)时,按没有成功处理,也不代表已经是最新,按正文「报错之后」看原因。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `Clash Verge Rev、Clash Verge、Clash 三个名字的关系`(见 clash-verge-rev-lineage)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/feat/core_upgrade.rs(L1-L7 注释:内核原地改写自己会在中断时留下 0 字节的内核,所以改由 Clash Verge Rev 自己下载、在旁边暂存校验后改名替换;L25-L31 version.txt 与下载地址、20 秒与 300 秒时限;L45-L158 upgrade_core:本机版本等于最新时返回 upgraded false;L77-L80 只有旧内核读得出版本、硬链接备份 .<名字>.rollback 建成时才能回滚;L86 先把新内核改名到主程序旁边,L91-L101 之后服务模式才交给服务;重启内核;L109-L138 失败时回滚的条件:服务拒收、内核停着或文件没了才换回,只有内核停着时才重启;L160-L166 注释:普通模式下升级后再切到服务模式,服务仍跑之前批准的内核,直到下次提权安装或升级;L176-L182 内核路径在主程序旁边;L239 依次经本机端口、系统代理、直连;L244-L279 只保留最后一条路的错误:连不上是「None could not reach」,拿到响应是「returned status」或「returned an unusable version」;L298 failed to download;L353 the staged core is not runnable;L361-L380 暂存文件建在内核所在文件夹;L404-L432 直接改名顶替正在运行的内核失败时,Windows 上才把旧内核移成 .old 再替换)、src-tauri/src/utils/network.rs L229-L242(System 这一条在系统代理没开时不走代理,和直连相同)、src-tauri/src/cmd/mod.rs L159-L163(报错按 {error:#} 带出整条错误链)、src/services/cmds.ts L259-L260(界面调用时 force 为 false)、src-tauri/src/core/service.rs L682-L695(安装服务时交给服务的是主程序旁边的两个内核)、src-tauri/tauri.windows.conf.json L18(installMode perMachine)与 src-tauri/packages/windows/installer.nsi L501-L514(默认装到 Program Files 下的 Clash Verge;安装脚本里没有修改目录权限)、src-tauri/tauri.linux.conf.json L5(deb 与 rpm 两种包)与 src-tauri/packages/linux/post-install-rpm.sh L4-L6(rpm 装的附带程序在 /usr/bin)、src-tauri/src/cmd/clash.rs L94-L102(upgrade_clash_core,错误码 CORE_UPGRADE_FAILED)、src-tauri/src/core/service.rs L734-L755(stage_approved_core:服务只运行经管理员批准的副本,新内核要经提权的安装器交给服务)、src/components/setting/setting-clash.tsx L307-L315(「Clash 内核」一行与版本号)、src/components/setting/mods/clash-core-viewer.tsx(L26-L36 两种内核;L97-L111 升级:成功样式提示「内核版本已更新」或「已经是最新内核版本」,失败显示后端原因)、src/locales/zh/settings.json(L111、L301-L304、L680-L681)、src/locales/zh/shared.json(L11「升级内核」、L86「操作失败」))\n- cvr-repo-v2-5-2:https://github.com/clash-verge-rev/clash-verge-rev/tree/28f2efc504059b1dc75c793618b775c8e1b2a5f1(src/components/setting/mods/clash-core-viewer.tsx L18、L100(「升级内核」按钮调用 tauri-plugin-mihomo-api 的 upgradeCore))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/feat/core_upgrade.rs、src/components/setting/mods/clash-core-viewer.tsx、src-tauri/src/cmd/clash.rs、src-tauri/src/utils/network.rs、src/services/notice-service.ts、src/locales/zh/shared.json 与 v2.5.6 逐字节相同;src-tauri/src/core/service.rs 的 stage_approved_core 与 v2.5.6 相同)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-latest-version-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:4f8a238 2026-09-30\n"},"v2rayn-core-start-failed":{"id":"v2rayn-core-start-failed","type":"troubleshoot","title":"v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)","aliases":["运行 Core 失败,请查看提示信息","Failed to run Core, please check the prompt information","v2rayN 运行 Core 失败","v2rayN 运行core失败","v2rayN core 启动失败","v2rayN 内核启动失败","v2rayN sing-box 启动失败 Xray 正常","v2rayN 更新 sing-box 后起不来","v2rayN 检查更新后 sing-box 起不来","sing-box 1.14 内核启动失败","v2rayN 开 TUN 后运行 Core 失败","v2rayN 浏览器提示连不上代理 打不开网页","v2rayN 当前延迟: -1 ms","FATAL[0000] create service: initialize dns router: validate dns rule[0]","Response Match Fields (ip_cidr, ip_is_private, ip_accept_any, response_rcode, response_answer, response_ns, response_extra) require match_response to be enabled","initialize dns router: Legacy `strategy` DNS rule action option is deprecated in sing-box 1.14.0 and will be removed in sing-box 1.16.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-dns-rule-action-strategy-to-rule-items","singbox 内核启动失败 xray 没问题","WARN[0000] `independent_cache` DNS option is deprecated in sing-box 1.14.0 and will be removed in sing-box 1.16.0, checkout documentation for migration: https://sing-box.sagernet.org/migration/#migrate-independent-dns-cache","v2rayN 阻止 SVCB 和 HTTPS 查询","FATAL[0000] start service: start inbound/mixed[socks]: listen tcp","v2rayN bind: address already in use","v2rayN bind: Only one usage of each socket address (protocol/network address/port) is normally permitted","v2rayN bind: An attempt was made to access a socket in a way forbidden by its access permissions","Failed to start: app/proxyman/inbound: failed to listen TCP on > transport/internet: failed to listen on address > transport/internet/tcp","v2rayN 10808 端口被占用","Failed to start: main: failed to load config files","infra/conf: failed to build outbound config with tag proxy > failed to build stream settings for outbound detour > Failed to build REALITY config","v2rayN invalid \"password\"","FATAL[0000] create service: initialize outbound[0]: invalid public_key","FATAL[0000] decode config at config.json: dns.servers[0].type: json: unknown field \"type\"","v2rayN json: unknown field","v2rayN 未找到 Core 文件"],"primary_topic":"troubleshooting","topics":["troubleshooting","v2rayn"],"intents":[],"applicability":{"client":["v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)\n\n主题:`排错`\n适用:v2rayn / windows/macos/linux / any\n最后验证:2026-09-24\n\nv2rayN 点「重启服务」或刚打开时提示「运行 Core 失败,请查看提示信息」(英文界面是 Failed to run Core, please check the prompt information),说明**内核(Xray 或 sing-box)刚启动就退出了**。这句本身看不出原因:可能是本机端口、内核版本,也可能是节点参数。原因在主界面下方信息栏里内核自己打的那一行,通常带 `FATAL` 或以 `Failed to start` 开头。浏览器提示连不上代理、底部状态栏显示 -1 的,也先看这一行。**第一步**:找到那一行,按它对号:\n\n- 有 `require match_response to be enabled` 或 ``Legacy `strategy` DNS rule action option``:sing-box 升到了 1.14,v2rayN 7.24.9 生成的 DNS 规则被拒绝。「用 Xray 正常、换 sing-box 就不行」,或者一开 TUN 就起不来的,先看这一种。到「DNS 设置」关掉「阻止 SVCB 和 HTTPS 查询」,或把 sing-box 换回安装包自带的 1.13。\n- 有 `bind:`,后面是 `address already in use`(macOS、Linux),或 `Only one usage of each socket address`、`forbidden by its access permissions`(Windows):本地端口(默认 10808)被占或不让用,改「本地混合监听端口」。\n- 有 `json: unknown field`(比如 `dns.servers[0].type`):内核和 v2rayN 的版本不配套。\n- 有 `invalid \"password\"`、`invalid public_key` 这类点名节点参数的:节点配置不对,更新订阅(先看「修复」里更新会丢什么)或找服务方核对。\n- 有 Xray 的 `The feature \"allowInsecure\" has been removed`:7.24.9 上只会出在自己写的配置里,见下面「修复」;更早的版本见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)。\n- 都不是:开了 TUN、看到的是 sudo 密码或管理员权限相关的,见 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet);别的报错,把那几行连同 v2rayN 版本号发到官方常见问题指定的 [issue #6428](https://github.com/2dust/v2rayN/issues/6428)(公开可见,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉节点地址、口令,不带订阅链接)。\n\n测速时速度那一列里的「运行 Core 失败」是另一回事,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。不要去手改 `binConfigs` 里的 `config.json`:按源码,每次启动前 v2rayN 都会重新生成它,改了也会被覆盖。\n\n## 那一行在哪、为什么有时看不到「运行 Core 失败」\n\nv2rayN 把内核输出的每一行都转进信息栏;「运行 Core 失败」是它自己加的一句笼统提示。信息栏就是主界面的「信息」页(旁边是「当前代理」「当前连接」两页),在文字上点右键有「复制所有」。官方常见问题的说法:内核的日志显示在主界面信息栏,可以复制;遇到运行 core 失败,把日志等级设为 Debug 再看,原因大多是配置错误、这份配置 Core 已经不支持,或者本地监听端口被别的应用(比如虚拟机)占用([v2rayN 官方 wiki 常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe),链接指向这一页 e66de50 那一版)。复制和贴出去之前要遮什么,见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)。\n\n**这句提示不是每次都有。** v2rayN 启动内核后只等 100 毫秒,那时内核已经退出才报它。实测在 macOS 上,同一个起不来的内核,34–64 毫秒就退出的几次都报了,拖到 120 毫秒以上才退出的几次没有报,v2rayN 当作已经启动。**这对你意味着**:没看到这句,不代表内核在运行;以信息栏里有没有 `FATAL` 行、网页能不能打开为准。按源码,v2rayN 加载后会经本地端口自动测一次,内核没起来时底部状态栏的「当前延迟」是 -1。\n\n信息栏里只有「运行 Core 失败」一句、找不到内核的报错行(v2rayn-core-output-hidden),按源码有三种可能:日志等级太低;信息栏上方的「过滤器」框里留着字,或者「自动刷新」被关了(这两项的设置会一直保存);用「添加自定义配置」导入的节点关掉过「显示日志」(这个开关默认是开的)。做法见下面「修复」。\n\n另外三种情况看到的不是这一套:\n\n- 「在文件夹 (…) 下未找到 Core 文件」(v2rayn-core-file-missing):v2rayN 在 `bin/内核名` 下没找到内核程序,根本没启动它。\n- 「核心 'Xray' 不支持协议 '…'」:节点协议和所选内核对不上,v2rayN 在启动内核之前就拦下了;比如 TUIC、AnyTLS、Naive 只能用 sing-box。\n- 测速(比如「测试真连接延迟」)时速度列里的「运行 Core 失败」(v2rayn-speedtest-column-only):那是测速另起的临时内核,它的配置不带下面那几条 DNS 规则,测速配置没生成出来时也写这四个字,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n\n## sing-box 1.14 拒绝 v2rayN 的 DNS 规则(singbox-114-rejects-v2rayn-dns)\n\n完整的一行是 `FATAL[0000] create service: initialize dns router: validate dns rule[0]: Response Match Fields (ip_cidr, ip_is_private, ip_accept_any, response_rcode, response_answer, response_ns, response_extra) require match_response to be enabled`。在 DNS 设置里把「代理目标解析策略」「直连目标解析策略」或「连接代理解析策略」改成了 UseIP、ForceIP 开头的某一项的,1.14 会先报另一句 ``initialize dns router: Legacy `strategy` DNS rule action option is deprecated in sing-box 1.14.0 …``,根因相同(按源码与官方迁移文档,没有实测)。\n\n**怎么来的**:sing-box 1.14.0 起,只要有一条 DNS 规则带查询类型(`query_type`),旧写法的地址筛选规则、旧写法的 `strategy` 就会在启动时被拒绝。使用内置的简易 DNS 设置时(没有在「sing-box 自定义 DNS」页打开「启用自定义 DNS」),v2rayN 7.24.9 每次都会生成一条这种旧写法的规则(报错里的第 0 条),而默认打开的「阻止 SVCB 和 HTTPS 查询」又会加一条带查询类型的规则,两条碰到一起就被拒绝。实测在 macOS 上运行 v2rayN 7.24.9:生成的配置里正是这两条;把 sing-box 换成 1.14.2 后,9 次启动内核全部退出,另用包装脚本抓到的内核输出、以及命令行对同一份配置的 5 次运行,报的都是这一行;换回安装包自带的 1.13.19,或者关掉那个开关,都恢复正常。命令行对照:同样的规则,1.13.19 通过,1.14.2 拒绝;仿「DNS Hosts」生成的那种带查询类型的规则,同样会让 1.14.2 拒绝。\n\n**开着 TUN 时也会撞上**:节点用 Xray、「旧版 TUN 保护」保持默认打开时,v2rayN 会另外运行一个 sing-box 来接管 TUN,它的配置同样带这几条 DNS 规则(按源码)。所以没改过 Core 类型的人,开 TUN 后也可能是这一种,这时让节点改用 Xray 没用。\n\n**1.14 是怎么装上的**:v2rayN 7.24.9 的「帮助 → 检查更新」更新 sing-box 时,总是装 GitHub 上最新的正式版,不设上限;sing-box 在 GitHub 上的最新正式版已经是 1.14.2(2026-09-24 查)。v2rayN 在 7.24.9 之后才合入支持 sing-box 1.14 的改动和把 sing-box 版本上限锁在 1.14 的改动;包含它们的是 7.25.x,其中 7.25.4 已是正式版(2026-09-30 发布),而官方写明 7.25.x 只支持 sing-box 1.14 及以上。所以也可以把 v2rayN 升到 7.25.4,并让 `bin` 里的 sing-box 是 1.14:按源码,v2rayN 自己升级时不替换 `bin` 里已有的内核,原来就是 1.14 的照旧用;换回过 1.13 的,要在「帮助 → 检查更新」里勾上 sing-box 装回 1.14(7.25.4 更新 sing-box 时只装 1.14.x 里的版本)。7.25.x 本条没有测。\n\n**报错上面那行 `independent_cache … deprecated` 的 WARN 不是原因。** 有说法认为是它让 1.14 起不来,不对:官方写明这个选项在 1.14 只是废弃、1.16 才移除;实测去掉会触发报错的那条规则后,1.14.2 照常启动,运行时还会多一行 `Legacy Address Filter Fields in DNS rules is deprecated` 的 WARN,同样不影响启动。要分清:以 WARN 开头的这两行只是提醒;``Legacy `strategy` `` 那一句前面是 FATAL,它才是起不来的原因。\n\n**这对你意味着**:节点和订阅都没坏,是 v2rayN 与新内核不配套,不用找服务方。办法任选一个:关掉「阻止 SVCB 和 HTTPS 查询」、把 sing-box 换回安装包自带的那一版(7.24.9 带的是 1.13)、或者让节点改用 Xray,步骤见下面「修复」;或者把 v2rayN 升到 7.25.4,并让 `bin` 里的 sing-box 是 1.14(按源码,本条没有测,见上面「1.14 是怎么装上的」)。\n\n## 本地端口被占或不让用(v2rayn-local-port-in-use)\n\nsing-box 报 `start inbound/mixed[socks]: listen tcp`,接着是本机地址和端口号,再是 `bind: address already in use`;Xray 报 `Failed to start: app/proxyman/inbound: failed to listen TCP on 端口`,末尾同样是 `bind: address already in use`(macOS 上实测)。**Windows 上 `bind:` 后面的文字不一样**:Xray 和 sing-box 都是 Go 写的,Go 在 Windows 上向系统要这段文字,先要英文、取不到才用系统语言。按微软的错误码文档,端口被占是 `Only one usage of each socket address (protocol/network address/port) is normally permitted.`,没有权限用这个端口是 `An attempt was made to access a socket in a way forbidden by its access permissions.`。在简体中文 Windows 11 上实测,Xray 和 sing-box 报的都是这两句英文原句。后一句说的是「不让用」而不是「被占」,所以可能找不到占着它的程序,直接改端口。\n\nv2rayN 默认用 10808,端口被占时不会自己换一个。实测在 macOS 上用一个普通程序占住 v2rayN 的端口,sing-box 每次启动都这样退出;把占用的程序停掉,就恢复正常。\n\n一个现象会让人误判:实测在 macOS 上,用系统自带的 `nc` 占端口,或者用一个设了 SO_REUSEPORT 的程序占端口时,Xray 能和它同时监听、照常启动,sing-box 仍然失败;原因没有查。**这对你意味着**:「换成 Xray 就好了」不一定说明端口没被占,还是以报错那一行为准。\n\n## 节点参数不对(v2rayn-node-param-invalid)\n\nv2rayN 生成配置前对节点只做很少的检查,比如 REALITY 节点只看公钥是不是空的,填错的值要到内核加载配置时才报出来。实测公钥填错时,Xray 报 `Failed to build REALITY config` 和 `invalid \"password\": …`(Xray 把公钥叫 password),sing-box 报 `invalid public_key`。**这对你意味着**:这一种和本机无关,更新订阅(按源码,更新会先删掉这个订阅原来的节点,改过的先记下,见下面「修复」),还不行就把报错那一行遮掉节点地址、公钥、口令后交给服务方。\n\n## 内核和 v2rayN 版本不配套(v2rayn-core-version-mismatch)\n\n内核不认识 v2rayN 写进配置的字段,谁该换要看 v2rayN 的版本。v2rayN 7.24.9 及更早,报这句一般是内核太旧:实测 sing-box 1.11.15 读 v2rayN 7.24.9 那种 DNS 写法时报 `dns.servers[0].type: json: unknown field \"type\"`,按官方迁移文档,这种 DNS 服务器写法 1.12 才引入,换回安装包自带的内核就行。v2rayN 7.25 及以后正好反过来:它只支持 sing-box 1.14 及以上,内核还是 1.13 时会不认新字段(实测 1.13.19 读到带 `match_response` 的规则就报 unknown field),要把 sing-box 升到 1.14。用「添加自定义配置」导入的节点报这句,也可能是配置里写了新内核已经移除的旧字段。\n\n## 这些结论是怎么核对的\n\n按 v2rayN 7.24.9、sing-box 1.14.2、Xray 26.7.28 的源码与 sing-box 官方文档核对;在 macOS 上实际运行了 v2rayN 7.24.9(自带的 sing-box 1.13.19 与换进去的 1.14.2),另用命令行跑了 Xray 26.7.28 与 sing-box 1.11.15、1.13.19、1.14.2;在 Windows 11 上运行 v2rayN 7.24.9,照录了端口被占、端口不让用和 REALITY 公钥填错的报错,核对了包里的内核版本和改内核的入口。v2rayN 7.25.4 只看了源码(信息栏的自动刷新、sing-box 版本上限、自身升级不替换内核),并只读检查了安装包里自带的内核版本。\n\n- macOS 上实测时屏幕锁着,设置是改设置文件完成的;Windows 上没看到的界面入口按源码:DNS 设置里的各项、「帮助 → 检查更新」窗口、信息栏的过滤器与右键菜单、「更新当前订阅」「旧版 TUN 保护」。\n- Linux 没有运行过;Windows 上没有测 sing-box 1.14 那一种、找占用端口的程序和 WinGet 安装版。\n- 只测了默认的 DNS 设置;「检查更新」装上 1.14 的那条路没测(实验是手工替换文件);v2rayN 7.25.x 没有测。\n\n## 取证\n- **v2rayn-failed-in-speedtest-column**:「运行 Core 失败」是只出现在节点列表测速(比如「测试真连接延迟」)结果的速度那一列里吗?(点「重启服务」、刚打开 v2rayN、切换节点时弹出或出现在信息栏里的,选「否」;只看到延迟 -1、网页打不开,没看到这句的,也选「否」)\n pass → v2rayn-speedtest-column-only;fail → v2rayn-core-error-line-found;unknown → v2rayn-core-error-line-found\n- **v2rayn-core-error-line-found**:在 v2rayN 主界面下方的信息栏里,能找到内核自己打的报错行吗?这种行通常带 `FATAL`,或者以 `Failed to start` 开头,出现在「运行 Core 失败,请查看提示信息」附近。(找法:点主界面的「信息」页,在文字上点右键选「复制所有」,贴到记事本里看。看不到的,先记下「日志等级」原来是哪一级,再改成 debug(菜单「设置 → 参数设置」的「Core: 基础设置」页),确定后点主界面顶部的「重启服务」再看;排查结束后不管解决没有,都改回原来那一级。只看到内核的报错行、没看到「运行 Core 失败」这句的,也算找到)\n pass → v2rayn-line-match-response;fail → v2rayn-core-file-missing-shown;unknown → v2rayn-core-file-missing-shown\n- **v2rayn-core-file-missing-shown**:信息栏里写的是「在文件夹 (…) 下未找到 Core 文件 (文件名: …),请下载后放入文件夹」吗?\n pass → v2rayn-core-file-missing;fail → v2rayn-core-output-hidden;unknown → v2rayn-core-output-hidden\n- **v2rayn-line-match-response**:报错行里有 `require match_response to be enabled`,或者 ``Legacy `strategy` DNS rule action option`` 吗?(完整的一行一般是 `validate dns rule[0]: Response Match Fields (…) require match_response to be enabled`,前面常跟着一行 `independent_cache … deprecated` 的 WARN;改过 DNS 设置里几项「解析策略」的,报的是 ``initialize dns router: Legacy `strategy` …`` 那一句,它本身是 FATAL)\n pass → singbox-114-rejects-v2rayn-dns;fail → v2rayn-line-address-in-use;unknown → v2rayn-line-address-in-use\n- **v2rayn-line-address-in-use**:报错行里有 `bind:`,后面说端口被占用或者不允许使用吗?(macOS、Linux 上是 `address already in use`;Windows 上是 `Only one usage of each socket address`(非英文系统可能是系统语言的同一句话),或者 `forbidden by its access permissions`。前面通常是 `listen tcp`、本机地址和端口号;Xray 的那行里还有 `failed to listen TCP on`)\n pass → v2rayn-local-port-in-use;fail → v2rayn-line-unknown-field;unknown → v2rayn-line-unknown-field\n- **v2rayn-line-unknown-field**:报错行里有 `json: unknown field` 吗?(例如 `dns.servers[0].type: json: unknown field \"type\"`)\n pass → v2rayn-core-version-mismatch;fail → v2rayn-line-node-param;unknown → v2rayn-line-node-param\n- **v2rayn-line-node-param**:报错行里有 `invalid \"password\"`、`Failed to build REALITY config`、`invalid public_key` 这类点名某一项节点参数填错的内容吗?\n pass → v2rayn-node-param-invalid;fail → v2rayn-line-allowinsecure;unknown → v2rayn-line-allowinsecure\n- **v2rayn-line-allowinsecure**:报错行里有 Xray 的 `The feature \"allowInsecure\" has been removed` 吗?(只认内核的这一句。v2rayN 自己发的「检测到不安全配置:AllowInsecure 已启用,但未提供证书」只是提醒,不算,也不是这次起不来的原因)\n pass → v2rayn-allowinsecure-line;fail → escalate;unknown → escalate\n\n## 原因\n- **v2rayn-speedtest-column-only**(可能性 medium)→ 修复 go-to-speedtest-section\n- **singbox-114-rejects-v2rayn-dns**(可能性 high)→ 修复 avoid-singbox-114-dns-reject\n- **v2rayn-local-port-in-use**(可能性 medium)→ 修复 free-local-port\n- **v2rayn-node-param-invalid**(可能性 medium)→ 修复 check-node-params\n- **v2rayn-core-version-mismatch**(可能性 low)→ 修复 match-core-to-v2rayn\n- **v2rayn-allowinsecure-line**(可能性 low)→ 修复 see-allowinsecure-entry\n- **v2rayn-core-file-missing**(可能性 low)→ 修复 put-core-file-back\n- **v2rayn-core-output-hidden**(可能性 medium)→ 修复 show-core-output\n\n## 修复\n### go-to-speedtest-section\n1. 测速时 v2rayN 另起一个临时内核(Windows 上实测),和你正在用的连接不是同一个进程;它的配置里不带本条下面讲的那几条 DNS 规则,测速的配置没生成出来、根本没启动内核时,速度列也写这四个字(按源码)。所以这一种按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 里「v2rayN 测速用的临时内核没起来」那一段查,正在用的连接可能完全正常。\n验证:v2rayn-speedtest-rerun-ok\n\n### avoid-singbox-114-dns-reject\n1. **最省事的办法:关掉「阻止 SVCB 和 HTTPS 查询」。** 菜单「设置 → DNS 设置」,在「DNS 进阶设置」页把这个开关关掉,确定后点「重启服务」(入口按源码)。这个开关只影响 sing-box,界面上的说明是「开启后将阻止 ECH 和 HTTP/3 可用性查询。Xray 固定开启」;关掉后浏览器能查到网站是否支持 HTTP/3、ECH,对速度的影响本站没有测。实测 v2rayN 7.24.9 配 sing-box 1.14.2、其它 DNS 设置保持默认时,关掉它就能正常启动、经节点上网。报 ``Legacy `strategy` `` 那一句的,按源码关掉这个开关同样能过,或者把「代理目标解析策略」「直连目标解析策略」「连接代理解析策略」改回默认(都没有实测)。**下面几种只关这一个开关不够**,改用下一步(按源码;命令行只测过其中仿 DNS Hosts 的一种):「DNS Hosts」里有写成 `#响应码`、指向一个域名、或者用 `domain:`、`keyword:` 这类前缀再指向 IP 的行;打开了「FakeIP」或「阻止 AAAA 查询」;在「sing-box 自定义 DNS」页打开了「启用自定义 DNS」——这时整个「DNS 进阶设置」页都不起作用,界面上写着「自定义 DNS 已启用,此页面配置将无效」。属于这几种的,关掉的这个开关没起作用,可以打开回去。\n2. **或者把 sing-box 换回安装包自带的那一版(7.24.9 带的是 1.13)。** 退出 v2rayN;从菜单「设置 → 打开存储所在的位置」打开的文件夹里进 `bin/sing_box`,把名为 sing-box 的程序改个名留作备份(比如末尾加 `.bak`),再打开 v2rayN。按源码,程序所在的文件夹不可写时(比如用 WinGet 安装),v2rayN 的数据放在另一个文件夹里,每次启动都把安装包自带的内核复制过去、只补缺的不覆盖,所以改名后重开就用回了自带的那一版。信息栏改报「未找到 Core 文件」的,是数据就放在程序文件夹里的情况(比如解压即用的 zip 包):从同一个版本的 v2rayN 压缩包里取出 `bin/sing_box/sing-box` 放回去。实测 7.24.9 的 macOS arm64 zip 包自带 1.13.19,换回后正常启动,Windows x64 zip 包带的也是 1.13.19;别的安装包、更早的 v2rayN 版本带的是哪一版,本条没有逐个核对——用更早版本的,换回它自己安装包里的那一个,不要统一换成 1.13。用 7.24.9 的,也可以到 sing-box 官方 GitHub 的 Release 页另下 1.13 版,下载哪个文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file);浏览器下载的程序在 macOS 上会不会被系统拦下,本条没有测。这个文件夹里如果还有一个 `sing-box-client`,按源码 v2rayN 优先用它:把它也改名,或者同样换成你这个版本安装包自带的那一版。**之后用「帮助 → 检查更新」时取消勾选 sing-box**:按源码,它更新 sing-box 时总是装 GitHub 上最新的正式版,窗口里没改过的项默认都勾着,会再次装上 1.14。Windows 上实测,7.24.9 启动约 1 分钟后会自己检查更新,信息栏提示「sing_box 有新版本可用: 1.14.2」,工具栏多出蓝色的「有更新」按钮:它提示的正是这个 1.14,从那里更新同样要取消勾选 sing-box。**以后把 v2rayN 升到 7.25 或更新时反过来**:那一版只支持 sing-box 1.14 及以上,要重新勾上 sing-box、装回 1.14;按源码,v2rayN 自己升级时会跳过 `bin` 里已有的文件,不会替你换内核。\n3. **或者让这个节点改用 Xray。** 菜单「设置 → 参数设置」的「Core 类型设置」页按协议列着每一类节点用哪个内核(选项「Xray」「sing_box」),把节点协议(比如 Shadowsocks、VLESS、VMess)那一行从 sing_box 改成 Xray,确定后「重启服务」(按源码;Xray 不读这段 sing-box 的 DNS 配置)。这一页按协议整类生效,同一协议的节点都会跟着换。Windows 上实测,在这一页改了内核,确定后起的就是改成的那个;信息栏出现 `core: Xray 26.7.28 started` 这类行就是换成了 Xray,sing-box 启动时不打印这样的版本行。节点编辑窗口右上角那个框写着 sing_box 或 Xray 的,是这个节点自己指定了内核,它优先于这一页,要把框改回空:Windows 版这个框鼠标点不开,先用 Tab 或 Shift+Tab 把光标移到框上(框下面的线变蓝),再按 ↓ 切到空、确定(Windows 上实测)。两处都没改过的话,这几种协议默认就用 Xray(按源码;Windows 上这一页里它们都显示 Xray)。这一招对下面几种无效,用前两种办法:TUIC、AnyTLS、Naive 节点(固定用 sing-box,Xray 不支持);按 sing-box 格式导入的自定义配置(配置本身就是给 sing-box 的);开着 TUN、「旧版 TUN 保护」保持默认打开时(按源码,v2rayN 这时还会另外运行一个 sing-box)。\n验证:v2rayn-restart-service-ok\n\n### free-local-port\n1. **改端口。** 菜单「设置 → 参数设置」的「Core: 基础设置」页,把「本地混合监听端口」(默认 10808)改成别的,确定后点「重启服务」。换成哪个号是作者建议:挑一个 1024 以上、报错里没出现过的,比如 10818。v2rayN 不会自己避开被占的这个端口(Windows 上实测)。你在浏览器插件、终端之类的地方手动填过 10808 这个端口的,要一起改。报的是 `forbidden by its access permissions` 的,说的是没有权限用这个端口、不是被哪个程序占着,下一步可能找不到占用方,直接改端口。Windows 上实测,端口落在系统保留的端口段里时报的就是这一句:运行 `netsh int ipv4 show excludedportrange protocol=tcp` 能列出这些段,换端口时避开它们。\n2. **或者找出占用它的程序关掉。** 官方常见问题举的例子是虚拟机([v2rayN 官方 wiki 常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe),「在测试真连接时会显示运行 core 失败」一节);另开着的一个 v2rayN 或别的代理软件也值得先查(作者建议)。macOS、Linux 上可以在终端运行 `lsof -nP -iTCP:10808 -sTCP:LISTEN`(10808 换成报错里的端口号),第一列就是占用它的程序(本条实测时在 macOS 上用 lsof 确认过占用方)。Windows 上找占用方的做法本条没有核对,改端口更省事。关掉占用方后点「重启服务」:实测端口一释放,内核就能正常启动。\n验证:v2rayn-restart-service-ok\n\n### check-node-params\n1. 从订阅导入的节点:先在顶部菜单「订阅分组」里点「更新当前订阅 (不通过代理)」,再「重启服务」,看报错是否还在:可能是订阅里这个节点的参数本身写错了。**更新前先知道后果**:按源码,更新会先删掉这个订阅原来的节点、再按新内容导入(见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)),你在 v2rayN 里对这些节点改过的参数都会丢,改过的先记下来;新内容解析不出节点时,列表会变空。还在的话,把报错那一行(**遮掉节点地址、公钥、口令,不要附订阅链接**)发给服务方核对;手动添加的节点,对照服务方给的参数逐项检查。REALITY 节点的「PublicKey」(公钥)填错时,实测 Xray 报 `Failed to build REALITY config` 和 `invalid \"password\": …`,报错里叫它 password,指的就是公钥;sing-box 报 `invalid public_key`。v2rayN 生成配置前对节点的检查只看公钥是不是空的(按源码),不看格式(Windows 上实测),所以要到内核加载配置时才报出来。\n验证:v2rayn-restart-service-ok\n\n### match-core-to-v2rayn\n1. 先看主窗口标题栏里 v2rayN 的版本号,再按版本配内核。**7.25 或更新(7.25.4 是 2026-09-30 发布的正式版)**:官方写明它只支持 sing-box 1.14 及以上,sing-box 要换成 1.14——在「帮助 → 检查更新」里勾上 sing-box 更新(7.25.4 的安装包自带 sing-box 1.14.0、Xray 26.9.9;Windows、macOS 包里 Xray 的版本是按构建信息推断的)。实测 1.13.19 读到 1.14 才有的写法时报 `unknown field \"match_response\"` 这类错。**7.24.9 或更早**:把 `bin` 下对应的内核换回安装包自带的那一版,做法同上面「把 sing-box 换回安装包自带的那一版」那一步(实测 7.24.9 的 macOS arm64 与 Windows x64 zip 包带的都是 sing-box 1.13.19 和 Xray 26.7.28)。实测 sing-box 1.11.15 读 v2rayN 7.24.9 这种 DNS 写法时报 `dns.servers[0].type: json: unknown field \"type\"`:按 sing-box 官方迁移文档,这种新的 DNS 服务器写法 1.12 才有。**用「添加自定义配置」导入的节点**报这句,也可能是配置里写了新内核已经移除的旧字段(sing-box 官方废弃列表写着各个字段在哪一版移除),这时换内核不一定有用,要改那份配置。\n验证:v2rayn-restart-service-ok\n\n### see-allowinsecure-entry\n1. 这句是 Xray 在说配置里的「跳过证书验证」(allowInsecure)这一项已经移除,写了就拒绝启动(按 Xray 26.7.28 源码;Windows 上用「添加自定义配置」实测过)。按 v2rayN 7.24.9 源码,它给普通节点生成的 Xray 配置里没有这一项,所以用 7.24.9 时这句只会出现在你自己写的 JSON 里(用「添加自定义配置」导入的节点):在那份配置里去掉 allowInsecure;服务方给了证书指纹的,按报错提示改用 `pinnedPeerCertSha256`。去掉后能不能连上取决于服务端的证书,本条没有测。用的是更早版本的 v2rayN、普通节点也报这句的,原因和改法见 `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)。\n验证:v2rayn-restart-service-ok\n\n### put-core-file-back\n1. 这句和「运行 Core 失败」不是一回事:v2rayN 在 `bin/内核名` 文件夹下没找到内核程序,根本没启动它(按源码)。提示里写着文件夹、文件名和下载地址:按提示把内核放进去;或者重新下载 v2rayN 的安装包(下载哪个文件见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)):zip 包先把原文件夹里的 `guiConfigs` 复制一份到别处(设置和订阅就存在这里),再解压覆盖到原来的位置,不要先删掉原来的文件夹(作者建议);dmg、deb、rpm 这类安装包重新安装(按源码与官方 wiki,这类安装版的数据放在用户目录、不在程序文件夹里,见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))。实测 7.24.9 的 macOS arm64 与 Windows x64 zip 包里都带着 Xray 和 sing-box,7.25.4 的 Windows x64 zip、macOS arm64 dmg 与 Linux arm64 deb 里也都带着,别的包本条没有逐个核对。\n验证:v2rayn-restart-service-ok\n\n### show-core-output\n1. 按官方常见问题的做法([v2rayN 官方 wiki 常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe)),记下原来的等级后,把「日志等级」改成 debug(菜单「设置 → 参数设置」的「Core: 基础设置」页)。再看信息栏上方:把「过滤器 (支持正则)」框清空,确认「自动刷新」开着——按源码,过滤框里有字时对不上的新行不会显示;自动刷新关着时,7.24.9 直接丢掉新消息,7.25.4 先存着、只留最近 500 条,打开后才显示;这两项的设置都会保存下来。然后点「重启服务」,在「信息」页的文字上点右键选「复制所有」(或者点上方的复制图标),贴到记事本里从后往前找带 `FATAL`、`Failed`、`error` 的行。排查结束后(贴出去求助的,贴完之后)把日志等级改回原来那一级;过滤器和自动刷新不用改回,它们本身就是看不到报错的原因。\n2. 用「添加自定义配置」导入的节点:它的编辑窗口里有个「显示日志」开关,默认是开的(界面提示「当有异常断流时请关闭」)。关掉过的,内核输出就不会送进信息栏(按源码)。把它重新打开,确定后再「重启服务」。\n验证:v2rayn-core-error-line-now-visible\n\n## 验证\n- **v2rayn-speedtest-rerun-ok**(人):按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 那一段处理之后,对同一个节点再做一次「测试真连接延迟」。\n 预期:速度那一列不再显示「运行 Core 失败」,延迟那一列出现毫秒数。网页能打开不算:测速用的临时内核和正在用的连接不是同一个,测速还失败时,网页照样可能打得开。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **v2rayn-restart-service-ok**(人):点主界面顶部的「重启服务」,看信息栏;再打开一个平时要经代理才能打开的网页。开着 TUN 时出的问题:保持「启用 Tun」开着,先记下状态栏的系统代理选的是哪一项,把它改成「清除系统代理」再打开网页,试完改回那一项。\n 预期:信息栏里没有新的 `FATAL`、`Failed to start` 行,也没有「运行 Core 失败」;网页能打开。开着 TUN 时出的问题,还要「启用 Tun」保持开着、清除了系统代理时网页也能打开;这时打不开的,内核这一侧已经好了,回 `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet) 从第一问接着查。v2rayN 加载后会自动经本地端口测一次(Windows 上实测),底部状态栏「当前延迟」一般显示毫秒数;显示 -1 而网页能打开的,只说明经本地端口访问测速地址没成功(见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)),不影响这里的判断。**只看「运行 Core 失败」有没有出现不够**:实测内核退出得慢一些(超过约 100 毫秒)时,v2rayN 不报这句,内核其实已经退出了。又冒出一行不同的报错,从第一问重走。报的还是同一行、这一种下面的办法都试过的,不要反复做同一步:带着这一行、v2rayN 版本和试过的办法求助(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 的清单遮掉节点地址、端口、公钥、口令,不带订阅链接)。\n 通过 → resolved;失败 → v2rayn-core-error-line-found;无法判断 → escalate\n- **v2rayn-core-error-line-now-visible**(人):按上面做完后,再看一次信息栏。\n 预期:能看到内核的报错行了,按那一行从「有没有 `require match_response to be enabled`」那一问开始对号。这次没有报错行、内核正常启动、网页也能打开的,问题已经过去,不用往下对号(改过的日志等级改回原来那一级)。还是只有「运行 Core 失败」一句、看不到别的:官方常见问题说这类问题统一反馈到 issue #6428(https://github.com/2dust/v2rayN/issues/6428 ,公开可见)。只贴「运行 Core 失败」前后那几行,不要贴信息栏全文——debug 级别的日志里有你这段时间访问过的网站;贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 的清单遮掉节点地址、端口、UUID、公钥、口令,不带订阅链接。\n 通过 → v2rayn-line-match-response;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `v2rayN 信息栏提示原文表`(见 v2rayn-error-catalog)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `vmess、vless、trojan、ss、hysteria2、tuic、anytls 这些协议:不用自己选,内核认不认才要紧`(见 proxy-protocols)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Manager/CoreManager.cs L25-L35(程序目录与数据目录不同时,启动时把 bin 复制到数据目录,不覆盖已有文件)、L73-L80(每次启动前重新生成 binConfigs/config.json)、L185(自定义配置关掉显示日志时不转发内核输出)、L305-L331(RunProcess:catch 后把错误发往信息栏)、L352-L359(启动内核后等 100 毫秒,已退出才抛出 FailedToRunCore);Models/Entities/ProfileItem.cs L165(DisplayLog 默认 true);Manager/AppManager.cs L63-L68(程序目录不可写时改用本机应用数据目录)、L666-L675(GetCoreType:节点自己的 CoreType 优先,其次「Core 类型设置」,都没有时用 Xray);ViewModels/AddServerViewModel.cs L395(节点编辑窗口的 Core 类型写进节点);Handler/Fmt/SingboxFmt.cs L77-L81(sing-box 格式导入为自定义配置,CoreType 定为 sing_box);ViewModels/MsgViewModel.cs L21-L22(过滤器与自动刷新的设置会保存)、L46-L49(自动刷新关着时丢弃新消息)、L96-L113(过滤器对不上的新行不显示);Services/ProcessService.cs L33-L34、L121-L130(重定向内核 stdout/stderr,逐行转发);Services/SpeedtestService.cs L374-L379(测速配置没生成出来时也写运行 Core 失败);Manager/CoreInfoManager.cs L32-L51(找不到内核文件报 NotFoundCore)、L87-L95(sing-box 不走预发布)、L219(sing-box 按 sing-box-client、sing-box 的顺序找);Services/UpdateService.cs L193(非预发布走 releases/latest,不设上限);ViewModels/CheckUpdateViewModel.cs L73(检查更新各项默认勾选);AmazTool/UpgradeApp.cs L76-L80(v2rayN 自身升级时跳过 bin 下已有的文件);Services/CoreConfig/Singbox/SingboxDnsService.cs L5-L14(启用 sing-box 自定义 DNS 时整段改用自定义配置)、L167(第 0 条 ip_accept_any 规则)、L169-L192(保护域名与 clash_mode 规则按三项解析策略写 strategy)、L195-L257(DNS Hosts:只有 #响应码、域名目标、带前缀的非完全匹配指向 IP 才生成 query_type 规则)、L259-L266(阻止 SVCB 和 HTTPS 查询:query_type 64、65)、L268-L299(FakeIP、阻止 AAAA 查询同样带 query_type)、L410-L425(测速配置的 DNS 规则清空);Handler/ConfigHandler.cs L50(LocalPort 10808)、L95(旧版 TUN 保护默认开)、L850-L853、L946-L949、L974-L977(TUIC、AnyTLS、Naive 节点固定 sing-box)、L1558-L1575(开 TUN、节点用 Xray、旧版 TUN 保护开着时另起 sing-box)、L2811(BlockBindingQuery 默认 true);Services/CoreConfig/V2ray/V2rayOutboundService.cs L412-L452(Xray 的 TLS 设置只写 verifyPeerCertByName 或 pinnedPeerCertSha256);Models/CoreConfigs/V2rayConfig.cs L368-L390(TlsSettings4Ray 没有 allowInsecure 字段);Handler/Builder/NodeValidator.cs L58-L80(内核不支持的协议在启动前拦下)、L125-L148(开了跳过证书验证只发两条提醒,不拦下)、L150-L153(REALITY 公钥只查非空);Manager/NoticeManager.cs L48-L61(提醒逐条发往信息栏);Global.cs L355-L380;Handler/ConnectionHandler.cs L10-L15(当前延迟);ViewModels/MainWindowViewModel.cs L629-L644(打开存储所在的位置 = 程序数据目录)、L687-L693(加载后自动测可用性);Common/Utils.cs L1084-L1092、L1141-L1156(bin/内核类型 目录);v2rayN.Desktop/Views/DNSSettingWindow.axaml L239-L343(DNS 进阶设置页:FakeIP、阻止 SVCB 和 HTTPS 查询、阻止 AAAA 查询)、L493-L520(sing-box 自定义 DNS 页的启用开关)、OptionSettingWindow.axaml L38、L50、L203、L1122、MainWindow.axaml L56-L99、L127-L129(下方「信息」页)、MsgView.axaml L21-L63(过滤器、复制图标、自动刷新)、AddServerWindow.axaml L54-L58(Core 类型下拉框)、L1238-L1284(固定证书、证书指纹)、AddServer2Window.axaml L125-L132(显示日志);Windows 版界面 v2rayN/Views/MainWindow.xaml L140-L196、L246-L258、OptionSettingWindow.xaml L49、L90、L258、L1388、DNSSettingWindow.xaml L270、L369、L569-L582、MsgView.xaml L24-L61、L102-L104、AddServer2Window.xaml L167-L173;ServiceLib/Resx/ResUI.zh-Hans.resx L249-L250、L328、L402、L417、L423、L432、L435-L452、L540、L621、L682、L711、L729、L801、L888-L890、L895、L913、L960、L979、L1002、L1006、L1425-L1438、L1447、L1456-L1462、L1582、L1624、L1726、L1776-L1780、L1807-L1808、L1835、L1868;ResUI.resx L888-L890(英文界面原文))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/ViewModels/MsgViewModel.cs L9(最多 500 条)、L27-L28(自动刷新的设置会保存)、L30-L66(新消息先进队列,只在自动刷新开着时每秒显示一次)、L68-L107(进队列时不看自动刷新,超过 500 条丢掉最早的);ServiceLib/Manager/CoreInfoManager.cs L232(sing-box 的版本上限 1.14.x);ServiceLib/Services/UpdateService.cs L172-L206(检查更新时最新版高于上限就改取不高于上限的最高版本);AmazTool/UpgradeApp.cs L76-L80(v2rayN 自身升级时跳过 bin 下已有的文件);ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs L455-L477(生成 evaluate 与 match_response 的 DNS 规则,sing-box 1.14 才有的写法))\n- singbox-src-v1-14-2:https://github.com/SagerNet/sing-box/tree/af6e64c3b69e6132ebaee0e1a3d24e93903f6709(dns/router.go L188-L197(先判旧版 DNS 模式,再逐条校验)、L1413-L1420(任何一条 DNS 规则带 query_type 等字段就关闭旧版 DNS 模式)、L1434-L1446(关闭后若有规则带 strategy,报 Legacy `strategy` DNS rule action option … deprecated)、L1460-L1480(逻辑规则里的子规则同样计入)、L1639-L1643(关闭后,带 ip_accept_any 等字段却没开 match_response 的规则报 Response Match Fields … require match_response to be enabled);experimental/deprecated/constants.go L50-L62、L126-L133(这句报错的原文);GitHub Release 页 v1.14.2 标为正式版(非预发布),2026-09-24 发布,当日 releases/latest 指向它(1.14 系列第一个正式版 v1.14.0 发布于 2026-08-31))\n- singbox-docs-migration-zh:https://sing-box.sagernet.org/zh/migration/(1.14.0「迁移地址筛选字段到响应匹配」「DNS 规则中的 ip_version 和 query_type 行为更改」(设置了 query_type 的规则不能与旧版地址筛选字段、旧版 DNS 规则的 strategy 共存,启动时被拒绝);1.12.0「迁移到新的 DNS 服务器格式」)\n- singbox-docs-deprecated-zh:https://sing-box.sagernet.org/zh/deprecated/(1.14.0「independent_cache DNS 选项」(已废弃,1.16.0 移除);1.12.0「旧的 DNS 服务器格式」(已在 1.14.0 移除);1.12.0、1.13.0 各节「已在 … 中被移除」的旧字段)\n- v2rayn-commit-singbox-114:https://github.com/2dust/v2rayN/commit/f62eaab8c54c83529712b97b1bde6899f8da7c03(提交说明「Support sing-box 1.14 (#9736)」,改写 sing-box 的 DNS 配置生成;PR #9736 正文「不向后兼容,仅支持 sing-box 1.14+(含)」。不在 7.24.9 标签(521230c)里,在 7.25.0 标签里(GitHub compare 核对);7.25.0 的 release notes 写「支持 sing-box v1.14,更新的用户注意内核版本」。7.25.0、7.25.1、7.25.2 在 GitHub Releases 上都标为预发布,最新的正式版是 7.24.9(2026-09-24 用 GitHub API 查);7.25.2 标签(2813985)的 SingboxDnsService.cs L450-L470 生成 evaluate 与 match_response 规则)\n- v2rayn-commit-singbox-max:https://github.com/2dust/v2rayN/commit/4a59c7f4d6c98c83200af4dff34b0a6dd4e928ff(提交说明「Lock sing-box max version (#10091)」;不在 7.24.9 标签里,在 7.25.0 标签里(GitHub compare 核对))\n- xray-core-src-26-7-28:https://github.com/XTLS/Xray-core/tree/5ca6f4b7d4dc20a881d4330e498892697627ec0c(infra/conf/transport_security.go L361-L362(配置里写了 allowInsecure 就报已移除、拒绝加载,提示迁移到 pinnedPeerCertSha256 与 verifyPeerCertByName);common/errors/feature_errors.go L25-L31(The feature … has been removed 的报错原文)。v2rayN 7.24.9 安装包里的 Xray 自报 26.7.28,但与官方发布的文件不是同一个(见 exp-v2rayn-tun-no-internet-cli-2026-09-24 观察 4))\n- go-src-1-27-1:https://github.com/golang/go/tree/862c888e612ac346c7c4d99c9392bdfd265f33b0(src/syscall/syscall_windows.go L142-L180(Windows 上的错误文字由 Errno.error() 向系统的 FormatMessage 要:先要英文,取不到再用系统默认语言);src/net/sock_posix.go L5(构建标签:Unix 与 Windows 共用)、L111、L165、L215(bind 失败时报 bind: 加上这段错误文字))\n- ms-win32-system-error-codes:https://github.com/MicrosoftDocs/win32/blob/3aee48ac3f48e187d17bdfd56951741737331749/desktop-src/Debug/system-error-codes--9000-11999-.md(微软 Win32 文档源文件「System Error Codes (9000-11999)」:WSAEACCES 10013「An attempt was made to access a socket in a way forbidden by its access permissions.」(L1762-L1770);WSAEADDRINUSE 10048「Only one usage of each socket address (protocol/network address/port) is normally permitted.」(L1983-L1991))\n- exp-v2rayn-core-start-failed-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-core-start-failed-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-bundled-cores-cli-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-7-25-4-assets-cli-2026-10-02:验证记录(内部存档,未公开)\n\n最后修订:dc501fa 2026-10-02\n"},"v2rayn-error-catalog":{"id":"v2rayn-error-catalog","type":"reference","title":"v2rayN 信息栏提示原文表","aliases":["v2rayN 信息栏提示原文"],"primary_topic":"reference","topics":["reference","v2rayn"],"intents":[],"applicability":null,"freshness_mode":"versioned","last_verified_at":"2026-09-28","freshness":"current","markdown":"# v2rayN 信息栏提示原文表\n\n主题:`参考`\n适用:通用\n最后验证:2026-09-28\n标记:信息说明\n\nv2rayN 启动服务前会检查节点,把发现的问题写进主界面下方的信息栏(找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs));内核(Xray)自己打的报错也逐行转进这里。这张表收这些提示与报错的原文,拿信息栏里的一整段来对照,就能找到该看的排错条目。\n\n- v2rayN 自己的提示取自 `2dust/v2rayN` 7.24.9 的界面资源串,按源码追过输出位置。中文界面的那一行在 macOS 实机上记录到过 v2rayN 发往信息栏的原文(没有看屏幕),Windows 上照屏幕录过;英文界面与 Linux 只按源码核对。\n- 内核的报错按 Xray 官方 26.7.28 的源码核对,allowInsecure 与 REALITY 两行也对照过 26.3.27。v2rayN 7.24.9 包里的 Xray 自报 26.7.28,但和官方发布的文件不是同一个;x509 与 REALITY 两行的原文在包里那个 Xray 上实际输出过。v2rayN 怎样把它们转进信息栏、什么情况下会出现,按 v2rayN 源码核对。\n- 表中只收固定不变的部分。开头的日志时间、末尾的建议与填错的值都会变,省略不写;夹在中间会变的写成 `<路径>`、`<标签>` 这样的占位;`<省略>` 标出中间略去的一小段原文,那一段不影响对照。\n- 目前收了四种:「当前节点使用未加密连接」提示(中英文界面各一行);Xray 说证书不受信任的 `x509: certificate signed by unknown authority`(日志等级调到 info 才有;开着「启用日志存到文件」时它写进日志文件,不在信息栏里);Xray 说「跳过证书验证」(allowInsecure)已移除;Xray 说 REALITY 节点的参数格式不对。后两种只收正在用的内核报的,测速时报的同一句(配置文件名以 configTest 开头)不在表里。其它提示与报错还没有整理进来。\n\n\n- `当前节点使用未加密连接,您的通信可能会被威权政府掌控的网络中间设施直接查看 <省略> 此类节点无法通过 26.2.6+ 版本的Xray核心连接 如果是自建节点请启用 TLS` → `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) [来源 v2rayn-repo-v7-24-9, exp-xray-allowinsecure-removed-gui-2026-09-24, exp-v2rayn-gui-windows-2026-09-29](适用 v2rayn · windows/macos/linux · any;已验证 v2rayn 7.24.9@2026-09-29(windows),v2rayn 7.24.9@2026-09-24(macos/linux))\n- `The current node uses an unencrypted connection, meaning your communications could be directly monitored by network intermediaries controlled by authoritarian governments. <省略> nodes of this type cannot connect via Xray-core versions 26.2.6 or higher. If this is a self-built node, please enable TLS` → `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) [来源 v2rayn-repo-v7-24-9](适用 v2rayn · windows/macos/linux · any;已验证 v2rayn 7.24.9@2026-09-24)\n- `failed to find an available destination > common/retry: [tls: failed to verify certificate: x509: certificate signed by unknown authority` → `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) [来源 xray-core-src-26-7-28, v2rayn-repo-v7-24-9, exp-xray-allowinsecure-removed-gui-2026-09-24, exp-v2rayn-gui-windows-2026-09-29](适用 v2rayn · windows/macos/linux · any;已验证 v2rayn 7.24.9@2026-09-29(windows),v2rayn 7.24.9(实测记下过这一整行;其余按源码)@2026-09-28(macos),v2rayn 7.24.9@2026-09-28(linux))\n- `failed to load config files: [<路径>config.json] > infra/conf: failed to build outbound config with tag <标签> > infra/conf: failed to build stream settings for outbound detour > infra/conf: Failed to build TLS config. > common/errors: The feature \"allowInsecure\" has been removed and migrated to \"pinnedPeerCertSha256\"` → `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed) [来源 xray-core-src-26-3-27, xray-core-src-26-7-28, v2rayn-repo-v7-24-4, v2rayn-repo-v7-24-9, exp-xray-allowinsecure-removed-cli-2026-09-24, exp-v2rayn-gui-windows-2026-09-29](适用 v2rayn · windows/macos/linux · any;已验证 v2rayn 7.24.9(Windows 11 实机,自定义配置触发);7.24.4 只按源码@2026-09-29(windows),v2rayn 7.24.4–7.24.9@2026-09-28(macos/linux))\n- `failed to load config files: [<路径>config.json] > infra/conf: failed to build outbound config with tag proxy > infra/conf: failed to build stream settings for outbound detour > infra/conf: Failed to build REALITY config.` → `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed) [来源 xray-core-src-26-7-28, xray-core-src-26-3-27, v2rayn-repo-v7-24-9, exp-v2rayn-core-start-failed-cli-2026-09-24, exp-v2rayn-gui-windows-2026-09-29](适用 v2rayn · windows/macos/linux · any;已验证 v2rayn 7.24.9@2026-09-29(windows),v2rayn 7.24.9@2026-09-28(macos/linux))\n\n(error-catalog,共 5 行)\n\n## 相关条目\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n\n## 来源\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L1776-L1781 与 ResUI.resx L1782-L1784(allowInsecure 弃用提示的资源串);v2rayN/ServiceLib/Handler/Builder/NodeValidator.cs L134-L146(TLS 节点、Xray 内核、开着跳过证书验证、既没有有效证书也没有证书指纹时,以 v.Warning 输出这段提示)、L150-L153(REALITY 节点只查公钥非空);Services/ProcessService.cs L33-L34、L121-L130(内核的输出逐行转进信息栏);Manager/CoreManager.cs L122、L144(测速的临时内核同样转);Services/CoreConfig/V2ray/V2rayLogService.cs L9-L14、L18 与 Handler/ConfigHandler.cs L41(内核日志等级取自设置,默认 warning;开着「启用日志存到文件」时内核日志写进文件;这个开关见 v2rayN.Desktop/Views/OptionSettingWindow.axaml L184-L195、ResUI.zh-Hans.resx L993-L994);Manager/CoreManager.cs L339-L346 与 Manager/CoreAdminManager.cs L36(普通启动传 config.json,开 TUN 以 sudo 启动时传完整路径);Services/SpeedtestService.cs L187-L237(只测一个节点的真连接失败时不再逐个重测、不写速度列);Global.cs L15 与 Services/CoreConfig/V2ray/CoreConfigV2rayService.cs L176(测速配置文件名是 configTest 加一串数字、出站标签是 proxy 加端口号);Handler/CoreConfigHandler.cs L16-L21、L44-L83(自定义配置原样复制给内核))\n- v2rayn-repo-v7-24-4:https://github.com/2dust/v2rayN/tree/635a04d74c3cb6891e144756234d50e147cf175a(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L407(生成 Xray 配置时 allowInsecure = 节点的跳过证书验证);Global.cs L15、Services/CoreConfig/V2ray/CoreConfigV2rayService.cs L178、Manager/CoreManager.cs L109、L133(测速配置文件名与出站标签,与 7.24.9 相同))\n- xray-core-src-26-7-28:https://github.com/XTLS/Xray-core/tree/5ca6f4b7d4dc20a881d4330e498892697627ec0c(app/proxyman/outbound/handler.go L253-L255(failed to process outbound traffic,以 Info 级别记日志);proxy/vless/outbound/outbound.go L200、proxy/vmess/outbound/outbound.go L81、proxy/trojan/client.go L72、proxy/shadowsocks/client.go L74 等(failed to find an available destination);common/retry/retry.go L39(重试的错误列在方括号里);transport/internet/tls/config.go L367-L402(没有 pinnedPeerCertSha256、verifyPeerCertByName 时按系统根证书校验);common/log/logger.go L148、L176(日志行首是日期与精确到微秒的时间,写到文件时相同);main/run.go L84、L95(Failed to start:)、L221(failed to load config files);infra/conf/transport_security.go L361-L362(allowInsecure 一律报已移除)、L179-L220(REALITY 客户端参数的格式检查);infra/conf/xray.go L683、L320 与 infra/conf/transport_internet.go L94、L108(出站配置报错的调用链);common/errors/feature_errors.go L25-L31(已移除报错的模板)。v2rayN 7.24.9 安装包里的 Xray 自报这个版本号,但和官方发布的文件不是同一个(提交号 ced1f55 不在官方仓库里))\n- xray-core-src-26-3-27:https://github.com/XTLS/Xray-core/tree/d2758a023cd7f4174a5a5fa4ff66e487d4342ba0(infra/conf/transport_internet.go L709-L716(allowInsecure:2026-06-01 UTC 之后报已移除,只提 pinnedPeerCertSha256)、L1786(Failed to build REALITY config.);infra/conf/xray.go L612、L286 与 main/run.go L225(出站配置报错的调用链);common/errors/feature_errors.go L25-L31)\n- exp-xray-allowinsecure-removed-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-xray-allowinsecure-removed-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-core-start-failed-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:5494efc 2026-09-30\n"},"v2rayn-first-run":{"id":"v2rayn-first-run","type":"howto","title":"第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理","aliases":["v2rayN 添加订阅","v2rayN 导入订阅","v2rayN 订阅链接填写位置","v2rayN 订阅分组设置","v2rayN 可选地址 (Url)","v2rayN 更新全部订阅 (不通过代理)","v2rayN 导入订阅后没有节点","v2rayN 节点列表空白","v2rayN 无效的订阅内容","v2rayN 导入订阅内容失败","v2rayN 成功从剪贴板导入 1 个配置","v2rayN import_sub","v2rayN 双击节点弹出编辑窗口","v2rayN 设为活动","v2rayN 主界面双击设为活动","v2rayN 清除系统代理","v2rayN 自动配置系统代理","v2rayN 不改变系统代理","v2rayN 浏览器不走代理","v2rayN mac 浏览器不走代理","v2rayN 当前延迟 -1 ms","v2rayN 本地混合监听端口 10808","v2rayN Windows 添加订阅","v2rayN macOS 第一次打开","v2rayN 英文界面切换简体中文","v2rayN clash_custom","v2rayN Clash 订阅只导入一项","v2rayN 绕过大陆"],"primary_topic":"v2rayn","topics":["v2rayn","subscription-import","basics"],"intents":[],"applicability":{"client":["v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-23","freshness":"current","markdown":"# 第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理\n\n主题:`客户端` › `v2rayN`\n适用:v2rayn / windows/macos/linux / any\n最后验证:2026-09-23\n\nv2rayN 7.x(本条按 7.24.9,Windows、macOS、Linux 菜单相同)第一次用,订阅链接填在菜单「**订阅分组**」→「**订阅分组设置**」→「添加」的「**可选地址 (Url)**」里。完整顺序:从 GitHub Release 下载解压 → 订阅分组设置里添加订阅 → 点「**更新全部订阅 (不通过代理)**」下载节点 → 选中一个节点**按回车**(或右键「设为活动」)→ 看状态栏的「当前延迟」是不是正数 → 把底部状态栏的系统代理从「**清除系统代理**」改成「**自动配置系统代理**」→ 看系统代理里有没有端口 **10808** → 用浏览器打开一个不开代理时打不开的网页确认。界面是英文的,先按第 2 步改成简体中文。\n\n新手最常卡的几处:**保存订阅不会下载节点**,要再点「更新全部订阅」;更新后信息栏出现「**无效的订阅内容**」,多半是没连上订阅地址,不一定是链接错了;**双击节点打开的是编辑窗口**,不是切换节点,按回车才是;**v2rayN 默认是「清除系统代理」**,不改这一项浏览器不走代理,而且它每次启动都会把系统代理清掉;**状态栏显示了延迟不等于浏览器走了代理**,那个检查是 v2rayN 自己经本地端口测的,「当前延迟: -1 ms」也只说明这次没测成。\n\n## 更新后还是没有节点\n\n- **信息栏出现「无效的订阅内容」**:这句话的意思其实是**什么都没取到**——网络不通、订阅地址在你的网络里直连打不开,都会报这一句,不一定是链接复制错了(按源码)。它上面通常还有一两行以你的分组别名开头的报错(多是英文),**那几行才是真正的原因**(按源码)。这种情况下这个订阅原来的节点不会被删(按源码)。按顺序做(作者建议):确认链接复制完整;在浏览器里打开这个链接,看能不能下载到一段内容;换一个网络再更新一次;还不行,把信息栏里的报错原文交给服务商(**贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址**)。\n- **信息栏先出现「获取订阅内容成功」,接着是「导入订阅内容失败」**:内容取到了,但 v2rayN 没能从里面解析出节点,这个订阅原来的节点已经被删掉,所以列表是空的(按源码)。常见的是服务商返回了一个出错页面,或者给的格式 v2rayN 认不出;内容很短时,v2rayN 会把它原样打在信息栏里,可以看一眼(按源码)。去服务商面板确认订阅是否过期,并问有没有给 v2rayN 用的订阅(作者建议)。订阅格式和客户端对不上的各种表现,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- **先看是不是没点更新**:订阅分组设置里点「确定」只存地址。回主界面点「订阅分组」→「更新全部订阅 (不通过代理)」,或者选中这个分组后点「更新当前订阅 (不通过代理)」(按源码)。\n- **地址不是 http:// 或 https:// 开头**:这个分组在更新时会被直接跳过,什么也不下载(按源码)。去服务商面板重新复制一次完整的订阅链接(作者建议)。\n- **分组被关掉了更新,或者填了过滤**:订阅编辑窗口里的「启用更新」默认是开的,被关掉的分组,「更新全部订阅」会跳过它,信息栏显示「未启用更新,跳过此订阅」;「别名正则过滤」填了内容时,名字对不上的节点不会导入(按源码)。第一次用把过滤留空。\n- **用 Ctrl+V(macOS 上 Cmd+V)粘贴了订阅链接,提示「成功从剪贴板导入 1 个配置」却没有节点**:在主界面按这个快捷键(光标不在输入框里)时,剪贴板里如果是一个 http(s) 地址,v2rayN 只会**新建一个订阅分组**(别名取链接里的 remarks 参数,没有就叫 `import_sub`),那个「1 个配置」指的是这个分组,**并没有下载节点**(按源码)。接着点「更新全部订阅」就行。\n- **服务商只给了 Clash 订阅**:订阅返回的是 Clash / mihomo 的完整配置时,按源码 v2rayN 不会拆成一个个节点,而是整份导入成**一项**「自定义配置」(名字是你的分组别名,或 `clash_custom`),交给包里的 mihomo 内核运行;启动时 v2rayN 会把配置里的 `mixed-port` 改成自己的本地端口,所以系统代理照样指向它(按源码)。「添加自定义配置」窗口里还有一句「自定义配置……如需使用系统代理请手动修改监听端口」(双击这一项编辑时打开的也是这个窗口,7.24.9、7.25.4 都一样),那是对所有自定义配置的通用提示,Clash 配置的端口按上面说的会被自动改写(按源码)。**这种情况本站没有实测**,列表里只有一项、没法逐个测速;想用上面这套流程,先问服务商有没有给 v2rayN 用的订阅(分享链接格式的)(作者建议)。\n- **选中节点按回车后,信息栏出现「当前节点使用未加密连接……此类节点无法通过 26.2.6+ 版本的Xray核心连接」**:这是提示原文。按源码,它在切换到用 Xray 内核的节点、而这个节点开了跳过证书校验又没有固定证书时出现;它只是警告,v2rayN 照样会启动内核。能不能连上由 Xray 内核决定,本条没有核对 Xray 那一侧。节点连不上时,把这句提示原文交给服务商,这是订阅本身要改的问题(作者建议)。\n\n## 开了软件,浏览器还是打不开\n\n按这个顺序查(作者建议的顺序):\n\n1. **状态栏系统代理那一项还是「清除系统代理」吗?** 这是默认值,改成「自动配置系统代理」。\n2. **状态栏的「当前延迟」是 -1 吗?** -1 表示 v2rayN 经本地端口访问测速地址没成功:节点不通、内核没起来、测速地址在这个节点上打不开,都会得到 -1(按源码)。最常见的是节点不通(作者判断),先换一个节点按回车。全部都是 -1 时,先到「设置」→「参数设置」→「v2rayN 设置」,把「真连接测试地址」原来的值记下来,再换一个(状态栏检查用的就是它,默认是 Google 的地址),点一下状态栏那行字重新测;还是 -1,先把测试地址改回原来的值,再按上面一节重新更新订阅(改过节点参数的先记下来,见第 3 步),然后把现象交给服务商(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址)。-1、超时各有哪些原因,见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning);所有节点都是 -1 时怎么分清是本机还是服务方,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n3. **系统代理设置里是以 127 开头的本机地址和端口 10808 吗?** 没有的话,看是不是还开着别的代理客户端:v2rayN 和它们都会写系统代理,后写的覆盖先写的;v2rayN 退出时也会把系统代理清掉(选「不改变系统代理」时除外)(按源码)。macOS 上选了「自动配置系统代理」但网络设置里没出现代理地址:v2rayN 是调用一个内置脚本去设置的,脚本执行失败时会把输出记进日志(按源码)。用菜单「设置」→「打开存储所在的位置」,在打开的文件夹里找 `guiLogs`,看当天的日志里有没有失败记录。\n4. **三项都正常,网页还是打不开?** 看浏览器是不是装了代理插件、或者在浏览器自己的设置里单独设了代理——这样它不读系统代理,把它改成「使用系统代理」或先停用插件;改之前记下原来的设置,改了还是打不开就改回去(作者的排查经验,没有逐个浏览器核对)。官方 wiki「系统代理和路由」一页说系统代理转发的是操作系统里「部分软件(比如浏览器)」的流量,命令行工具和一部分应用不读系统代理,它们不走 v2rayN 是正常的。默认路由「绕过大陆」下国内网站本来就直连,国内网站打开的速度不能说明代理通没通(作者建议)。到这里仍然不通,把信息栏里的报错原文和你做过的检查交给服务商(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址)。\n\n## 这几步在确认什么\n\n前三步确认**订阅真的变成了节点**:地址存上了(保存)、而且真的下载下来了(更新)——这是两个动作。后两步确认**流量真的交给了 v2rayN**:选中了一个节点、系统代理指向了 v2rayN 的本地端口。验证里那两道检查分别对应这两半:「当前延迟」是正数说明节点通,系统代理里有 10808 说明浏览器会走它,两个都满足、网页还打不开才是别的问题。顺序是作者按依赖关系排的。\n\n默认路由「V4-绕过大陆(Whitelist)」把国内(cn)的域名和 IP 设为直连;另外内置「V4-黑名单(Blacklist)」和「V4-全局(Global)」两套(按源码)。三套的具体差别和怎么切换见 `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)。新手保持默认即可(作者建议)。\n\n## 适用范围与验证方式\n\n只按 v2rayN 7.24.9 的源码和官方 wiki 核对(菜单文字取自源码里的简体中文界面文字表),**没有在任何一台电脑上实际操作过**,本条没有一条是实测。\n\n- 「自动配置系统代理」会改整台电脑的代理设置,测试规则不允许,所以这一步也只按源码。\n- 7.25.x 的界面没有核对;7.25.4 只按源码核对了语言下拉框和「添加自定义配置」窗口里那句提示。\n\n## 步骤\n1. **先下哪个**(本站建议):Windows 下 `v2rayN-windows-64.zip`;Apple 芯片的 Mac 下 `v2rayN-macos-arm64.dmg`,Intel 芯片的 Mac 下 `v2rayN-macos-64.dmg`;Linux 上 Debian / Ubuntu 用 deb 包、Fedora / Redhat 用 rpm 包(哪种包对应哪些发行版按官方 wiki);但 7.24.9 的 deb 在 Ubuntu 22.04、Debian 12 上装不上,与官方 wiki 写的 22.04+ / Debian 12+ 不符(本站在容器里实测 arm64 包),这两个系统怎么办见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)。**系统要求**:Windows 10 及以上、macOS 13.6 及以上(官方 wiki「发布文件介绍」https://github.com/2dust/v2rayN/wiki/Release-files-introduction/f9abd39da25add650a0f445415330e18a5cbe67d ;macOS 的 13.6 在源码的打包脚本里也写着)。只从项目自己的 Release 页下载:https://github.com/2dust/v2rayN/releases (项目 README 的下载一节只写了这一个地址)。本条按 **7.24.9** 写;标着 Pre-release 的版本界面可能不一样。其余文件:Windows 另有 `-arm64`、`-86` 两种处理器的包,每种还有一个文件名带 `-desktop` 的,那是另一套界面框架(Avalonia)的版本,菜单名称相同;Mac 和 Linux 另有 zip 免安装版(按源码里的打包脚本)。**Windows 的 zip 是免安装的**:解压到一个你有写权限的文件夹直接运行,设置和订阅就存在这个文件夹的 `guiConfigs` 里,所以**别解压到临时文件夹然后删掉**;程序所在的文件夹不能写时,v2rayN 会改存到用户目录下(按源码)。7.24.9 的发布包自带 .NET 运行环境,**Windows 上不用另装 .NET**(按源码的构建脚本)。**macOS 打开时提示「应用已损坏」**:官方 wiki 的说法是安装包没有签名,装好后在「终端」里运行 `xattr -cr /Applications/v2rayN.app` 再打开(按上面那页官方 wiki,本站没有实测)。**运行之前要知道它做了什么**:这条命令清除这个应用上的全部扩展属性(`-c`),连同应用包里的每个文件(`-r`),其中包括 macOS 给下载来的文件加的隔离标记——正是这个标记让系统在第一次打开时做检查,所以清掉之后系统不再拦这个应用(命令含义按 macOS 自带的 xattr 说明)。**只对你确认是从上面那个 Release 页下载、而且信任的这个安装包运行**;路径照抄 `/Applications/v2rayN.app`,不要改成别的应用或整个文件夹。之后不想用了,把这个应用删掉即可。\n 失败时 → escalate\n2. **打开之前先记下系统代理**:v2rayN 默认每次启动都会把系统代理清掉(见第 5 步,按源码),电脑原来手动设过系统代理的,先把地址和端口记下来,不用 v2rayN 时再填回去(作者建议)。打开 v2rayN。**界面是英文的话**:系统语言不是中文时,v2rayN 第一次打开用英文界面,本条的菜单名按简体中文界面写;点顶部菜单栏最右边那个竖排三个点的按钮,把「Language (Restart)」改成 `zh-Hans`(7.25.4 里这一项显示为「简体中文」),再退出重开,菜单就和本条一致(按源码)。然后点顶部菜单「**订阅分组**」→「**订阅分组设置**」,在弹出的窗口里点「**添加**」。「别名」随便填一个名字(**不能空着**,空着点确定会提示「请填写别名」、不会保存);把服务商给你的订阅链接粘到「**可选地址 (Url)**」;其余选项(User Agent、自动更新间隔、订阅转换目标类型、别名正则过滤等)**保持默认、不用填**,点「确定」,再关掉订阅分组设置窗口(按源码)。订阅链接是以 https 或 http 开头的一串网址,**它等同于你的账号凭据,不要发给别人、聊天助手或在线工具**。连网址格式都不对的(比如漏了开头的 https 那一段),点确定时会提示「地址 (Url) 无效」、不会保存;格式对但不是 http:// 或 https:// 开头的,能存上,但更新时会被直接跳过;公网的 http 地址保存时会提示「请不要使用不安全的 HTTP 协议订阅地址」,但仍然会存上(按源码)。网上搜到的「服务器 → 添加订阅」是 4.x 老版本的界面,7.x 里已经没有这个菜单。**保存只是把地址记下来,不会下载节点**——这时主界面列表是空的,是正常的,要做下一步(按源码)。\n 失败时 → escalate\n3. 回到主界面,点菜单「**订阅分组**」→「**更新全部订阅 (不通过代理)**」。第一次用、还没有能用的节点时,选「不通过代理」就行;「通过代理」那一项经代理取不到时也会自动改用直连再试一次(按源码)。**结果看「信息」栏**:主窗口默认上半部分是节点列表,下半部分那个标着「信息」的标签页会一行行滚动输出文字(按源码的默认布局)。成功时依次出现「更新订阅开始」「开始获取订阅内容」「获取订阅内容成功」「开始解析和处理订阅内容」「更新订阅结束」,列表里出现节点;节点列表上方有一排分组标签,第一个是「所有」,后面是你刚起的别名,点它只看这个订阅的节点(按源码)。出现「**无效的订阅内容**」或「**导入订阅内容失败**」就是没成,看正文「更新后还是没有节点」一节。**更新时只要取到了内容,就先删掉这个订阅原来的节点,再按新内容导入,延迟和速度数据也会清空;新内容解析不出节点时,列表会变空**(按源码),所以更新后要重新测速;你在 v2rayN 里对这些节点改过的参数也会丢,**改过的先记下来再更新**。v2rayN 拉订阅时报给服务器的身份(User Agent)是「v2rayN/版本号」(例如 v2rayN/7.24.9),很多服务商后台会按这个值决定给你什么内容(按官方 wiki「部分界面说明」https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/f9abd39da25add650a0f445415330e18a5cbe67d ;版本号的取法按源码)。\n 失败时 → escalate\n4. 在列表里**单击选中一个节点,然后按回车**;或者在它上面点右键,选「**设为活动**」(按源码)。**双击默认打开的是这个节点的编辑窗口,不会切换节点**——这是新手最常卡住的一处:弹出编辑窗时点取消就行。想让双击直接切换,到菜单「设置」→「参数设置」→「v2rayN 设置」页打开「**主界面双击设为活动**」这个开关(按源码,Windows 版和另一套界面都是这样)。切换后 v2rayN 会用这个节点重新启动内核,底部状态栏马上显示「**当前延迟: N ms,…**」(按源码)。这个数和下一步的系统代理无关,**现在就可以看**:是正数,说明经这个节点能访问测速地址;是 -1,只表示这次测速没成功——节点不通、内核没起来、测速地址在这个节点上打不开都会是 -1(按源码),不一定是节点坏了。**是 -1 也可以接着做完下一步**,再用网页验证(打开一个不开代理时打不开的网页,国内网站默认直连、证明不了什么):网页能打开,节点可以用,测速失败按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查测速地址;网页也打不开,再回来换一个节点按回车。改系统代理不会让它重新测;想重新测,点一下状态栏里这行字(按源码)。\n 失败时 → escalate\n5. 看主界面**最底下的状态栏**,有一个系统代理的下拉框(托盘图标的右键菜单里也有),把它从「**清除系统代理**」改成「**自动配置系统代理**」;旁边的路由下拉框保持默认的「**V4-绕过大陆(Whitelist)**」,局域网地址在三套内置路由里都是直连(按源码)。官方 wiki「系统代理和路由」https://github.com/2dust/v2rayN/wiki/Description-of-system-proxy-routing/f9abd39da25add650a0f445415330e18a5cbe67d 给的常规用法也是这两项:系统代理选「自动配置系统代理」,路由选「绕过大陆」。**新装的 v2rayN 默认就是「清除系统代理」**:它每次启动、每次切换节点都会把系统里的代理清掉,所以不改这一项,浏览器根本不会走 v2rayN(按源码)。改成「自动配置系统代理」后,v2rayN 会把系统代理设成以 127 开头的本机地址(代表你这台电脑自己)加端口 **10808**——10808 是 v2rayN 默认的「本地混合监听端口」,同一个端口同时收 socks5 和 http(按源码)。**Windows** 上写进系统的代理设置(Internet 选项里那一份);**macOS** 上对每个网络服务都设 Web 代理、安全 Web 代理和 SOCKS 代理三项;**Linux** 上按桌面环境用 GNOME 或 KDE 的代理设置(按源码)。几个选项的区别:清除=强制清掉系统代理;自动配置=强制设成转发给 v2rayN;不改变=什么都不动,保留别的软件设的代理;Pac 模式只在 Windows 上有,macOS 和 Linux 的下拉框里不显示这一项(按源码)。\n 失败时 → escalate\n\n## 验证\n- **v2rayn-two-checks**(人):做两道检查,再开网页:① 看切换节点后底部状态栏显示的「当前延迟」;② 打开系统自己的代理设置,看地址是不是以 127 开头的本机地址、端口是不是 10808——Windows 10 / 11 在「设置 → 网络和 Internet → 代理」的「手动设置代理」里;macOS 在「系统设置 → 网络」里点当前网络的「详细信息」→「代理」;Linux 在你桌面环境的网络代理设置里(这三处系统界面的位置是本站按常见版本写的,没有逐版核对;找不到时在系统设置里搜索「代理」);③ 用浏览器打开一个不开代理时打不开的网页(比如你装它就是为了访问的那个)。\n 预期:①是一个大于 0 的毫秒数,说明内核和节点通了;逗号后面默认显示 none,这是正常的——只有在「设置」→「参数设置」→「v2rayN 设置」里选了「当前连接信息测试地址」,那里才会显示 IP 和地区(按源码)。看测速结果只看毫秒数。这个检查是 v2rayN 自己经本地端口测的,**和系统代理开没开无关**(按源码),所以还要看②;②里是以 127 开头的本机地址和端口 10808,说明浏览器会交给 v2rayN;③网页正常显示就完成了。①显示「当前延迟: -1 ms,none」表示 v2rayN 经本地端口访问测速地址没成功(按源码),不一定是节点不通:②正常、③网页也能正常显示的,同样算完成,测速失败按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查测速地址;③网页打不开时,最常见的原因是这个节点不通(作者判断),换一个节点再按回车;①正常、②里没有 10808 时,回上一步确认下拉框选的是「自动配置系统代理」,别的代理客户端同时开着会互相覆盖系统代理,先把它退出(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(README.md(下载一节);.github/workflows/build.yml L79(SelfContained=true)、build-windows.yml、build-windows-x86.yml、package-zip.yml、build-osx.yml、build-linux.yml(发布文件名);package-osx.sh L56-57(LSMinimumSystemVersion 13.6);v2rayN/Directory.Build.props L8(net10.0);v2rayN/v2rayN.Desktop/Views/MainWindow.axaml L23-24(菜单栏右端 conTheme)、L56-62(订阅分组菜单)、L132-145(默认布局 gridMain1:上节点列表、下「信息」标签页)与 v2rayN/v2rayN/Views/MainWindow.xaml(订阅分组菜单、pbTheme、gridMain1)、MainWindow.xaml.cs L389-395;ServiceLib/Models/Configs/ConfigItems.cs L93(MainGirdOrientation 缺省 Vertical)、L100、L163(IPAPIUrl 无初始值)、L226;Views/ThemeSettingView.axaml L22-59 与 ThemeSettingView.xaml(语言 (需重启));ServiceLib/Handler/ConfigHandler.cs LoadConfig L44-57(LocalPort 10808)、L108-112(非 zh 区域首次用 en)、L125-145(只补 SpeedTestUrl、SpeedPingTestUrl、UdpTestTarget,不补 IPAPIUrl)、AddBatchServers L2040-2110(取到内容先 RemoveServersViaSubid 再解析)、AddBatchServersCommon L1637-1668(剪贴板 http(s) 只建订阅分组;subFilter 别名正则过滤)、AddSubItem L2151-2181(别名缺省 import_sub)、InitBuiltinRouting L2631-2661(默认绕过大陆);Views/SubEditWindow.axaml(别名、可选地址、别名正则过滤、启用更新);ServiceLib/ViewModels/SubEditViewModel.cs SaveSubAsync L54-93(别名必填、Utils.TryUri 失败提示地址无效、公网 http 只提示不拒绝);ServiceLib/ViewModels/MainWindowViewModel.cs SubSettingAsync L555-560(保存后只刷新列表)、剪贴板导入 L474-495、L680-694(校验只在失败时中止;重载后设置系统代理并检查);ServiceLib/Handler/SubscriptionHandler.cs L7-57、L75-78、L83-104、L188-220(未启用跳过、http(s) 校验、下载异常原文写入信息栏、经代理失败回退直连、内容为空报无效的订阅内容且不删旧节点、解析不出节点报导入订阅内容失败);ServiceLib/Services/DownloadService.cs L194-218(Error 事件)、L251-255 与 Common/Utils.cs GetVersion L832-838(User-Agent v2rayN/版本号);ServiceLib/Handler/Fmt/ClashFmt.cs L5-20(Clash 完整配置整份导入、clash_custom);ServiceLib/Handler/CoreConfigHandler.cs L20 与 ServiceLib/Services/CoreConfig/CoreConfigClashService.cs L74-75(mihomo 自定义配置的 mixed-port 覆写为本地端口);v2rayN.Desktop/Views/ProfilesView.axaml.cs L205-216、L280-286 与 v2rayN/Views/ProfilesView.xaml.cs L192-202、L263(双击编辑、回车设为活动);v2rayN.Desktop/Views/OptionSettingWindow.axaml L478-863(v2rayN 设置页:主界面双击设为活动 ToggleSwitch L627-629、真连接测试地址 L735、当前连接信息测试地址 L763)与 v2rayN/Views/OptionSettingWindow.xaml L813-815(ToggleButton);ServiceLib/ViewModels/ProfilesViewModel.cs L395-401(分组标签「所有」);Enums/ESysProxyType.cs(SysProxyType 缺省 0=ForcedClear);ServiceLib/ViewModels/StatusBarViewModel.cs Init L227、TestServerAvailability L327-352、SetListenerType L360-372(改系统代理不重新检查);v2rayN.Desktop/Views/StatusBarView.axaml.cs L17、L93 与 v2rayN/Views/StatusBarView.xaml.cs L16、L94-96(点状态栏文字重新检查);ServiceLib/Manager/AppManager.cs InitApp L65-67(程序目录不可写时改存用户目录)、AppExitAsync L128;ServiceLib/Handler/SysProxy/SysProxyHandler.cs L7-60、L85-97;ServiceLib/Sample/proxy_set_osx_sh L15-33、proxy_set_linux_sh;Views/StatusBarView.axaml 与 StatusBarView.xaml(cmbSystemProxy、cmbRoutings2、txtRunningInfoDisplay);ServiceLib/Handler/ConnectionHandler.cs L10-64、L69-99、L104-111(状态栏检查走 socks5 本地端口、两次失败或异常记 -1;IPAPIUrl 为空时 IP 显示 none);ServiceLib/Manager/NoticeManager.cs L48-57(校验警告写入信息栏);ServiceLib/Global.cs L52、L164-166、L487-491、L658-665;ServiceLib/Handler/Builder/NodeValidator.cs L134-147(Xray 节点跳过证书校验且未固定证书时发出警告);ServiceLib/Common/Utils.cs L1029-1044、L1084-1125(guiConfigs 位置);ServiceLib/Resx/ResUI.zh-Hans.resx(全部中文界面文字,含未加密连接警告、「无效的订阅内容」「导入订阅内容失败」与自定义配置提示 CustomServerTips 这几条)与 ResUI.resx(英文界面文字);v2rayN.Desktop/Views/AddServer2Window.axaml L168 与 v2rayN/Views/AddServer2Window.xaml L212(「添加自定义配置」窗口显示 CustomServerTips))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Global.cs L498-L509(LanguageOptions:zh-Hans 显示为简体中文等);v2rayN.Desktop/Views/ThemeSettingView.axaml.cs L18-L20 与 v2rayN/Views/ThemeSettingView.xaml L79-L85 与 ThemeSettingView.xaml.cs L17(语言下拉框显示名称、取值仍是语言代码);ServiceLib/Resx/ResUI.resx L471-L472(Language (Restart));v2rayN.Desktop/Views/AddServer2Window.axaml L10、L164-L168 与 v2rayN/Views/AddServer2Window.xaml L212(「添加自定义配置」窗口显示 CustomServerTips);ServiceLib/ViewModels/ProfilesViewModel.cs L479-L482(编辑自定义配置时打开同一个窗口))\n- exp-release-assets-which-file-cli-2026-09-24:验证记录(内部存档,未公开)\n\n最后修订:dc501fa 2026-10-02\n"},"v2rayn-routing-presets":{"id":"v2rayn-routing-presets","type":"howto","title":"v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了","aliases":["v2rayN 全局模式","v2rayN 全局代理","v2rayN 路由预设","v2rayN 路由规则集","v2rayN 状态栏路由下拉框","v2rayN V4-全局(Global)","v2rayN V4-绕过大陆(Whitelist)","v2rayN V4-黑名单(Blacklist)","v2rayN 一键导入规则集","v2rayN 路由设置改变","v2rayN PAC 模式","v2rayN Pac 模式只有 Windows","v2rayN macOS 没有 PAC","v2rayN 4.0 Remove PAC","v2rayN 让某个网站直连","v2rayN 局域网直连","v2rayN 路由规则全部关掉","v2rayN 绕过大陆没命中走代理","v2rayN 阻断udp443","v2rayN 最终代理","v2rayN 最终直连","v2rayNG 全局模式","v2rayNG 规则模式","v2rayNG 路由设置","v2rayNG 导入预定义规则集","v2rayNG 全局 (Global)","v2rayNG 绕过大陆 (Whitelist)","v2rayNG 黑名单 (Blacklist)","v2rayNG 将删除现有的规则集","v2rayNG 锁定中,导入预设时不删除此规则","v2rayNG 改路由后要重连","v2rayNG 让某个网站直连","v2rayNG VPN 模式照样按规则分流"],"primary_topic":"routing-rules","topics":["routing-rules","v2rayn","v2rayng"],"intents":[],"applicability":{"client":["v2rayn","v2rayng"],"os":["windows","macos","linux","android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-23","freshness":"current","markdown":"# v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了\n\n主题:`基础概念` › `分流规则与代理模式`\n适用:v2rayn/v2rayng / windows/macos/linux/android / any\n最后验证:2026-09-23\n\nv2rayN 和 v2rayNG 里的「全局」首先是**路由预设**(规则集):全局、绕过大陆、黑名单是三套预设。**v2rayN**(电脑版,本文按 7.24.9 写)在主界面最底下状态栏的**路由下拉框**(系统代理下拉框右边那个,显示着当前规则集的名字)里选「**V4-全局(Global)**」;改回默认的「**V4-绕过大陆(Whitelist)**」就是国内直连、其余走代理;「**V4-黑名单(Blacklist)**」只让被墙网站名单和 Google 等走代理。**v2rayNG**(安卓)走侧边栏「**路由设置**」→ 右上角 ⋮ →「**导入预定义规则集**」→「**全局 (Global)**」,确认框「将删除现有的规则集,是否确定继续?」会删掉你没锁定的自定义规则,**导入后要停止再启动才生效**。\n\n旧教程里的「**PAC 模式**」现在叫「Pac 模式」,在状态栏的**系统代理**下拉框里,**只有 Windows 版 v2rayN 有**,macOS、Linux 和 v2rayNG 都没有;它和路由预设是两层。在 v2rayN、v2rayNG 里开 TUN(v2rayNG 叫 VPN 模式)也不等于全局,路由规则照样生效。想让某个网站直连,在当前规则集里加一条 domain → direct 的规则,新规则排在最上面、最先匹配。「V4-」这个前缀是 7.16 起才有的,旧版升级上来的可能叫「V3-…」。\n\n## v2rayNG 导入会删掉什么\n\nv2rayNG 只存一份规则列表,「导入预定义规则集」就是**整份替换**:你以前自己加过、没锁定的规则会被删掉(实测)。**这对你意味着**:想留下的规则,先在它的编辑页打开「锁定中,导入预设时不删除此规则」再导入(见第 3 步);锁定的规则导入后排在最前面。\n\n## 三套预设各做什么\n\n三套预设的规则都来自客户端内置的规则文件(v2rayN 7.24.9 与 v2rayNG 2.2.6 基本相同)。规则从上往下匹配,命中第一条就按它走:\n\n| 预设 | 规则(从上到下) | 没写到的网站 |\n|---|---|---|\n| 绕过大陆 (Whitelist),默认 | 阻断 UDP 443 → 代理 Google → 局域网直连 → 国内公共 DNS 直连 → 中国 IP 直连 → 中国域名直连 | **走代理**(没有兜底规则,靠默认出口) |\n| 黑名单 (Blacklist) | BT 下载直连 → 阻断 UDP 443 → 代理 Google → 局域网直连 → 海外公共 DNS 走代理 → Google、Telegram、Netflix 等的 IP 走代理 → GFW 列表走代理 → **最终直连** | **直连** |\n| 全局 (Global) | 阻断 UDP 443 → 局域网直连 → **最终代理** | **走代理** |\n\n几个词的白话:**出口**=流量最后从哪里出去,节点(代理)还是你自己的网络(直连);**默认出口**=一条规则都没命中时用的那个出口,在这两个客户端里就是你选的节点;**GFW 列表**=一份公开维护的、在国内被屏蔽的网站名单,客户端自带的 geo 数据文件(网站和 IP 的归类名单)里就有它;**阻断 UDP 443**=把发往 443 端口的 UDP 流量直接丢掉。\n\n表里的黑名单按 v2rayNG 的顺序列出;v2rayN 的黑名单在第 2 条多一条「api.ip.sb 走代理」。\n\n**「中国 IP 直连」这一条在默认设置下管得很少**:两个客户端的域名解析策略默认都是 AsIs(v2rayN 在「路由设置」窗口里叫「域名解析策略」,按源码;v2rayNG 在「路由设置」列表上方显示为「域名策略」,实测)。AsIs 下内核不会先把网址解析成 IP,所以按网址访问的网站看的是「中国域名」那一条,「中国 IP」只管直接按 IP 地址发起的连接(按内核源码)。\n\n**「绕过大陆」=白名单,列的是直连的网站**,不是「只有名单里的走代理」(作者提醒:别把名字理解反了)。**这对你意味着**:选默认的「绕过大陆」时,国内网站直连、其余全部走代理;选「黑名单」时正相反,只有被列出来的走代理,名单外的国外网站也直连——它在你的网络里本来打不开的话,选黑名单时也打不开(按规则内容推断,没有实测)。\n\n**实测**:把三套规则原样放进 Xray 内核,访问 5 个网站,结果与上表一致——绕过大陆下 baidu.com 直连、其余 4 个走代理;黑名单下 wikipedia.org、google.com 走代理,baidu.com、example.com、microsoft.com 直连;全局下 5 个全走代理。v2rayNG 2.2.6 在模拟器里也是:绕过大陆下 baidu.com 直连、example.com 等走代理;黑名单下 wikipedia.org 走代理、microsoft.com 直连。\n\n## 几种常见误解\n\n- **「绕过大陆里没写走代理的规则,为什么大部分网站还是走代理?」** 没有藏起来的规则。内核在没有任何规则命中时用「默认出口」,也就是排在第一个的出口;v2rayN 和 v2rayNG 都把你选的节点排在第一个(v2rayN 用 sing-box 内核时则直接把兜底设成代理)。实测把同一套规则的出口顺序改成「直连在前」,example.com、wikipedia.org、microsoft.com 立刻全变成直连。这套预设末尾原来有一条「最终代理」,2024-12-31 删掉了。在默认的 AsIs 下,删不删去向都一样:没命中的照样走默认出口,也就是代理(按规则内容推断)。域名解析策略改成 IPIfNonMatch 时就不一样了:内核先按网址把规则走一遍,一条都没命中才解析出 IP 再走一遍,末尾那条覆盖全部端口的「最终代理」会让第一遍就命中,「中国 IP 直连」永远轮不到;删掉它以后,解析到中国 IP 的网站才会直连。这一半是按源码推断的,本站没有实测。\n- **「把路由里的规则全关掉就是全局」**:不完全对。每条规则都有启用开关,关掉的不参与匹配(按源码)。在「绕过大陆」里全关,局域网(家里路由器、NAS 这类地址)也会走代理,UDP 443 也不再被阻断(按规则内容推断,没有实测);「全局」预设保留了局域网直连。只去掉最后 4 条中国直连规则时,实测 5 个网站的去向和「全局」一样。**想要全局,直接选「全局」预设最省事**(作者建议)。\n- **「开了 TUN 就是全局」**:不是。TUN(虚拟网卡,让整台设备的流量都先进到客户端;v2rayNG 里叫 VPN 模式)只决定流量怎样进到客户端,进去之后照样按路由规则分直连和代理。v2rayNG 实测:VPN 模式下、「绕过大陆」预设里,baidu.com 仍然直连、example.com 走代理;v2rayN 开 TUN 时,Xray 和 sing-box 两种内核的配置里都照样加入当前规则集的规则(按源码)。\n- **「和 Clash Verge Rev 的全局模式是一回事」**:不是。这里的「全局」是 v2rayN / v2rayNG 的一套路由规则,保留了局域网直连、会丢掉 UDP 443;Clash 系客户端(例如 Clash Verge Rev)的「全局」是另一个软件里的另一个开关,别拿两边的说法互相对照,那边的说明见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)。另外,v2rayN 在运行 sing-box 或 mihomo 内核时,「当前代理」标签页里还有一个「规则模式」下拉框,选项里也有全局(7.24.9 显示「全局」,7.25.4 显示内核报上来的模式名,内核没报时是英文 `Global`),那是内核自己的模式开关,和这里的路由预设不是一回事;用 Xray 内核时这个标签页不显示(按源码)。\n- **「默认规则自带去广告」**:2025-03-30 起,v2rayN 和 v2rayNG 的三套预设都删掉了「阻断广告」这一条。\n- **「阻断udp443」是什么、要不要动**:三套预设里都有这一条,把发往 443 端口的 UDP 流量丢掉。它在绕过大陆和全局里是第一条,在黑名单里排在「绕过bittorrent」之后(v2rayN 的黑名单里还排在 api.ip.sb 之后);它排在中国直连规则前面,所以选绕过大陆时,国内网站的 UDP 443 也会被挡(按源码的规则内容)。它对网页打开、速度有没有影响,本站没有实测,**新手保持默认、不用动它**(作者建议)。\n\n## PAC 模式去哪了,和路由是什么关系\n\n**v2rayN 的沿革**:3.x 的菜单里有「开启Http代理,并自动配置系统代理(全局模式)」和「开启PAC,并自动配置系统代理(PAC模式)」——**那时的「全局模式」说的是系统代理这一层**,大致对应现在系统代理下拉框里的「自动配置系统代理」,不是现在路由里的「全局」(作者按界面文字对照)。4.0(2020-12-25)的发布说明写着「Remove PAC」,那一版的系统代理菜单里也没有 PAC 项;6.0(2023-01-01)的发布说明第 15 条又写「添加PAC模式」,源码里重新有了 PAC 的实现和「Pac模式」选项。\n\n**现在(7.24.9)**:「Pac 模式」是状态栏**系统代理**下拉框的最后一项,只在 Windows 上显示、也只在 Windows 上实现;macOS 和 Linux 上这一项被删掉了。v2rayNG 源码里没有任何 PAC 实现。\n\n**两层的关系**:v2rayN 生成的 PAC 文件把要代理的请求写成「PROXY 本机端口」、其余写成 DIRECT;官方 wiki 的[「系统代理和路由」一页](https://github.com/2dust/v2rayN/wiki/Description-of-system-proxy-routing/aea8f57554be2d1817f56fcf75e104440676a2dd)(链接指向这一页最近一次改动 aea8f57 那一版)的说法也是:PAC 模式下 Direct 走本地网络、PROXY 转发给核心,核心再按路由规则把流量从不同出口发出。**也就是说 PAC 先决定哪些请求交给 v2rayN,交给 v2rayN 的再按你选的路由预设分**。(按源码和 wiki,PAC 模式的实际效果没有实测。)同一页给的常规用法是:系统代理选「自动配置系统代理」,路由选「绕过大陆」。新手不需要 PAC(作者建议)。\n\n## 列表和本文不一样\n\n- **v2rayN 从旧版升级上来**:只要已经有任何一套规则集,7.24.9 就不会重建内置预设(按源码)。7.16 之前的版本建的三套叫「V3-绕过大陆(Whitelist)」「V3-黑名单(Blacklist)」「V3-全局(Global)」,作用相同,但里面的规则可能是旧的;中间用过 7.16~7.24.8 的,那几版会在没有「V4-」规则集时自动再加一套,所以下拉框里可能 V3-、V4- 两组并存(按源码提交)。**怎么判断手里的是旧规则**:「设置」→「路由设置」→ 双击规则集,对照上面的表逐条看;还带着「阻断广告」,或者绕过大陆末尾还有「最终代理」,就是旧的(名字是 V4- 开头也可能是旧的)。**想换成新版的三套**:在「路由设置」窗口点「一键导入规则集」,新的一组**追加在列表最下面**,原来的不删(按源码)。先在状态栏的路由下拉框里选中新的那套(下拉框的顺序和列表一样,新的在最下面),再回到「路由设置」。**旧规则集里你自己加过的规则不会跟到新的那组里**(新的一组是按内置规则新建的,按源码):移除之前先双击旧规则集把它们记下来,在新的那套里按第 3 步重新加上,再把上面旧的几套选中、右键「移除所选规则」。\n- **v2rayNG 导入预设后多出来几条**:那是你锁定过的规则,锁定的规则导入时保留、排在最前面(实测);导入之后在第 3 步加的规则也插在最前面(实测;锁没锁都一样,按源码)。\n- **v2rayNG 2.3.x 预发布版**:路由界面的代码已经改过,本条的入口位置按 2.2.6 写;预设名和确认框文字在 2.3.9 预发布版里没变。\n\n## 适用范围与验证方式\n\nv2rayNG 2.2.6 在安卓模拟器里实机跑过,走没走代理看的是本机节点服务端的日志;v2rayN 7.24.9 只按源码和官方 wiki 核对(「规则模式」下拉框另按 7.25.4 的源码),三套预设的分流是把它的规则搬进命令行 Xray 内核实测的。\n\n- 没有在电脑上打开 v2rayN 操作过,Windows、macOS、Linux 的界面都按源码写。\n- 实测节点在本机,只用 80 端口的 HTTP 试了几个网站(HTTPS、UDP 没有测);换别的网站或别的版本的 geo 数据,个别网站的归类可能不同。\n- 域名解析策略改成 AsIs 以外的值没有测过。\n\n## 步骤\n1. **选一套路由预设**。「全局」「绕过大陆」「黑名单」在这两个客户端里都是**路由规则集**的名字,不是开关。**v2rayN(电脑版)**:看主界面最底下的状态栏,有两个并排的下拉框,左边那个显示「清除系统代理」「自动配置系统代理」这类选项,**右边那个显示当前规则集的名字**,比如「V4-绕过大陆(Whitelist)」,这就是路由下拉框(macOS、Linux 版把鼠标停在上面会提示「路由」,按源码)。点开它选「**V4-全局(Global)**」=除局域网外都走代理;「**V4-绕过大陆(Whitelist)**」是新装时的默认,国内网站直连、其余走代理;「**V4-黑名单(Blacklist)**」只让被墙网站名单、Google 等走代理,其余直连(按源码)。三套的名字在英文界面下也是这几个中文。**v2rayNG(安卓)**:打开侧边栏(抽屉)→「**路由设置**」→ 右上角 ⋮ →「**导入预定义规则集**」,列出 5 个预设:绕过大陆 (Whitelist)、黑名单 (Blacklist)、全局 (Global)、伊朗 (Iran)、俄罗斯白名单 (Russia Whitelist);选一个后弹出「**将删除现有的规则集,是否确定继续?**」,点「确定」(实测)。点之前先看正文「v2rayNG 导入会删掉什么」。\n 失败时 → escalate\n2. **让新规则生效**。**v2rayN**:在状态栏下拉框里换了规则集,它会提示「路由设置改变」并自动重新加载内核,不用重启软件;在「设置」→「路由设置」窗口里改过东西,关掉这个窗口时也会自动重新加载(按源码)。**v2rayNG:导入或改完路由,一定要在主界面点启动/停止按钮先停止,再点一次启动**。实测不重连时旧规则还在生效:导入「全局」后连测两次,国内网站仍然直连,界面也没有任何「需要重启」的提示;停止再启动后才变成走代理(实测)。\n 失败时 → escalate\n3. **(可选)只让某一个网站直连**,不用整套换预设:在**正在用的那套**规则集里加一条规则,网站写成 `domain:example.com`(把 example.com 换成你要的网站,它的子域名也会一起匹配,按 Xray 内核源码),出口选 `direct`;要它单独走代理就选 `proxy`。**v2rayN**:菜单「设置」→「路由设置」→ 双击当前在用的那套规则集,打开「规则集设置」窗口 →「添加规则」→ 在「Domain」框里填、outboundTag 选 direct →「确定」;回到「规则集设置」窗口再点「确定」保存,然后关掉「路由设置」窗口(按源码)。**v2rayNG**:「路由设置」→ 右上角 **+** → domain 填、outboundTag 选 direct;想让以后导入预设时保留它,打开「锁定中,导入预设时不删除此规则」→ 点对勾(✓)保存 → **停止再启动**(实测)。两边的新规则都插在列表**最上面**,比预设里的规则先匹配(v2rayNG 实测、v2rayN 按源码);v2rayN 的规则集设置窗口里还能用「上移至顶」「下移至底」调顺序(按源码)。\n 失败时 → escalate\n\n## 验证\n- **routing-preset-check**(人):① **v2rayN**:看状态栏的路由下拉框(系统代理下拉框右边那个)显示的是不是你选的那一套。**v2rayNG**:打开「路由设置」,看列表是不是换成了预设——「全局 (Global)」是 4 条、最后一条叫「最终代理」;「绕过大陆 (Whitelist)」是 8 条、最后一条是「绕过中国域名」;「黑名单 (Blacklist)」是 10 条、最后一条叫「最终直连」(你锁定过的规则、导入后在第 3 步加的规则——不论锁没锁——另外排在最前面)——并确认改完之后停止、再启动过一次。② **只在选了「全局」时有用**:用浏览器打开一个会显示「你的 IP」的网页,看它显示的 IP。\n 预期:①和你选的一致,这一步就算通过。②选「全局」时显示的应当是节点那一侧的 IP,不是你自己宽带的 IP(作者建议的检查办法:按规则内容,全局下除了局域网都走代理;本站判断走没走代理用的是节点服务端日志,没有用这种网页实测过)。选「绕过大陆」或「黑名单」时,这种网页**分不清有没有生效**:那个查 IP 的网站本身在不在规则名单里,决定了它显示你的 IP 还是节点的 IP,显示哪个都不代表失败。①不一致:v2rayN 重新在下拉框里选一次;v2rayNG 先把想留下的规则锁定(见第 3 步,重新导入会删掉没锁定的规则),再回第 1 步重新导入,做第 2 步的停止、启动。这样重做一次仍不一致,或者 v2rayN 的下拉框里没有「V4-」开头的三套、规则和正文的表对不上,看正文「列表和本文不一样」一节。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `分流规则:按顺序决定直连还是走代理`(见 what-are-routing-rules)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Sample/custom_routing_white、custom_routing_black、custom_routing_global(三套内置预设的规则);ServiceLib/ViewModels/MainWindowViewModel.cs L696 与 ServiceLib/Manager/AppManager.cs L39-L50(运行 sing-box 或 mihomo 内核时才显示「当前代理」)、v2rayN.Desktop/Views/ClashProxiesView.axaml L30-L38(「规则模式」下拉框:规则、全局、直连);ServiceLib/Handler/ConfigHandler.cs InitRouting L2517-2529、InitBuiltinRouting L2601-2664(V4- 前缀与三套名称、已有规则集就直接返回、默认启用绕过大陆);ServiceLib/ViewModels/StatusBarViewModel.cs L112(BlSystemProxyPacVisible = IsWindows)、L399-423(在路由下拉框里换规则集:设为活动、提示路由设置改变、请求重载);v2rayN.Desktop/Views/StatusBarView.axaml L55-72 与 v2rayN/Views/StatusBarView.xaml L73-95(cmbSystemProxy 四项、cmbRoutings2,用 MaterialDesign 浮动提示)、L173-190(托盘菜单里的路由子菜单 cmbRoutings)与 StatusBarView.xaml.cs L31-34、L61-63(路由下拉框的绑定与显示条件);Avalonia 版 cmbRoutings2 只有 ToolTip.Tip=路由、显示 Remarks(axaml L66-72);v2rayN.Desktop/Views/StatusBarView.axaml.cs L55-58(非 Windows 删去 Pac 模式一项);ServiceLib/Handler/SysProxy/SysProxyHandler.cs L52-60(Pac 只有 Windows 分支);ServiceLib/Manager/PacManager.cs L33-48(pac.txt 的 __PROXY__ 替换);v2rayN.Desktop/Views/MainWindow.axaml L65-67(设置 → 路由设置);ServiceLib/ViewModels/MainWindowViewModel.cs RoutingSettingAsync L588-601(关窗有改动则重载);ServiceLib/ViewModels/RoutingSettingViewModel.cs L170-190(一键导入规则集调用 InitRouting(config, true));v2rayN.Desktop/Views/RoutingSettingWindow.axaml.cs L105-107(双击规则集打开编辑);v2rayN.Desktop/Views/ 下的规则集设置窗口(…RuleSettingWindow.axaml:添加规则、上移至顶、下移至底);ServiceLib/ViewModels/ 下规则集设置的视图模型(…RuleSettingViewModel.cs)RuleEditAsync L126-150(新规则 Insert(0))、SaveRoutingAsync L226-245;v2rayN.Desktop/Views/ 下的规则详情窗口(…RuleDetailsWindow.axaml:Domain、outboundTag、启用开关);ServiceLib/Global.cs L693(OutboundTags:proxy、direct、block);ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L8(代理出站插到第 0 位);ServiceLib/Services/CoreConfig/V2ray/V2rayRoutingService.cs GenRouting L9-64(开 TUN 时照样加入启用的用户规则);ServiceLib/Services/CoreConfig/Singbox/SingboxRoutingService.cs L9(route.final = proxy)、L254-285(照样加入启用的用户规则);ServiceLib/Enums/ESysProxyType.cs(ForcedClear = 0,默认值)、SysProxy/SysProxyHandler.cs L7-50(ForcedClear 在三个平台都清除系统代理)、StatusBarViewModel.cs L227 与 Manager/AppManager.cs L128(启动时、退出时各调用一次);ServiceLib/Global.cs L384-389 与 ConfigHandler.cs L66-70(域名解析策略缺省取第一项 AsIs);ServiceLib/ViewModels/RoutingSettingViewModel.cs L17、L75(路由设置窗口里的域名解析策略);ConfigHandler.cs L2631-2656 与 Manager/AppManager.cs L296-299(一键导入的新规则集 Sort 接在后面,列表按 Sort 排序);ServiceLib/Resx/ResUI.zh-Hans.resx(路由、路由设置、域名解析策略、移除所选规则、一键导入规则集、添加规则、上移至顶、Pac 模式、路由设置改变等界面文字))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Manager/AppManager.cs L38-L49 与 ServiceLib/ViewModels/MainWindowViewModel.cs L724(运行 sing-box 或 mihomo 内核时才显示「当前代理」);v2rayN.Desktop/Views/ClashProxiesView.axaml L31-L40 与 v2rayN/Views/ClashProxiesView.xaml L35-L45(「规则模式」下拉框不再有固定选项);v2rayN.Desktop/Views/ClashProxiesView.axaml.cs L25-L26 与 v2rayN/Views/ClashProxiesView.xaml.cs L27-L28(选项绑定 ClashModes);ServiceLib/ViewModels/ClashProxiesViewModel.cs L35(初始选中 Rule)、L71(ClashModes 缺省为 ERuleMode 的名字)、L147-L150(选中后只通过接口告诉内核,不写设置)、L313-L327(用内核接口 /configs 报的模式列表与当前模式替换);ServiceLib/Enums/ERuleMode.cs(只剩 Rule、Global、Direct);ServiceLib/Manager/ClashApiManager.cs L126-L152(读 mode-list 或 modes、mode))\n- v2rayn-src-3-29:https://github.com/2dust/v2rayN/tree/47dce69aa4520766807a00d35c929651e4744844(v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx L333-340(menuGlobal「开启Http代理,并自动配置系统代理(全局模式)」、menuGlobalPAC「开启PAC,并自动配置系统代理(PAC模式)」))\n- v2rayn-commit-whitelist-no-final:https://github.com/2dust/v2rayN/commit/4430c9bd747a3d21788aaceef6c12fd1bfa56b47(Remove the last rule from the Whitelist:custom_routing_white 删去末尾「最终代理」)\n- v2rayn-commit-remove-ads:https://github.com/2dust/v2rayN/commit/9a096d31fcf9443a2207ab2b047ddb7379c09c3a(Remove ads rules from default routing rules and DNS:三份 custom_routing_* 删去「阻断广告」(geosite:category-ads-all))\n- v2rayng-commit-remove-ads:https://github.com/2dust/v2rayNG/commit/ee703e6c9505d6c1719c8e40d856083fffcd49dd(Remove ads rules from default routing rules:assets/custom_routing_* 删去「阻断广告」)\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/assets/custom_routing_white、custom_routing_black、custom_routing_global;java/com/v2ray/ang/enums/RoutingType.kt(五套预设);handler/SettingsManager.kt initRoutingRulesets L55-77(首次写入第 0 套)、L117-127(导入预设:先保留 locked 规则,再把预设整份接上)、saveRoutingRuleset L148-162(新规则 add(0, …));ui/RoutingSettingActivity.kt importPredefined L99-121(只写入规则、不重启服务);ui/MainActivity.kt L59-66(只有 makeRestartService 被调用过才重启);core/CoreConfigManager.kt L1099-1127(只用启用的规则)、L158(主节点出站在第 0 位);service/CoreVpnService.kt L283(setHttpProxy,源码中无 PAC 实现);res/menu/menu_drawer.xml、menu_routing_setting.xml;res/values-zh-rCN/strings.xml L338-359、L442(路由设置、导入预定义规则集、确认框、锁定开关、预设名))\n- v2rayng-src-2-3-9:https://github.com/2dust/v2rayNG/tree/bd21bbc3f9ccad349e48bad580e4125ff36a1969(V2rayNG/app/src/main/java/com/v2ray/ang/ui/routing/(路由界面搬到新目录);res/values-zh-rCN/strings.xml L381-382(导入预定义规则集、确认框文字未变)、L491-495(预设名未变))\n- xray-core-src-26-3-27:https://github.com/XTLS/Xray-core/tree/d2758a023cd7f4174a5a5fa4ff66e487d4342ba0(app/router/router.go L257-259(规则按顺序逐条匹配,返回第一条命中的);app/proxyman/outbound/outbound.go L109-111(第一个加入的出站成为默认出站);app/dispatcher/default.go L470-492(没有规则命中时记 default route for 并使用默认出站);app/router/router.go L247-274(域名解析策略:先按原始目标逐条匹配;只有 IPIfNonMatch 且一条都没命中时才解析域名、带着 IP 再匹配一遍;AsIs 不解析);infra/conf/router.go L410-411 与 common/strmatcher/matchers.go L30-36(domain: 前缀匹配该域名及其子域名))\n- v2rayn-src-4-0:https://github.com/2dust/v2rayN/tree/c2c9c6a6dbf6da7563fd1ce4865a3c77343057a2(tag 4.0 指向的 commit。同名 Release(2020-12-25)的发布说明写「- Remove PAC」;本 commit 的 v2rayN/v2rayN/Forms/MainForm.zh-Hans.resx L318-331:系统代理菜单只有「不改变系统代理」「自动配置系统代理(全局模式)」「清除系统代理」三项,没有 PAC 项;3.29 里的 v2rayN/v2rayN/HttpProxyHandler/PACServerHandle.cs 在这一版已不存在)\n- v2rayn-src-6-0:https://github.com/2dust/v2rayN/tree/020df117c48f67bc86f8f396895a1bc2170f67ee(tag 6.0 指向的 commit。同名 Release(2023-01-01)的发布说明第 15 条「添加PAC模式, pac.txt 文件在guiConfigs目录…」;本 commit 的 v2rayN/PacLib/PacHandler.cs L52(pac.txt 的 __PROXY__ 替换)、v2rayN/v2rayN/Handler/SysProxyHandle.cs L92-101(Pac 分支)、v2rayN/v2rayN/Resx/ResUI.zh-Hans.resx L538-539(menuSystemProxyPac「Pac模式」))\n- v2rayn-commit-v4-prefix:https://github.com/2dust/v2rayN/commit/24f8d767b11ce22789b0363cd9a4c4f420fe2fbb(Update routing version prefix to V4:InitBuiltinRouting 的 ver 由 V3- 改为 V4-,并把「已有规则集就返回」改成「已有 V4- 开头的规则集才返回」(没有就再追加一套)。按 gh compare,7.16.1 不含、7.16.2(预发布)起包含,第一个正式版是 7.16.4)\n- v2rayn-commit-routing-migration:https://github.com/2dust/v2rayN/commit/3f14c86a04989d7d0194a4c37e082f258eaf9ed0(Trigger routing migration when rules exist:判断改回「已有任何规则集就返回」。按 gh compare,7.24.8 仍是按 V4- 前缀判断,7.24.9 起是这一版)\n- exp-v2rayn-routing-presets-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-v2rayn-routing-presets-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:dc501fa 2026-10-02\n"},"v2rayn-tun-no-internet":{"id":"v2rayn-tun-no-internet","type":"troubleshoot","title":"v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错","aliases":["v2rayN 开 TUN 上不了网","v2rayN 开启 Tun 后无法上网 系统代理可以","v2rayN 启用 Tun 断网","v2rayN 旧版 TUN 保护","v2rayN Legacy TUN Protect","v2rayN xray tun 断网","v2rayN sing-box tun 断网","v2rayN 启用 Tun 以管理员身份重启","v2rayN 以非管理员身份运行","v2rayN macOS 开 TUN 要输 sudo 密码","v2rayN Linux 开 TUN sudo 密码","v2rayN 系统的 sudo 密码 密码错误,请重试","v2rayN 重启后 Tun 自己关了","v2rayN 每次都要重新输密码开 Tun","failed to open geosite.dat","bin/xray/geosite.dat: no such file or directory","v2rayN xray tun geosite.dat 找不到","failed to add system route","v2rayN Linux 禁用 IPv6 开 TUN 起不来","Xray TUN 的 IPv6 全网段 /0 路由加不上","initial rule-set","v2rayN sing-box 规则集 rule-set 拉不到 TUN 起不来","v2rayN TUN ping 0ms 打不开网页","v2rayN 绑定网口 Hyper-V WSL 多网卡 TUN 断网","v2rayN Tun 模式 严格路由"],"primary_topic":"troubleshooting","topics":["troubleshooting","v2rayn"],"intents":[],"applicability":{"client":["v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错\n\n主题:`排错`\n适用:v2rayn / windows/macos/linux / any\n最后验证:2026-09-24\n\nv2rayN 的「启用 Tun」一开反而断网、开关弹回去、要输密码、或者重启后自己关了,先分清是**权限没到位**、**内核没起来**,还是**建起来了但判断方法不对**。以 v2rayN 7.24.9 为准(2026-09-30 起最新正式版是 7.25.4,下面 IPv6 路由那一种在 7.25.4 有变化):\n\n- **开关弹回、重启后自己关了**:Windows 上 TUN 要以管理员身份运行,点开关会先以管理员身份重开 v2rayN,重开后开关通常是关的,要再点一次;macOS、Linux 要输你当前登录账户自己的密码(这个账户须是管理员),密码不保存,每次重启 v2rayN 都要重新打开、重新输。这是设计如此。\n- **「信息」页(主界面下方)里有内核报错行**:路径带 `bin/xray/` 的 `failed to open geosite.dat` 是 7.24.4 之前的旧版问题,升级;路径是 `bin/geosite.dat`、行尾说文件不存在(`no such file or directory`)的是文件真的缺了,从安装包里放回去;Linux 上 `failed to add system route` 后面跟 IPv6 全网段、结尾 `permission denied` 的,是禁用了 IPv6 又在用 Xray TUN,打开「旧版 TUN 保护」改用 sing-box TUN(能不能上网没测,按验证试);`initial rule-set` 是 sing-box 启动时拿不到规则集;有 `match_response` 或 ``Legacy `strategy` `` 的,是 sing-box 被升到了 1.14,见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)。\n- **开关开着、系统代理能用、TUN 下打不开网页**:到「设置 → 参数设置 → Tun 模式设置」把「旧版 TUN 保护」换一边再试——节点走 Xray 内核时,开着用 sing-box TUN、关着用 Xray TUN。新装的 7.24.4 及以上默认开着;从更早的版本升级上来的可能是关着的,先看一眼。\n- **别拿 ping 和延迟数字判断**:TUN 下经代理的 ping 多半是本机自己回复的,0ms 不代表通了。用浏览器打开网页。\n\n## 两种 TUN:「旧版 TUN 保护」决定谁来建\n\nv2rayN 7.24.9 里的 TUN 有两种实现。「旧版 TUN 保护」(英文界面 Legacy TUN Protect)的界面说明是「启用则使用 sing-box TUN ,否则使用 xray TUN」。按源码,开着它、节点又走 Xray 内核时,v2rayN 会另起一个 sing-box 专门建 TUN,再把流量转给 Xray 的本地端口;节点本身是 sing-box 内核时只跑 sing-box 一个,不管这一项开不开都由它建 TUN;用「添加自定义配置」导入、没填前置端口的配置,这一项不起作用。\n\n**默认值要看你是怎么装上的。** 新装的 7.24.4 及以上默认开着。这一项是 7.20.0 加入的,当时默认关;官方提交 a654826 才把默认值改成开,而且只对新写的设置生效,没有改已经保存的设置。所以用 7.20 到 7.23 版时装的、后来升级上来的,没动过这一项的话仍是关着的,也就是在用 Xray TUN。**这对你意味着**:先到「Tun 模式设置」页看一眼它现在开没开,再对照下面几种报错——有的只属于其中一种 TUN。\n\n## 权限:Windows 要管理员,macOS、Linux 要 sudo 密码(v2rayn-tun-no-privilege)\n\n按源码,v2rayN 判断能不能开 TUN:Windows 看当前是不是以管理员身份运行,macOS、Linux 看这次运行里有没有输过一个校验通过的 sudo 密码;启动时配置里 TUN 开着、却没有这份权限,就把 TUN 强制关掉。Windows 主窗口的标题栏会写「以管理员身份运行」或「以非管理员身份运行」。macOS、Linux 上,TUN 模式下 v2rayN 用 sudo 提权运行内核,密码从它这次记住的那份喂进去。**这对你意味着**:「每次都要重新开、重新输密码」不是故障,按上面的步骤来就行。Windows 的界面表现、macOS 与 Linux 的密码框,本条都是按源码写的,没有实际点过。\n\n## 信息栏报错对号\n\n### 路径带 `bin/xray/` 的 `failed to open geosite.dat`(v2rayn-xray-tun-geosite-path)\n\n出在 7.24.4 之前、macOS 或 Linux 上开 TUN、节点走 Xray 内核的时候(那时不管「旧版 TUN 保护」开没开,主内核 Xray 都以 sudo 启动):提权启动内核时没把数据文件的位置带过去,Xray 去 `bin/xray/` 下找 geosite.dat,而文件在上一级 `bin/`。官方提交 223642d 修掉了它,最早的正式版是 7.24.4。**这对你意味着**:升级就行,7.24.4 及以上不用再把 geosite.dat 复制到 `bin/xray/`。\n\n### 路径是 `bin/geosite.dat`、行尾说文件不存在的 `failed to open geosite.dat`(v2rayn-geodata-missing)\n\n中间没有 `xray` 的不是上面那一种:7.24.9 让 Xray 到 `bin/` 下找数据文件,行尾是 `no such file or directory`(Windows 上是系统语言的「找不到指定的文件」)时,说明文件真的不在(被删、被杀毒软件隔离、或者更新没下完);行尾是别的原因的不是这一种,按下面「没有列在这里的报错」对号。文件缺了时 Xray 起不来(实测找不到 geosite.dat 就退出),关掉 TUN 用系统代理也一样,没法先经 v2rayN 上网再更新。**这对你意味着**:从同一个版本的安装包里把 `bin/geosite.dat` 放回去(7.24.9 的安装包带着它),或者重新安装 dmg、deb、rpm 这类安装包;能另外上网的,也可以在「帮助 → 检查更新」里只勾 GeoFiles 更新,按源码会重新下载 `bin/` 下的 geosite.dat 和 geoip.dat。这种情况本条没有在 v2rayN 里复现过。\n\n### Linux 上的 `failed to add system route` 加 IPv6 全网段(v2rayn-xray-tun-ipv6-route)\n\nv2rayN 正式版 7.24.8、7.24.9(官方提交 e101b1d,最早进的是预发布版 7.24.7)生成 Xray TUN 配置时,不管系统有没有 IPv6,都把 IPv4、IPv6 两条默认路由写进去。实测 Xray 26.7.28 的 Linux 版:新建网卡禁用了 IPv6 时,网卡建出来后加这条 IPv6 路由失败,报 `Failed to start: app/proxyman/inbound: failed to start proxy > proxy/tun: failed to add system route`,接着是 IPv6 全网段的写法(两个冒号加 `/0`),最后是 `> permission denied`,然后退出;去掉这条路由、或者不禁用 IPv6,都能正常启动。这里的 permission denied 不是权限不够,以 root 运行也一样。实测是在安卓模拟器的 Linux 内核里直接跑 Xray,没有运行 v2rayN,也不是桌面 Linux。macOS 上的 Xray TUN 加路由失败时也打 `failed to add system route` 这个开头,那种情况本条没有覆盖。\n\n官方之后的提交 64aad80 改为没有全局 IPv6 地址时不写这条路由,最早进的是 7.25.0 预发布版,正式版 7.25.4 也包含。按源码它看的是主机上所有已启用的网卡:上面实测那种只禁用新建网卡 IPv6 的做法,原有网卡仍有全局 IPv6 地址时,7.25.4 照样会写这条路由(按源码判断,本条没有测)。它的说明还写了另一种后果:系统开着 IPv6、却没有公网 IPv6 地址时,这条路由能加上,但 IPv6 目标会「看起来能连」而被选中,连接到节点那一步才断,表现就是开着 Xray TUN、部分网页打不开。这一种本条没有实测。**这对你意味着**:这条 IPv6 路由只在「旧版 TUN 保护」关着(用 Xray TUN)时才会写进配置;打开「旧版 TUN 保护」就不再用这份配置(按源码),换成 sing-box TUN 后能不能正常上网本条没有测,改完按下面的验证试一次。\n\n### `initial rule-set`(v2rayn-singbox-ruleset-unreachable)\n\nsing-box 在启动时下载某个规则集失败,直接退出。实测 sing-box 1.13.19(配置不含 TUN 入站):规则集没有本地文件、也没有缓存时,下载不到就起不来;有缓存或本地文件时照常启动。v2rayN 7.24.9 安装包自带的规则集都是本地文件,不用下载,所以这一种多半出在路由规则或 DNS 设置里用到、安装包没带的规则集上,包括你在路由里指定的自定义规则集文件——它不会被 GeoFiles 更新下载。**这对你意味着**:用 7.24.9 的,更新规则集时只勾 GeoFiles,别顺手把 sing-box 升到 1.14;7.25.4 反过来要求 sing-box 1.14,按源码它检查更新时只装 1.14.x 里的版本。\n\n没有列在这里的报错,按 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed) 对号:TUN 模式下起不来的内核,同样在信息栏里报它自己的错。\n\n## 建起来了,但「没网」可能是看错了(v2rayn-tun-ping-misleading)\n\n开着 TUN 时,经代理的那些地址,ping 的回复多半是本机自己给的。Xray 官方的 TUN 说明写明:ICMP Echo 回复由 TUN 协议栈在本地生成,不能说明远端真的可达。v2rayN 官方 wiki 的「Tun 模式设置」说得更具体:Xray 核心的 ICMP 一律本地直接回复,通常 time<1ms;sing-box 的 ICMP 路由策略默认 rule,按路由规则分流,匹配到代理的只有 WireGuard 协议能转发 ICMP,其他协议退回本地回复,未匹配的直连([v2rayN 官方 wiki「部分界面说明」](https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/1e98189ad592b13a3a13bd4e5e7e757bee952a65),链接指向这一页最近一次改动 1e98189 那一版)。实测 Xray TUN 下 ping 一个根本不可路由的地址,3 发 3 收、不到 1 毫秒,Xray 日志里每一个都记为本地回复。v2rayN 里的延迟数字也一样:节点列表的真连接测试另起临时内核直连节点,状态栏的「当前延迟」经正在运行的内核的本地端口测,两种都不经过 TUN,见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)。**这对你意味着**:要判断代理通不通,ping 走代理的目标、看延迟数字都没有意义,以浏览器能不能打开网页为准。\n\n## 开关开着、系统代理能用、TUN 下不通(v2rayn-tun-impl-not-fit)\n\n权限到位、信息栏也没有报错,只是 TUN 下打不开网页,而关掉 TUN 用系统代理就能打开:说明节点没问题,问题在 TUN 这一层。官方 wiki 的常见问题对 TUN 只说「TUN模式问题很复杂,直接看 issue 和 discussion」,没有给出排查步骤([v2rayN 官方 wiki 常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe))。下面「修复」里的做法中,换一种 TUN、Windows 上关「严格路由」是作者给的排除法;「绑定网口」有官方说明——界面写它「用于多网口环境」,官方 wiki 写它还能为双核心 TUN 提供流量保护——只是它能不能解决你这种情形是作者的推断。关掉 TUN 用系统代理也打不开的,是节点或订阅的问题,先按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 分清是本机还是服务方,查通后回来重新打开「启用 Tun」再试;开关和模式拿不准的,回 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 核对选节点和打开系统代理那两步。\n\n## 几条流传的说法\n\n- **「开 TUN 会把系统代理关掉」「TUN 就是全局」**:按源码,7.24.9 里 TUN 开关和系统代理没有联动,TUN 模式下本地代理端口一般照常在听;只有退出 v2rayN(包括 Windows 上以管理员身份重开那一次)时,才按设置清除系统代理,下次启动再设上。TUN 下路由规则照样生效,不等于全局,见 `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets) 里「开了 TUN 就是全局」那一段。\n- **「macOS、Linux 输过一次密码就行了」**:不对,见上面权限一节;界面说明自己写着每次重启后都要再输。\n- **「打开旧版 TUN 保护就不会报 geosite.dat」**:对 7.24.4 之前的版本不成立,见上面 geosite 一节。\n- **「开 TUN 后 v2rayN 会改系统 DNS」**:7.24.9 源码里没有找到改系统 DNS 的代码,Xray 官方说明也写它在 Linux、macOS 上不改系统 DNS。sing-box TUN 下 DNS 具体怎么走,本条没有测,不下结论。\n\n## 这些结论是怎么核对的\n\n按 v2rayN 7.24.9 源码、官方 wiki 与官方提交、Xray 26.7.28 与 sing-box 1.13.19 的源码和文档核对;实测只跑了内核:在 macOS 命令行跑了 v2rayN 7.24.9 安装包里的 Xray 与 sing-box,在安卓模拟器里以 root 跑了 Xray 的 Linux 版 TUN。\n\n- **没有运行 v2rayN,也没有在任何桌面系统上开过 TUN**;唯一建出来的 TUN 是在安卓模拟器里以 root 直接跑 Xray。开 TUN 要管理员密码、会改本机路由,超出了本次的实测范围。界面表现、菜单入口、Windows 的全部内容都按源码。\n- 7.25.x 的 TUN 相关代码有变化(例如上面的 IPv6 路由),只按 7.25.4 的源码核对了 IPv6 路由与 sing-box 版本上限,没有测。\n\n## 取证\n- **v2rayn-tun-switch-holds**:主界面底部状态栏的「启用 Tun」打开后,能保持开着吗?(Windows:点开后 v2rayN 会以管理员身份重新打开,重新打开后要看的是**再点一次**之后开关还在不在;macOS、Linux:会弹出「系统的 sudo 密码」框,输入并确认后开关还开着算能。开关弹回去、密码框点了取消、或者重启 v2rayN 后开关又是关的,都算不能)\n pass → v2rayn-tun-core-error-line;fail → v2rayn-tun-no-privilege;unknown → v2rayn-tun-no-privilege\n- **v2rayn-tun-core-error-line**:打开 TUN 之后,主界面下方「信息」页里有内核自己打的报错行吗?(通常带 `FATAL`,或以 `Failed to start` 开头,附近常有一句「运行 Core 失败,请查看提示信息」。找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))\n pass → v2rayn-tun-line-geosite;fail → v2rayn-tun-judged-by-browser;unknown → v2rayn-tun-judged-by-browser\n- **v2rayn-tun-line-geosite**:报错行里有 `failed to open geosite.dat`,而且后面的路径是 `bin/xray/geosite.dat`(`bin` 和 `geosite.dat` 之间多了一级 `xray`)吗?路径是 `bin/geosite.dat`(中间没有 `xray`)的,选「否」。\n pass → v2rayn-xray-tun-geosite-path;fail → v2rayn-tun-line-geosite-bin;unknown → v2rayn-tun-line-geosite-bin\n- **v2rayn-tun-line-geosite-bin**:报错行里有 `failed to open geosite.dat`,后面的路径是 `bin/geosite.dat`(中间没有 `xray`;Windows 上路径用反斜杠,是 `bin\\geosite.dat`),而且行尾说的是文件不存在吗?(macOS、Linux 上是 `no such file or directory`;Windows 上是系统语言的「找不到指定的文件」,这一种本条没有在 Windows 上看过。行尾是别的原因、或者报错里根本没有 geosite.dat 的,选「否」)\n pass → v2rayn-geodata-missing;fail → v2rayn-tun-line-ipv6-route;unknown → v2rayn-tun-line-ipv6-route\n- **v2rayn-tun-line-ipv6-route**:你用的是 Linux,报错行里有 `failed to add system route`,紧跟在它后面的是 IPv6 全网段(两个冒号再加 `/0`),而且这一行以 `> permission denied` 结尾吗?(macOS 上的 Xray TUN 也会打 `failed to add system route` 这个开头;后面跟的是别的网段、或者结尾是别的原因,选「否」)\n pass → v2rayn-xray-tun-ipv6-route;fail → v2rayn-tun-line-ruleset;unknown → v2rayn-tun-line-ruleset\n- **v2rayn-tun-line-ruleset**:报错行里有 `initial rule-set` 吗?(完整的一般是 `start service: initialize rule-set[…]: initial rule-set: <规则集名>: Get \"…\"` 加一段连接失败的原因)\n pass → v2rayn-singbox-ruleset-unreachable;fail → v2rayn-line-match-response(见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed));unknown → v2rayn-line-match-response(见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed))\n- **v2rayn-tun-judged-by-browser**:你说「没网」,是用浏览器打开网页(或者 curl 取一个网址)试出来的吗?问题只出在虚拟机或类似程序上、在那个程序里确认过打不开的,也算是。只看了 ping、或者只看了 v2rayN 里的延迟数字,算不是。\n pass → v2rayn-tun-system-proxy-works;fail → v2rayn-tun-ping-misleading;unknown → v2rayn-tun-ping-misleading\n- **v2rayn-tun-system-proxy-works**:先记下状态栏的系统代理现在选的是哪一项(后面要改回这一项),再关掉「启用 Tun」,把系统代理设成「自动配置系统代理」,还用同一个节点:这时浏览器能打开平时要经代理才能打开的网页吗?(打不开的会转到 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 先把节点这一侧查通——那一条第一问问测速,没测过的先对节点列表测一次;查通后回到这里重新打开「启用 Tun」再试)\n pass → v2rayn-tun-impl-not-fit;fail → all-nodes-failing(见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout));unknown → all-nodes-failing(见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout))\n\n## 原因\n- **v2rayn-tun-no-privilege**(可能性 high)→ 修复 grant-v2rayn-tun-privilege\n- **v2rayn-xray-tun-geosite-path**(可能性 low)→ 修复 upgrade-past-geosite-fix\n- **v2rayn-geodata-missing**(可能性 low)→ 修复 put-geodata-back\n- **v2rayn-xray-tun-ipv6-route**(可能性 low)→ 修复 avoid-xray-tun-ipv6-route\n- **v2rayn-singbox-ruleset-unreachable**(可能性 low)→ 修复 make-ruleset-local\n- **v2rayn-tun-ping-misleading**(可能性 medium)→ 修复 test-tun-with-browser\n- **v2rayn-tun-impl-not-fit**(可能性 medium)→ 修复 switch-v2rayn-tun-impl\n\n## 修复\n### grant-v2rayn-tun-privilege\n1. **Windows**:先看主窗口标题栏,版本号后面写的是「以管理员身份运行」还是「以非管理员身份运行」。不是管理员时点「启用 Tun」,按源码 v2rayN 会把保存的设置改回关闭,再请求以管理员身份重新打开自己(Windows 会弹出确认),然后退出当前这个。所以重新打开后开关通常是关的,**要再点一次**才真正开启。也可以先点菜单「设置 → 以管理员身份重启」,重开后再点「启用 Tun」。在 Windows 的确认里选了「否」,按源码原来的 v2rayN 也已经退出,要自己再打开。按源码,每次用普通方式(不是管理员)打开 v2rayN,TUN 都会被关掉。想开机就能用 TUN:「设置 → 参数设置」的「v2rayN 设置」页有「开机启动」,界面提示是「以管理员权限设置此项,在启动后获得管理员权限」。长期以管理员身份运行之前,先按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 确认安装包是官方原版(作者建议)。\n2. **macOS、Linux**:点「启用 Tun」会弹出「系统的 sudo 密码」框,填的是**你现在登录这台电脑、正在运行 v2rayN 的这个账户自己的登录密码**。这个账户本身要有管理员权限(macOS 是管理员账户,Linux 要在 sudoers 里);填别的管理员账户的密码不行。按源码,v2rayN 以当前账户在后台跑一次 sudo 命令校验,不对就提示「密码错误,请重试。」、框不关;点取消,开关放回关闭。输密码之前,先按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 确认安装包是官方原版(作者建议)。界面上的说明写明:**密码不会存储,每次重启后都需要再次输入**;按源码,启动时发现本次还没输过密码,就会把 TUN 强制关掉。所以每次重新打开 v2rayN 后 TUN 都是关的,这是设计如此,不是故障。说明里还写着:因为校验出错导致无法正常运行时,重启本应用。\n验证:v2rayn-tun-site-opens\n\n### upgrade-past-geosite-fix\n1. 看主窗口标题栏里的版本号。低于 7.24.4 的,升级到当前正式版(2026-09-30 起是 7.25.4,本条按 7.24.9 写):按 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 从官方 Release 页下载整个安装包(用 zip 免安装版的,设置和订阅就存在原文件夹的 `guiConfigs` 里:先把它复制一份到别处,再解压覆盖到原来的文件夹,不要先删掉旧文件夹,作者建议),**用 7.24.9 的,不要用「帮助 → 检查更新」顺带升级内核**(原因见下面规则集那一种的修复);**升到 7.25.4 的反过来要用 sing-box 1.14**:v2rayN 自己升级不替换 `bin` 里已有的内核,原来是 1.13 的还在,要按 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed) 在「帮助 → 检查更新」里只勾 sing-box、装回 1.14 再开 TUN(按源码,本条没有测)。这个报错出在 macOS、Linux 上开 TUN、节点走 Xray 内核的时候:旧版以 sudo 提权启动内核时没把「数据文件在哪」这个环境变量带过去,Xray 就到它自己所在的 `bin/xray/` 下找 geosite.dat,而数据文件在上一级 `bin/` 里。官方提交 223642d 改为提权时显式传这个变量;按 GitHub 的对比,最早含这个修复的是 7.24.0 预发布版,最早的正式版是 7.24.4。实测包内 Xray 26.7.28:清空环境变量时报的正是这一行,带上这个变量就通过(机制复现,没有在 v2rayN 里开 TUN)。已经是 7.24.4 及以上、路径却仍是 `bin/xray/` 的,不是本条已知的情况。\n2. 暂时不能升级的:网上流传的临时办法是把 `bin/` 下的 geoip.dat、geosite.dat 复制一份到 `bin/xray/` 里。实测把 geosite.dat 放到 Xray 旁边,同样的配置就能通过,这解释了它为什么管用;7.24.4 及以上不需要这样做。macOS 上 `bin` 可能就在 v2rayN 的应用包里面,往里放文件等于改动应用包,本条没有测它对启动的影响。**打开「旧版 TUN 保护」躲不开这个报错**:按源码,7.24.4 之前只要开着 TUN,主内核 Xray 本身也以 sudo 启动,不管这一项开没开;官方提交 ee7e212 才改成只提权建 TUN 的那个内核。\n验证:v2rayn-tun-site-opens\n\n### put-geodata-back\n1. 7.24.9 让 Xray 到 `bin/` 下找 geosite.dat(按源码),这一行的行尾说文件不存在,说明这个文件真的不在:被删、被杀毒软件隔离、或者更新没下完。路由规则用到 geosite 时,文件缺了 Xray 就起不来(实测找不到 geosite.dat 时直接退出),关掉 TUN 用系统代理也一样,所以没法先经 v2rayN 上网再更新。**从同一个版本的 v2rayN 安装包里取出 `bin/geosite.dat`,放回菜单「设置 → 打开存储所在的位置」打开的文件夹下的 `bin` 里**(实测 7.24.9 的 macOS arm64 zip 包里带着它);dmg、deb、rpm 这类安装包也可以直接重新安装。能用别的办法上网的,也可以在「帮助 → 检查更新」里**只勾 GeoFiles** 那一项更新,其余的勾都取消(原因见下面规则集那一种);按源码它会重新下载 `bin/` 下的 geosite.dat 和 geoip.dat。是被杀毒软件隔离的,先按 `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download) 核对安装包。这种情况本条没有在 v2rayN 里复现过。\n验证:v2rayn-tun-site-opens\n\n### avoid-xray-tun-ipv6-route\n1. **最省事**:菜单「设置 → 参数设置」的「Tun 模式设置」页,打开「旧版 TUN 保护」,确定后把「启用 Tun」关掉再打开。按源码,打开后 TUN 由 sing-box 建,不再生成这份写死了 IPv6 默认路由的 Xray TUN 配置。sing-box TUN 在禁用 IPv6 的系统上表现如何,本条没有测。\n2. **或者在 Linux 上重新启用 IPv6**。实测同一份 Xray TUN 配置,只要新建的网卡没有禁用 IPv6,就能正常启动,IPv4、IPv6 两条默认路由都指向 TUN 网卡。怎么启用取决于你当初是怎么禁用的(系统设置、sysctl 还是内核启动参数),这一步本条不给具体命令;实测只覆盖了 `net.ipv6.conf.default.disable_ipv6` 这一种禁用方式。\n3. 官方在 7.24.9 发布之后合入了提交 64aad80(#10080):主机没有全局 IPv6 地址时不再写 IPv6 默认路由。最早进的是 7.25.0 预发布版,2026-09-30 的正式版 7.25.4 也包含(按源码)。按源码它看的是主机上所有已启用的网卡,只禁用新建网卡的 IPv6、原有网卡仍有全局 IPv6 地址时照样会写;7.25.x 本条没有测。\n验证:v2rayn-tun-site-opens\n\n### make-ruleset-local\n1. 这一行是 sing-box 在启动时下载某个规则集失败、直接退出了。按源码,v2rayN 生成 sing-box 配置时,规则集在 `bin/srss/` 下有本地文件就用本地的(7.24.9 安装包自带 15 个,默认路由和 TUN 的 DNS 用到的都在里面),没有才改成从网上下载;你在路由设置里指定了自定义规则集文件的,里面写的规则集优先。实测 sing-box 1.13.19 下载不到、又没有缓存时起不来,有缓存或本地文件时照常启动(实测的配置不含 TUN 入站)。所以多半是路由规则或 DNS 设置里用到了安装包没带的规则集。**作者建议**:先关掉 TUN、用系统代理保持能上网(改之前记下状态栏的系统代理原来选的是哪一项),在「帮助 → 检查更新」里**只勾 GeoFiles 那一项**,把 v2rayN、Xray、sing-box、mihomo 的勾都取消,再点更新——按源码,这个窗口第一次打开时每一项都是勾上的,而 7.24.9 经检查更新装上的 sing-box 是 GitHub 上最新的 1.14,7.24.9 生成的 DNS 规则会被它拒绝(见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed))。按源码,GeoFiles 更新会把路由规则和 DNS 设置里用到的规则集都下载到 `bin/srss/`,之后启动就用本地文件;自定义规则集文件里写的不在其中。再打开 TUN,系统代理改回原来那一项。或者去掉那条引用它的规则(去掉之前先记下它的内容,见下一步)。\n2. **关掉 TUN 后内核也起不来的**:节点本身走 sing-box 内核时(比如 TUIC、AnyTLS 节点,或者 Core 类型选了 sing_box),按源码不管开不开 TUN,生成的配置都带着同一份规则集,所以关掉 TUN 也一样报这一行,没法用这个节点先上网再更新。**先保留那条规则**:临时换一个走 Xray 内核的节点(或者这个节点能改用 Xray 的,临时改用 Xray),用系统代理上网(系统代理的原值照上一步记下),再按上一步只勾 GeoFiles 更新,然后换回原来的节点(改过 Core 类型的改回原来的类型),系统代理也改回原来那一项(作者建议)。**不要先删规则、更新、再加回来**:按源码,GeoFiles 只下载当前路由规则和 DNS 设置用到的规则集,规则删掉时更新下不到它,加回来照样报这一行。实在没有能走 Xray 的节点,只能先在「设置 → 路由设置」里去掉那条规则:去掉之前先把这条规则的内容(域名、IP、规则集名、去向)抄下来或截图;以后有了能走 Xray 的节点,先按原样加回这条规则,再按上面的办法只勾 GeoFiles 更新(作者建议)。规则集写在你指定的自定义规则集文件里的,GeoFiles 不会下载它,要在那份文件里改成能下载到的地址或本地文件,改之前先把原文件复制一份(作者建议)。\n验证:v2rayn-tun-site-opens\n\n### test-tun-with-browser\n1. 开着 TUN 时,**要经代理的那些地址,ping 的回复多半是本机自己给的**,不能说明代理通了,也不能说明不通。v2rayN 官方 wiki 写明:用 Xray TUN 时 ICMP 一律由本地直接回复,通常 time<1ms;用 sing-box TUN、ICMP 路由策略为默认的 rule 时,按路由规则分流,匹配到代理的只有 WireGuard 节点能真的转发 ICMP,其他协议退回本地回复,未匹配的直连(https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/1e98189ad592b13a3a13bd4e5e7e757bee952a65)。按源码,rule 模式下 v2rayN 不另加 ICMP 规则,所以 sing-box TUN 下 ping 走直连的地址(比如默认「绕过大陆」下的国内网站)是真发出去、真收到回复。实测 Xray TUN 下 ping 一个根本不可路由的地址也有回复,Xray 日志里记的是本地回复。v2rayN 里的延迟数字同样说明不了 TUN:节点列表的「测试真连接延迟」另起一个临时内核直连节点,底部状态栏的「当前延迟」是经正在运行的内核的本地端口测的(见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)),两种都不经过 TUN(见 `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning))。**要判断代理通不通,改用浏览器打开网页、或者用 curl 取一个网址**,做法见下面的验证。\n验证:v2rayn-tun-site-opens\n\n### switch-v2rayn-tun-impl\n1. **作者建议:先把「旧版 TUN 保护」换一边再试。** 菜单「设置 → 参数设置」的「Tun 模式设置」页,这一项的界面说明是「启用则使用 sing-box TUN ,否则使用 xray TUN」。先记下它现在是开还是关,现在开着就关掉、关着就打开,确定后把「启用 Tun」关掉再打开,按下面的验证再试一次。官方没有说哪一种更适合哪种网络,这一步是排除法。按源码有两类人换这一项没有区别:节点本身用 sing-box 内核的(比如 TUIC、AnyTLS 节点),不管开不开都由 sing-box 建 TUN;用「添加自定义配置」导入、又没填前置端口的,v2rayN 不另起前置,这一项不起作用。\n2. **Windows 上有多张网卡(比如装了 Hyper-V、WSL、虚拟机或组网软件)的**:可以在「参数设置」的「Core: 基础设置」页「绑定网口」里填你实际上网的那张网卡的名字(在 Windows 的网络连接里看到的名称,比如「以太网」「WLAN」),填之前记下这一栏原来的内容,确定后重开 TUN,按下面的验证试一次。这一项的界面说明是「用于多网口环境,填写要绑定的网口名称,仅生效于 Windows 系统或 TUN 模式」;官方 wiki 写它「用于多网口环境,指定流量使用的网络接口」,「同时亦可以提供双核心 TUN 模式下的流量保护」(https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/1e98189ad592b13a3a13bd4e5e7e757bee952a65)。按源码,填了之后:Xray 的代理出站绑定这张网卡,Xray TUN 用它当出口网卡;sing-box 的代理出站也绑定它,sing-box TUN 自己仍自动检测出口网卡。**会被清空的情形**:节点走 Xray、「旧版 TUN 保护」开着(这时另起 sing-box 前置建 TUN,即官方说的双核心 TUN)而「严格路由」也开着(默认开)时,主内核这一项被清空;填的名字不存在时,v2rayN 提示「绑定网口 属性无效,请检查」并忽略它。它能不能解决 Hyper-V、WSL 这类具体情形,是作者的推断,没有实测。换了网络(有线换无线)要改回来或清空。\n3. **Windows 上**用 sing-box TUN 时(「旧版 TUN 保护」开着,或节点本身用 sing-box 内核,见上面第一步),同一页的「严格路由」默认开启。sing-box 官方文档写明,它在 Windows 上会让不支持的网络不可达、防止 DNS 泄露,但可能让 VirtualBox 这类程序在某些情况下工作不正常。先记下它现在是开还是关。原来开着、问题又只出在虚拟机或类似程序上的,才试着关掉它(作者建议),然后在那个程序里复测,不要只看浏览器。关掉后防 DNS 泄露那一项也就没了:只有关掉才好的,知道这个代价后自己决定留不留;没用或拿不准的,按记下的原值改回。\n验证:v2rayn-tun-site-opens-after-switch\n\n## 验证\n- **v2rayn-tun-site-opens**(人):先记下状态栏的系统代理现在选的是哪一项,再把它改成「清除系统代理」(免得浏览器走的其实是系统代理),保持「启用 Tun」开着,用浏览器打开一个平时要经代理才能打开的网页;会用终端的,也可以不带任何代理参数用 curl 取一个这样的网址。不要用 ping 判断。试完不管结果如何,都把系统代理改回你记下的那一项。\n 预期:「启用 Tun」保持开着,网页能打开(curl 拿到了网页内容或正常的状态码)。信息栏里没有新的 `FATAL`、`Failed to start` 行。开关还是弹回的:Windows 看标题栏是不是「以管理员身份运行」、重开后有没有再点一次;macOS、Linux 看是不是在密码框里点了取消(密码不对时框不会关);都对仍开不住,带着系统、v2rayN 版本和信息栏那几行求助(遮蔽同下)。打不开的,回到信息栏报错那一问重新对号;照着做了、报的还是同一行,带着信息栏那几行求助(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 的清单遮掉节点地址、端口、UUID、口令,启动内核时打的那行节点摘要里的地址也要遮,不带订阅链接),不要反复做同一步。\n 通过 → resolved;失败 → v2rayn-tun-core-error-line;无法判断 → escalate\n- **v2rayn-tun-site-opens-after-switch**(人):上面三项一次只改一项、改一项就这样验一次(改了几项再一起验,通了也分不清是哪一项起的作用):把状态栏的系统代理改成「清除系统代理」,保持「启用 Tun」开着,用浏览器打开一个平时要经代理才能打开的网页(问题只出在虚拟机或类似程序上的,改在那个程序里试)。不要用 ping 判断。试完不管结果如何,都把系统代理改回你在「关掉 TUN、改用系统代理」那一问之前记下的那一项。\n 预期:「启用 Tun」保持开着,网页能打开(问题只出在虚拟机或类似程序上的,在那个程序里能用)。这一项没通,先把它改回记下的原值,再试下一项;关掉「严格路由」才通的,按上面那一步自己决定留不留。适用的几项都试过仍然打不开的(「绑定网口」「严格路由」只适用于 Windows),本条的排除法已经用完:带着 v2rayN 版本、系统、两种 TUN 各自的结果和信息栏里的内容去求助(贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 的清单遮掉节点地址、端口、口令,不贴订阅链接)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `开机自启与静默启动:在哪打开、开机不弹窗口,开机后系统代理和虚拟网卡(TUN)是否恢复`(见 launch-at-startup)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `节点延迟 -1、Timeout、Error 是什么意思(Clash Verge Rev、v2rayN)`(见 latency-test-meaning)\n\n## 来源\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(ServiceLib/ViewModels/StatusBarViewModel.cs L115-L122(启动时没有权限就把 TUN 强制关掉)、L438-L486(DoEnableTun:Windows 非管理员先把保存的设置改回关闭再 RebootAsAdmin;macOS/Linux 要密码;AllowEnableTun);Manager/AppManager.cs L122-L159(RebootAsAdmin 不看新实例是否启动都执行 AppExitAsync,退出时清除系统代理);Common/ProcUtils.cs L49-L68(Verb=runas);v2rayN.Desktop/Views/SudoPasswordInputView.axaml.cs L22-L79(以当前用户运行 sudo -S echo 校验,失败提示「密码错误,请重试。」)、StatusBarView.axaml.cs L75-L89(取消时开关复位);Manager/CoreManager.cs L298-L319(非 Windows 的 TUN 以 sudo 启动 sing-box/mihomo/Xray);Manager/CoreAdminManager.cs L32-L49(exec sudo -S -- env …);Manager/CoreInfoManager.cs L166-L170(XRAY_LOCATION_ASSET = bin 目录);Common/Utils.cs L1084-L1092、L1141-L1160(bin 在程序所在目录下);Handler/ConfigHandler.cs L90-L96(只在没有 TUN 设置时写默认值)、L850-L853、L946-L949(TUIC、AnyTLS 节点固定 sing-box)、L1558-L1590(GetPreSocksItem:开旧版 TUN 保护、节点不是自定义配置也不是 sing-box 内核时另起 sing-box 前置;自定义配置只在填了前置端口时起前置);https://github.com/2dust/v2rayN/blob/521230c40d5c180bc0727cf4003907edfae5a3e0/v2rayN/ServiceLib/Handler/Builder/CoreConfigContextBuilder.cs L126-L134(绑定网口无效、或既非 TUN 也非 Windows 时警告并清空)、L157-L181(另起前置时主内核不再处理 TUN;此时开着严格路由就清空绑定网口);Models/Configs/ConfigItems.cs L141-L154(AutoRoute、StrictRoute、EnableLegacyProtect 默认 true);Services/CoreConfig/V2ray/V2rayInboundService.cs L16(TUN 下照常生成本地 mixed 入站)、L56-L84(Xray TUN:autoSystemRoutingTable 固定写 IPv4、IPv6 两个全网段;绑定网口写入 autoOutboundsInterface);https://github.com/2dust/v2rayN/blob/521230c40d5c180bc0727cf4003907edfae5a3e0/v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayConfigTemplateService.cs L225-L256(绑定网口写入 Xray 出站的 sockopt.interface);https://github.com/2dust/v2rayN/blob/521230c40d5c180bc0727cf4003907edfae5a3e0/v2rayN/ServiceLib/Services/CoreConfig/Singbox/SingboxConfigTemplateService.cs L146-L192(绑定网口写入 sing-box 代理出站的 bind_interface,跳过 direct/block/dns/selector/urltest、带 detour 与回环地址的出站);https://github.com/2dust/v2rayN/blob/521230c40d5c180bc0727cf4003907edfae5a3e0/v2rayN/ServiceLib/Services/CoreConfig/Singbox/CoreConfigSingboxService.cs L45-L58(不论是否开 TUN 都转换规则集)、L171;Services/CoreConfig/Singbox/SingboxRoutingService.cs L36-L38(auto_detect_interface = true)、L85-L112(ICMP 路由策略为 rule 时不加 ICMP 规则);Services/CoreConfig/Singbox/SingboxRulesetService.cs L59-L73(路由里的自定义规则集文件优先)、L77-L117(bin/srss 有本地文件用 local,否则 remote,download_detour 为 proxy);Services/UpdateService.cs L140-L150、L370-L390、L416-L457(更新 GeoFiles 时下载 bin 下的 geosite.dat、geoip.dat,并把路由与 DNS 用到的规则集下载到 bin/srss);ViewModels/CheckUpdateViewModel.cs L58-L85(没保存过选择时每一项默认勾上);Models/Dto/CheckUpdateModel.cs L11;v2rayN/Views/MainWindow.xaml L145、L206-L209(Windows 版「设置」菜单里的「以管理员身份重启」)、v2rayN.Desktop/Views/MainWindow.axaml.cs L136-L148(标题栏版本号与管理员状态,后者只在 Windows);OptionSettingWindow.axaml L439-L451(绑定网口在 Core: 基础设置页)、L958 起(Tun 模式设置页);v2rayN/Views/OptionSettingWindow.xaml L662、L705-L720(v2rayN 设置页的开机启动);ServiceLib/Resx/ResUI.zh-Hans.resx L783-L787、L898、L904、L945-L946、L984-L985、L1347-L1351、L1410-L1411、L1725-L1726、L1749-L1753、L1825-L1826;ResUI.resx 同名键(英文界面原文))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayInboundService.cs L69-L77(Xray TUN 的 autoSystemRoutingTable:主机有全局 IPv6 地址时写 IPv4、IPv6 两条默认路由,否则只写 IPv4 那条)、L102-L104(排除地址时同样按它决定是否带 IPv6);ServiceLib/Common/Utils.cs L852-L884(HasGlobalIPv6Address:所有已启用、非回环网卡中有全局单播 IPv6 地址即为真,出错时也为真);ServiceLib/Handler/Builder/ 下构建配置上下文的文件(…ContextBuilder.cs)L52(生成配置时取一次 HasGlobalIPv6Address);ServiceLib/Manager/CoreInfoManager.cs L232(sing-box 的版本上限 1.14.x);ServiceLib/Services/UpdateService.cs L172-L206(检查更新时最新版高于上限就改取不高于上限的最高版本);ServiceLib/Services/CoreConfig/Singbox/SingboxDnsService.cs L455-L477(生成 evaluate 与 match_response 的 DNS 规则,sing-box 1.14 才有的写法);AmazTool/UpgradeApp.cs L76-L80(v2rayN 自身升级时跳过 bin 下已有的文件))\n- v2rayn-commit-223642d:https://github.com/2dust/v2rayN/commit/223642dd67e976dcea88eb7a268ffd3d15d875e6(2026-07-16,提交说明引用 #9765;改 ServiceLib/Manager/CoreAdminManager.cs:提权脚本由 exec sudo -S -- <命令> 改为带 env 传内核环境变量。GitHub compare:7.23.4 不含,7.24.0(预发布)起含,第一个含它的正式版是 7.24.4)\n- v2rayn-commit-ee7e212:https://github.com/2dust/v2rayN/commit/ee7e21268a866b50ffb05426cfa3416e1702e9c3(2026-07-26,提交说明「Fix TUN core elevation: decide sudo from the config context snapshot (#9830)」:此前 RunProcess 按全局的 TUN 开关决定是否提权;改后「With legacy TUN protect, the sing-box pre-core hosting TUN is elevated and the main core no longer runs as root needlessly」。按 git tag --contains,最早含它的是 7.24.3(预发布),第一个正式版是 7.24.4;7.23.4 的 CoreManager.cs L292-L312 仍按全局开关给 sing-box、mihomo、Xray 提权)\n- v2rayn-commit-a654826:https://github.com/2dust/v2rayN/commit/a6548262314523bf978ad1bc0d8c2cb58ac2209e(2026-07-26,提交说明「Enable legacy TUN protect by default」:ConfigHandler.cs 与 ConfigItems.cs 里 EnableLegacyProtect 的默认值由 false 改为 true,没有迁移旧配置的代码。这一项由提交 c61b023(#9005,7.20.0 起)加入,当时默认 false。按 git tag --contains,最早含 a654826 的是 7.24.3(预发布),第一个正式版是 7.24.4)\n- v2rayn-commit-e101b1d:https://github.com/2dust/v2rayN/commit/e101b1d7b0eb364efd4a1b623082a857a868583d(提交说明「Always route IPv6 into Xray TUN regardless of EnableIPv6Address (#9930)」。按 git tag --contains,最早含它的是 7.24.7(预发布),第一个正式版是 7.24.8;7.24.8 的 release notes 写着「无论是否启用 IPv6 地址,始终将 IPv6 路由到 X Ray TUN」)\n- v2rayn-commit-64aad80:https://github.com/2dust/v2rayN/commit/64aad8027a890763c6ffc516e07db4d5f2e8e347(提交说明「Skip the TUN IPv6 route when the host has no global IPv6 address (#10080)」,2026-09-02。说明写了两种后果:禁用 IPv6 时整个入站起不来(加 IPv6 全网段路由时报 failed to add system route,结尾 permission denied);开着 IPv6 但没有全局地址时路由能加上,TUN 在本地先完成 TCP 握手,IPv6 目标看起来可达而被选中,连接到出站才断(#10051)。GitHub compare:在 7.24.9(521230c)之后,7.25.0 标签含它)\n- xray-core-src-26-7-28:https://github.com/XTLS/Xray-core/tree/5ca6f4b7d4dc20a881d4330e498892697627ec0c(proxy/tun/README.md L20(Linux、macOS 不按 dns 字段改系统 DNS)、L51-L54(ICMP Echo 回复由 TUN 协议栈本地生成,不代表远端可达);https://github.com/XTLS/Xray-core/blob/5ca6f4b7d4dc20a881d4330e498892697627ec0c/proxy/tun/stack_gvisor_icmp_handler.go L20-L45、L63-L71(本地构造回复,TTL 64);proxy/tun/tun_linux.go L166-L185、L266-L290(逐条加 autoSystemRoutingTable,失败报 failed to add system route);proxy/tun/tun_darwin.go L582(macOS 加路由失败时同样的前缀);common/platform/platform.go L42-L53、L75-L81 与 others.go L15-L35(没有 XRAY_LOCATION_ASSET 时在可执行文件所在目录找数据文件))\n- singbox-src-v1-13-19:https://github.com/SagerNet/sing-box/tree/b5ebaa1fc0f2b94256180b95468e73ef53caa27d(route/rule/rule_set_remote.go L97-L120(开了缓存先从缓存载入;什么都没载入到才在启动时同步下载,失败以 initial rule-set 返回错误))\n- singbox-docs-tun-zh:https://sing-box.sagernet.org/zh/configuration/inbound/tun/(入站 → Tun:auto_route(为避免环回要设 route.auto_detect_interface 等)、strict_route(Windows 上使不支持的网络不可达、防 DNS 泄露,可能使 VirtualBox 等程序工作不正常))\n- exp-v2rayn-tun-no-internet-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-tun-no-internet-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-7-25-4-assets-cli-2026-10-02:验证记录(内部存档,未公开)\n\n最后修订:a346d4f 2026-10-02\n"},"v2rayng-first-run":{"id":"v2rayng-first-run","type":"howto","title":"第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上","aliases":["v2rayNG 安卓","v2rayNG 导入订阅","v2rayNG 添加订阅","v2rayNG 订阅分组设置","v2rayNG 更新订阅","v2rayNG 加号里没有订阅","v2rayNG 订阅没有节点","v2rayNG 节点列表是空的","v2rayNG 更新了 0 个配置","v2rayNG 1 个跳过","v2rayNG 1 个失败","v2rayNG 保存订阅提示不要使用 HTTP 协议订阅地址","v2rayNG 允许 HTTP 订阅地址","v2rayNG 从剪贴板导入","v2rayNG 一键导入","v2rayNG install-sub","v2rayNG 订阅导入成功","v2rayNG 选择一个配置","v2rayNG 已连接,点击测试连接","v2rayNG 连接成功:延时","v2rayNG 测试配置真连接","v2rayNG Connection request","v2rayNG fdroid","v2rayNG (F-Droid)","v2rayNG 小米装不上","v2rayNG arm64-v8a"],"primary_topic":"v2rayng","topics":["v2rayng","subscription-import","basics"],"intents":[],"applicability":{"client":["v2rayng"],"os":["android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-23","freshness":"current","markdown":"# 第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上\n\n主题:`客户端` › `v2rayNG`\n适用:v2rayng / android / any\n最后验证:2026-09-23\n\nv2rayNG 安卓版第一次用,导入订阅的入口**不在右上角加号里**,在左边侧边栏的「订阅分组设置」。完整顺序:从 GitHub Release 下载 APK(普通手机选 `arm64-v8a`)→ 左上角三道杠 →「订阅分组设置」→ 右上角加号 → 填「备注」和「可选地址 (url)」→ 对勾保存 → 点这一页右上角的圆形箭头「更新订阅」→ 回主界面,**点顶部你的订阅标签**(在「Default」右边,括号里是节点数)→ 选一个节点 → 点右下角启动按钮,系统弹出 VPN 连接请求时允许 → 点底部状态栏,看到「连接成功:延时 N 毫秒」→ 用浏览器打开一个不开代理时打不开的网页确认。\n\n**保存订阅不会自动下载节点**,所以刚加完订阅节点列表是空的,要再点「更新订阅」。**回到主界面时停在空的「Default」标签上**,不是更新失败,点一下你的订阅标签就能看到节点。**主界面 ⋮ 菜单里的「更新订阅」只更新当前选中的标签**:停在「Default」标签上点它,提示是「更新了 0 个配置(0 个成功,0 个失败,1 个跳过)」,节点还是 0——先切到你的订阅标签再点,或者直接在「订阅分组设置」页更新。**状态栏显示「已连接,点击测试连接」不等于能上网**,点它测一下才算数。\n\n## 存不上或更新后没有节点,按提示文字对照\n\n更新订阅后的提示格式是「更新了 N 个配置(几个成功,几个失败,几个跳过)」。**先看「失败」前面的数字**,不要按整句逐字对照:同一件事在不同页面上点,句子会不一样。\n\n- **失败数大于 0**:有订阅没拉下来,或者拉下来了但 v2rayNG 读不懂。在主界面只更新一个订阅标签时,提示是「更新了 0 个配置(0 个成功,1 个失败,0 个跳过)」;在「订阅分组设置」页一次更新全部时,句子里还会带着「1 个跳过」(实测两个订阅都失败时是「更新了 0 个配置(0 个成功,2 个失败,1 个跳过)」)。**这条提示不写原因**:实测订阅服务器拒绝访问(HTTP 403)和订阅内容是 Clash 配置这两种情况,提示逐字相同。按源码,v2rayNG 只认三种订阅内容:以 vmess、vless、ss、trojan 这些协议名开头的分享链接(明文或 Base64 编码都行)、完整的 Xray JSON 配置、WireGuard 配置文本;**给 Clash 系客户端用的 YAML 订阅它读不了**。所以先做两件事(作者建议):去服务商面板重新复制一次订阅链接(链接可能已经失效或被重置),并确认你拿的是给 v2rayNG 用的那种订阅,而不是给 Clash 用的;还不行就把这条提示原文(不要带订阅链接)交给服务商。订阅格式和客户端对不上的各种表现,见 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- **「1 个跳过」(或更多)**:跳过的是没有订阅地址的「Default」分组(它是放手动添加节点的地方)。在「订阅分组设置」页更新时,跳过数**至少是 1**(Default),关了「启用更新」的订阅也算进跳过里,**这些都是正常的**——实测成功时是「更新了 4 个配置(1 个成功,0 个失败,1 个跳过)」;有三个订阅、其中两个关掉「启用更新」时是「3 个跳过」。在**主界面**更新、而且成功和失败都是 0(比如「更新了 0 个配置(0 个成功,0 个失败,1 个跳过)」)时,说明这次什么也没更新:多半是停在「Default」标签上,切到你的订阅标签再更新,或者在「订阅分组设置」页点圆形箭头(实测);选中的已经是你的订阅标签的,看看它在「订阅分组设置」里是不是关了「启用更新」——关了的订阅会被跳过(在订阅分组设置页更新时实测,主界面这一种没有单独测)。\n- **保存时提示「请不要使用不安全的 HTTP 协议订阅地址」,页面不关**:按源码,除了以 https 开头的地址,以及主机是局域网 IP 地址(或者地址里带有本机回环地址)、以 http 开头的地址,其它地址保存时都会弹这一句,v2rayNG 默认不保存。两种常见情况:**粘贴时漏了开头那段 https**(只有域名和后面的路径,按源码也会弹这一句,没有实测),或者服务商给的真是 http 开头的地址。先检查链接是否完整、是否以 https 开头;确实是 http 开头的,先问服务商有没有 https 开头的订阅地址(作者建议:http 开头的链接在网络上是明文传输的,经过的网络都能看到它)。非用不可,在订阅编辑页打开「**允许不安全的 HTTP 地址**」再保存:实测同一句警告还会再弹一次,但这次存上了。\n- **重复「从剪贴板导入」同一个链接时弹红底的「失败」**:不代表订阅坏了。实测弹红底「失败」,没有新增订阅,也没有重新下载;按源码,原因是同一个地址已经在列表里、不会重复添加。\n- 侧边栏里的日志入口叫「**Logcat**」。打开后页面是空的,要**下拉刷新一次**才会出现日志(按 2.2.6 源码,打开时只提示「请下拉刷新!」;本站第一次实测时没有下拉,打开两次都是空白)。怎么复制、分享日志见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs);真机上能不能在这里看到订阅失败的原因,本站没测。\n\n## 另外两种导入方式\n\n- **从剪贴板导入**:复制订阅链接后,点右上角加号 →「从剪贴板导入」。只要剪贴板里是一个 https 开头的订阅地址(或局域网的 http 地址),v2rayNG 会**自动新建一个订阅并立刻下载节点**,不用再点「更新订阅」;订阅名取链接里 `#` 后面的部分,没有 `#` 就叫「import sub」(实测与源码)。它顺带会把已有的全部订阅也更新一遍(实测)。所以「加号里没有订阅」只说对了一半:没有叫「订阅」的菜单项,但这个入口也能导入订阅。\n- **服务商面板的「一键导入 v2rayNG」**:按源码,v2rayNG 认一种以 v2rayng 开头、带 `install-sub` 和订阅地址的链接(也认带 `install-config` 的),会把其中的订阅地址导入。面板上的按钮是不是用这种链接实现的,要看各家面板,本站没有核对。本站用命令行触发这种链接实测:成功时提示「**订阅导入成功**」、订阅已经下载好了,**但主界面当时仍显示 0 个节点,要把 v2rayNG 彻底关掉再打开才显示出来**(实测是在系统的应用信息里「强制停止」后重新打开)。没有从面板网页上点过;手机上装了别的代理客户端时会不会先让你选应用,也没测。失败时提示「导入订阅失败」(按源码),这时复制订阅链接、按第 3 步手动添加。\n\n## 装不上:带 fdroid 的包\n\n**项目方的说明**:v2rayNG 在 1.10.25 的[发布说明](https://github.com/2dust/v2rayNG/releases/tag/1.10.25)里说,带 fdroid 的包是为了解决「有些设备识别包名后无法安装」而加的,**原包名装不上的,改装带 fdroid 的版本**,包名可以在「关于」页最下面看到;官方 wiki 的[发布文件介绍](https://github.com/2dust/v2rayNG/wiki/Release-files-introduction-for-Android)也说它「只是包名不同」,是给一些特殊系统的设备用的。所以如果系统在安装时拦下 v2rayNG(比如一些小米、红米、澎湃系统的手机),可以试同一个 Release 页里**同版本、同架构、文件名带 `-fdroid` 的包**。名字里的 F-Droid 容易让人以为要去 F-Droid 应用商店下载,其实就是同一个 GitHub Release 页里的另一个文件。\n\n两个包具体差在哪(按 2.2.6 源码与对两个安装包的检查):包名不同,普通包是 `com.v2ray.ang`,fdroid 包是 `com.v2ray.ang.fdroid`;桌面上的名字不同,fdroid 包叫「v2rayNG (F-Droid)」;应用内更新找的安装包不同(见下)。显示的版本号都是 2.2.6,签名证书相同,功能相同。实测:\n\n- 它是**另一个应用**,可以和普通包同时装在一台手机上;**两边的数据不通**,在普通包里导入的订阅,fdroid 包里看不到,换装后要重新导入。\n- 想确认自己装的是哪一个:侧边栏最下面的「关于」页,版本号下面一行就是包名。\n- 按源码,fdroid 包的应用内更新只会找带 fdroid 的新版本,普通包只找普通版本,两边各升各的。\n\n换个包名能不能躲开你这台手机的拦截,本站没法在模拟器上验证;系统自带的安装拦截、安全扫描怎么处理,按手机系统自己的说明来,本站不给具体的菜单路径。\n\n## 这几步在确认什么\n\n前四步确认**订阅真的变成了节点**:安装包是从项目方声明的渠道下载的、订阅地址存上了、而且真的下载下来了(保存和下载是两步)。想进一步核对安装包没被调包,官方 README 说 Release 文件带 GPG 签名,并给了公钥指纹;在手机上做这一步不方便,本条不展开(作者判断)。后两步确认**流量真的走了节点**:系统允许 v2rayNG 建立 VPN、选中的节点经测试能连到外面。顺序是作者按依赖关系排的——前面没成,后面多半白做。\n\n设置里有「VPN」和「仅代理」两种模式,默认是 VPN(按源码)。「仅代理」模式不经系统的 VPN 接口,也不会弹 VPN 授权(按源码),这时要让其它应用自己走 v2rayNG 的本地代理才有效果,新手用默认的 VPN 模式就行(作者判断)。误选了「仅代理」会是什么样子——底部照样显示已连接、测试也成功,浏览器却不走代理——见 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)。\n\n## 适用范围与验证方式\n\nv2rayNG 2.2.6(GitHub Release 的 `arm64-v8a` 普通包与 fdroid 包)在 Android 16 模拟器上实机跑过(exp-v2rayng-first-run-gui-2026-09-23),另外逐条对过 2.2.6 的源码、检查过两个安装包。\n\n- 没在真机上测过,也没测其它安卓版本;小米、澎湃等系统的安装拦截模拟器复现不了。\n- 实测节点在本机,延迟数字不代表真实线路。\n- 2.3.x 只按 2.3.9 源码核对了入口位置(侧边栏第一项、加号菜单、⋮ 菜单的「更新订阅」),其余行为没有核对。\n\n## 步骤\n1. 只从 GitHub 上项目自己的 Release 页下载:https://github.com/2dust/v2rayNG/releases 。官方 README 的下载一节只写了这一个地址,网上自称「v2rayNG 官网」「下载站」的页面不是项目方声明的渠道。v2rayNG 2.2.6 要求 **Android 7.0 及以上**。Release 里的安装包按处理器架构分成 `arm64-v8a`、`armeabi-v7a`、`x86`、`x86_64` 几种,每种又有一个文件名带 `-fdroid` 的版本。**普通手机先装不带 fdroid 的 `arm64-v8a`,装不上再换 `armeabi-v7a`**;`x86`、`x86_64` 是给电脑上跑的安卓模拟器这类设备用的(这几句是作者建议)。**系统拦下安装、不让装**(比如一些小米、红米、澎湃系统的手机)时,项目方的说明是改装同一 Release 页里带 fdroid 的版本,见正文「装不上:带 fdroid 的包」一节。\n 失败时 → escalate\n2. 第一次打开,Android 13 及以上(版本界限按源码)会先弹一个**通知权限**申请(英文系统是「Allow v2rayNG to send you notifications?」),这只是问能不能发通知,**不是 VPN 授权**——VPN 授权要到第 5 步才出现。之后是标题为「配置项」的主界面,列表是空的,底部一条状态栏写着「未连接」(实测)。**右上角的加号里找不到「订阅」是正常的**:加号(添加配置)里是扫描二维码、从剪贴板导入、从本地导入,以及手动添加 VMess、VLESS、Shadowsocks 等单个节点的项,一共 13 项,没有一项叫「订阅」(实测)。订阅的入口在左边的侧边栏里,见下一步。\n 失败时 → escalate\n3. 点左上角的三道杠打开侧边栏,点第一项「**订阅分组设置**」,再点这一页右上角的**加号**,进入订阅编辑页。「备注」随便填一个名字(**不能空着**,空着点保存只弹一个「备注」提示、不会保存);把服务商给你的订阅链接粘到「**可选地址 (url)**」里;其余选项保持默认,点右上角的**对勾**保存,看到绿色的「成功」就存上了(实测)。订阅链接是以 https 或 http 开头的一串网址,**它等同于你的账号凭据,不要发给别人、聊天助手或在线工具**。弹出「**请不要使用不安全的 HTTP 协议订阅地址**」、页面也没关掉,说明没有存上:按源码,只要地址不是以 https 开头、主机又不是局域网或本机的 IP 地址,就会弹这一句,所以**先检查粘贴的链接是否完整、是否以 https 开头**(只粘了域名和后面的路径、漏了开头那段 https 也会弹这句),再看正文「存不上或更新后没有节点,按提示文字对照」一节。**保存只是把地址记下来,不会下载节点**:这时回主界面会看到一个节点数为 0 的新标签,是正常的(实测),要做下一步。\n 失败时 → escalate\n4. 还在「订阅分组设置」这一页时,点右上角加号右边的**圆形箭头**按钮(这一页右上角只有这两个按钮,它的名字叫「更新订阅」),它会**一次更新全部订阅**。成功时提示类似「**更新了 4 个配置(1 个成功,0 个失败,1 个跳过)**」,4 是你的节点数;**这里的「1 个跳过」是正常的**,跳过的是没有订阅地址的「Default」分组(实测)。也可以回主界面,**先点顶部你刚加的那个订阅的标签**,再点右上角 ⋮ 菜单最后一项「更新订阅」,成功时提示「更新 4 个配置」(实测)。**主界面这个「更新订阅」只更新当前选中的标签**:刚保存完默认停在「Default」标签上,这时点它只会提示「更新了 0 个配置(0 个成功,0 个失败,1 个跳过)」,什么也没下载(实测,与 2.2.6 源码一致)——这是新手最容易卡住的地方。提示里「失败」前面的数字不是 0,按正文「存不上或更新后没有节点,按提示文字对照」一节对照。\n 失败时 → escalate\n5. **回到主界面时,选中的还是空的「Default (0)」标签**(实测,从「订阅分组设置」页更新完返回也是这样)。**先点顶部你的订阅标签**——它在「Default」右边,括号里是节点数——列表里才会出现节点。**括号里的数字不一定会刷新**,以点进去看到的列表为准:实测更新成功后标签仍写着 0,点进去节点已经在了。第 4 步的提示是成功的(带「1 个成功」,或者是「更新 4 个配置」这样的),点进去列表却是空的:先把 v2rayNG 彻底关掉(在系统的应用信息里「强制停止」)再打开,重新点这个标签看——实测「一键导入」后就遇到过提示成功、列表是空的,强制停止再打开后节点才显示出来。提示里失败数大于 0,或者成功、失败都是 0,是没更新成,回到第 4 步按提示文字对照。然后**点一个节点选中它**,选中的那一行左边会出现一条竖线;更新完订阅不会自动替你选节点(实测)。再点右下角的启动按钮(图标是一个对勾,名字叫「启动服务」)。第一次点启动时系统会弹出 **VPN 连接请求**(英文系统是「Connection request」,说 v2rayNG 想建立一个能监控网络流量的 VPN 连接),**点允许的那个按钮**(英文系统是 OK;中文系统下的按钮文字本站没有实测)。这是安卓系统自己的授权框:v2rayNG 默认用 VPN 模式,要借系统的 VPN 接口接管手机的流量,不允许就启动不了(按源码)。**这个框在检查你有没有选节点之前就会弹**:没选节点时点启动,会先弹这个框,允许以后才提示「**选择一个配置**」、不会启动(实测)。允许过一次之后,再启动就不会再问(实测)。启动后底部状态栏变成「**已连接,点击测试连接**」(实测)。\n 失败时 → escalate\n6. **「已连接」只说明 VPN 建起来了,不说明节点能用**——实测选一个根本连不通的节点,状态栏照样显示「已连接,点击测试连接」。所以要点一下底部这条状态栏:它会经你选中的节点去访问一个测速网址,先显示「测试中…」,成功时变成「**连接成功:延时 N 毫秒**」,下面还有一行地区代码和 IP,那是经节点查到的出口 IP(实测);失败时是「**失败:**」加一句英文原因,比如节点连不上时是「失败: context deadline exceeded」(实测)。失败了就停止服务、换一个节点再试(作者建议);所有节点都测不通时,按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查。想一次看哪些节点能用:点右上角 ⋮ →「**测试配置真连接**」,每个节点右下角会显示毫秒数:**绿色的数字是测通了;红色的 `-1ms` 是这次没测通**,可能是节点本身不可用,也可能是 v2rayNG 不接受这个节点的某项参数——实测时有一个测试节点就是这样,原因本站没有排查(实测,是在已连接状态下点的)。这里的毫秒数只说明经这个节点能连到测速网址,不代表看视频、下载时的真实速度(作者判断)。\n 失败时 → escalate\n\n## 验证\n- **v2rayng-connected-check**(人):底部状态栏点出「连接成功:延时 N 毫秒」之后,用浏览器打开一个不开代理时打不开的网页(比如你装它就是为了访问的那个)。\n 预期:网页正常显示,就完成了。状态栏测试成功、网页却打不开时,先换一个「测试配置真连接」里显示绿色数字的节点再试;还不行,按 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet) 查私人 DNS、分应用和模式这几项;都排除了,再把现象、节点名和状态栏的提示文字交给服务商,贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉订阅链接和服务器地址(作者建议)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `一个订阅能在几台设备上用:能同时用几台由服务方决定`(见 devices-per-subscription)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名`(见 verify-client-download)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README.md(Download 一节、GPG Verification 一节);V2rayNG/app/src/main/java/com/v2ray/ang/ui/LogcatActivity.kt L45-L47(打开 Logcat 页时只提示「请下拉刷新!」,不读日志);V2rayNG/app/build.gradle.kts(minSdk 24、ABI splits、fdroid flavor 的 applicationIdSuffix);V2rayNG/app/src/fdroid/res/values/strings.xml(app_name);res/menu/menu_main.xml(添加配置子菜单、sub_update);res/menu/menu_drawer.xml(sub_setting);res/menu/action_sub_setting.xml(add_config、sub_update);ui/SubSettingActivity.kt(sub_update:一次更新全部与三种提示);ui/SubEditActivity.kt(saveServer:备注为空、isValidUrl、isValidSubUrl、allowInsecureUrl);handler/SubscriptionUpdater.kt(syncOne:未开自动更新时不拉取);util/Utils.kt(isValidUrl、isValidSubUrl);AppConfig.kt(PRIVATE_IP_LIST);handler/AngConfigManager.kt(configFmtParsers、parseConfigViaSub、parseCustomConfigServer、updateConfigViaSub、importBatchConfig、importUrlAsSubscription:同一地址不重复添加);viewmodel/MainViewModel.kt(updateConfigViaSubAll:选中分组时只更新该分组);ui/MainActivity.kt(handleFabAction:先 VpnService.prepare 再 startV2Ray 检查选中节点;importConfigViaSub、setupGroupTab);ui/UrlSchemeActivity.kt 与 AndroidManifest.xml(install-sub、install-config 深链,CoreVpnService);core/CoreServiceManager.kt(measureV2rayDelay;仅代理模式启动 CoreProxyOnlyService);enums/PermissionType.kt(POST_NOTIFICATIONS 需 Android 13);res/xml/pref_settings.xml(pref_mode 默认 VPN);ui/MainRecyclerAdapter.kt(负延迟标红);ui/AboutActivity.kt(显示 APPLICATION_ID);handler/UpdateCheckerManager.kt(getDownloadUrl:fdroid 包只找 fdroid 资产);res/values-zh-rCN/strings.xml)\n- v2rayng-src-2-3-9:https://github.com/2dust/v2rayNG/tree/bd21bbc3f9ccad349e48bad580e4125ff36a1969(V2rayNG/app/src/main/java/com/v2ray/ang/ui/main/MainDrawer.kt(抽屉第一项 title_sub_setting);ui/main/MainImportMenu.kt(导入菜单项、UpdateSubscriptions))\n- exp-v2rayng-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-v2rayng-first-run-cli-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:72209a2 2026-09-27\n"},"verify-client-download":{"id":"verify-client-download","type":"faq","title":"安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名","aliases":["Clash Verge 官网","Clash Verge Rev 官方文档站 clashverge.dev","Clash Verge 下载安全","v2rayN FlClash 下载渠道 是不是原版","Clash 魔改版安装包","仿冒 Clash Verge","带官方商城的 Clash","Clash Verge 下载站 网盘 国内镜像","Clash Verge 安装包 SHA256 校验","mac 校验 dmg","FlClash apk 是不是原版","安卓 apk 校验","Get-FileHash","shasum -a 256","sha256sum","FlClash SHA256SUMS","v2rayN .sig 签名","v2rayN-public-key.asc 公钥","gpg --verify v2rayN","gpg: BAD signature","gpg: Can't check signature: No public key","WARNING: This key is not certified with a trusted signature","unknown version 5 Invalid keyring","v2rayN 报毒","FlClash 报毒","Clash Verge setup.exe 报毒","Windows Defender 删除 Clash Verge 内核","Windows 已保护你的电脑","Clash Verge 找不到系统文件 os error","安卓覆盖安装签名不一致","INSTALL_FAILED UPDATE_INCOMPATIBLE","INSTALL_FAILED_UPDATE_INCOMPATIBLE","adb Failure Existing package com.v2ray.ang signatures do not match newer version ignoring","App not installed as package conflicts with an existing package","应用未安装:软件包与现有软件包存在冲突","App Store 上的 Clash Verge","Clash Verge 发布页上没有这个版本号"],"primary_topic":"safety","topics":["safety","install-and-download","clash-verge-rev","v2rayn","v2rayng","flclash"],"intents":[],"applicability":{"client":"any","os":["windows","macos","linux","android","ios"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# 安装包是不是原版:认准 GitHub 发布页,核对 sha256 与签名\n\n主题:`基础概念` › `下载真伪与订阅安全`\n适用:any / windows/macos/linux/android/ios / any\n最后验证:2026-09-24\n\n**问:** 下载的 Clash Verge Rev、v2rayN、FlClash、v2rayNG 安装包(dmg、exe、zip、apk),是原版还是被改过?自称官网的下载站能不能信?App Store 上同名的 App 是不是真的?\n\n**答:** 从项目方列出的渠道下载,再拿安装包的 sha256 和 GitHub 发布页上同一个文件旁边的 sha256 比对,一致就是项目发布的那一份;手机上下的 APK 先放到电脑上核对。v2rayN、v2rayNG 还可以用 GPG 核对 .sig 签名。各项目 README 列出的平台里都没有 iOS,App Store 上用这些名字的 App 不是它们发布的(推断)。\n**从项目方列出的渠道下载,下完拿安装包的 sha256 和 GitHub 发布页上同一个文件旁边的 sha256 比一比:一致,就是项目发布的那一份。** Clash Verge Rev、FlClash、v2rayN、v2rayNG 都在 GitHub 上发布,Clash Verge Rev 自己的文档站是 <https://www.clashverge.dev>;其他自称「Clash 官网」「Clash Verge 官网」的下载站、网盘和「国内镜像」都不是项目方列出的渠道,它们自己挂的「SHA256 校验」不算数。dmg、setup.exe、zip、deb、apk 都这样核对,安卓手机上下的 APK 先放到电脑上核对再装。v2rayN、v2rayNG 另外可以用 GPG 核对 .sig 签名。各项目 README 列出的平台里都没有 iOS,App Store 上用这些名字的 App 不是它们发布的(推断)。杀毒软件报毒、Clash Verge 的内核 verge-mihomo.exe 被删时,先核对安装包,一致再用它重装,只给重装出来的那个内核文件加白名单,不要整个关掉杀毒软件(作者建议)。\n\n## 第一步:认准下载渠道\n\n- **Clash Verge Rev**:<https://github.com/clash-verge-rev/clash-verge-rev/releases> 。官方文档写明「目前仅通过 GitHub Release 发布,请注意辨别」。项目自己的文档站是 <https://www.clashverge.dev>(站点仓库在 clash-verge-rev 组织下),它安装页上的下载按钮取的也是 GitHub 发布页上的文件。同一页还列了:Windows 可以用 WinGet(`winget install ClashVergeRev.ClashVergeRev`);Arch 系可以用 AUR 的 `clash-verge-rev-bin`(正式版)或 `clash-verge-rev-autobuild-bin`(测试版);Scoop 上的是社区维护的分发,官方不为它提供支持。\n- **FlClash**:<https://github.com/chen08209/FlClash/releases> 。README 另外列了作者自己的 F-Droid 源和 Homebrew(`brew tap chen08209/tap`)。按构建流程,版本号带「-」的测试版不上 GitHub 发布页、也没有 SHA256SUMS,只推到作者的 Telegram 频道,所以本条的办法核对不了测试版。\n- **v2rayN(电脑版)**:<https://github.com/2dust/v2rayN/releases> ;**v2rayNG(安卓版)**:<https://github.com/2dust/v2rayNG/releases> 。\n\n**这对你意味着**:安装包不是从上面这些渠道来的(机场网站给的、群里转的),或者装好后界面里有「官方商城」、只能导入某一家的订阅,先别凭界面长什么样下结论——按第二步拿 GitHub 发布页上的 sha256 核对,对不上就不是项目发布的那一份(作者建议)。GitHub 下载不动、只能从网盘或镜像拿文件时,文件可以先留着,照样按第二步拿 **GitHub 发布页上**的值核对(v2rayN、v2rayNG 还可以用 GPG):一致就是同一份,不一致就删掉(作者建议)。v2rayN 的 README 说它的 GPG 签名正是用来防镜像站、运营商或 CDN 劫持的。\n\n**发布页上找不到你的版本号**:正式版在发布页上有同名版本。Clash Verge Rev 的测试版版本号带 `+autobuild.`,放在名为 `autobuild` 的那个发布里,旧的测试版文件会被清理掉;带 `-rc` 的是预发布。这些情况和去哪看自己装的版本号,见 `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)。找不到只说明没法用发布页核对,不能据此断定它是假的;稳妥的做法是从发布页重新下载一份(作者建议)。\n\n## 第二步:比对 sha256\n\nsha256 可以理解成文件的「指纹」:文件哪怕只改了一个字节,算出来的值就完全不同(实测)。\n\n**在哪看**:发布页每个版本下面的文件列表里,较新的版本每个文件名旁边都有一段 `sha256:…` 和一个复制按钮。**用复制按钮拿值**,别照着页面上看到的那几位比:这段文字放在限宽的元素里,页面上可能只显示前面一部分;复制出来的是完整的值,带 `sha256:` 前缀,比对时去掉(按页面源码判断,没有在浏览器里看过)。页面上显示的文件名可能和下载下来的不一样:Clash Verge Rev 页面上写 `Clash Verge_2.5.5_aarch64.dmg`(空格),下载下来是 `Clash.Verge_2.5.5_aarch64.dmg`(点),两个是同一个文件。\n\n**怎么算**(在电脑上做):\n\n- **Mac**:打开「终端」,输入 `shasum -a 256 `(末尾留一个空格),把文件拖进窗口,回车,得到一串小写的值(实测)。\n- **Windows**:在开始菜单里搜「PowerShell」打开,输入 `Get-FileHash 文件路径 | Format-List`,看 `Hash` 那一行(显示成大写,发布页上是小写,大小写不算);路径里有空格时用引号括起来。不加 `Format-List` 时显示成一张表,窗口窄时被截掉的是后面的 Path(文件路径)一栏,不是 Hash。也可以让它直接比:`(Get-FileHash 文件路径).Hash -eq '去掉前缀的值'`,显示 `True` 就是一致(大小写不算)。这几条命令在 Windows 11 自带的 Windows PowerShell 5.1 上实测过,在 Linux 容器里的 PowerShell 7.4 上也跑过。\n- **Linux**:终端里 `sha256sum 文件路径`(实测,GNU coreutils 9.7)。\n- **安卓手机**:本条没有核实过在手机上直接算 sha256 的办法。在电脑上下载 APK(要用 GPG 就连同 `.sig` 一起),按上面的办法核对,一致了再传到手机上安装(作者建议)。\n- **FlClash 的 SHA256SUMS**:正式版发布页里有一份 `SHA256SUMS`,列了全部安装包的值。把它和安装包放在同一个文件夹,在终端里先进入这个文件夹(输入 `cd `,末尾留一个空格,把文件夹拖进窗口,回车),Mac 上再跑 `shasum -a 256 --ignore-missing -c SHA256SUMS`,Linux 上把 `shasum -a 256` 换成 `sha256sum`,你下的那个文件显示 `OK` 就对了。不加 `--ignore-missing` 时,没下载的文件会各报一行 `FAILED open or read`、整体失败——这不代表你的文件有问题。\n\n**结果怎么读**:两串一致,就说明你的文件和项目发布的那一份逐字节相同。不一致时,先确认复制的是**同一个文件名**那一行:留意 x64 和 aarch64 / arm64 这类架构、带 `fixed_webview2` 的另一种安装包、显示名里的空格换成了点;再看文件大小和发布页上写的是不是差得很多(差很多多半是没下载完)。重新下载后仍然不一致,就别装(作者建议)。\n\n**较早的版本旁边没有 sha256**:这四个项目里,最后一个缺 sha256 的版本都是 2025 年 5 月 25 日或更早发布的,之后的版本每个文件都有;缺的那些版本,页面上这段文字根本不出现(按 GitHub 接口统计,并看了 Clash Verge Rev v2.2.3 的页面源码)。碰到这种版本,改为下载一个旁边显示了 sha256 的较新版本(作者建议)。\n\n## 可选:用 GPG 核对 v2rayN、v2rayNG 的签名\n\n两个项目的 README 都有「GPG 签名校验」一节,给出公钥指纹 `7694 5E9F 3E9A 168F 8070 F195 805D 661C 134D FAF6 8903 C199 463C 31E5 AE90 3AE0`。发布页里每个安装包旁边有一个同名加 `.sig` 的文件(这是签名),另有一个 `v2rayN-public-key.asc`(这是公钥,不是签名)。你下的版本没有 `.sig`,就只比 sha256。\n\n**先准备**:这一节在电脑上做,要 GnuPG 2.4 或更新的版本。Mac 和 Windows 都不自带:Mac 可以用 Homebrew 装(实测用的是 2.5.22);Windows 上的 Gpg4win 没有测过。装好先跑 `gpg --version` 看版本号,2.2 核对不了(见下面「没通过」)。\n\n先把公钥、安装包和它的 `.sig` 放在同一个文件夹,在终端里进入这个文件夹(同上,`cd ` 加文件夹),再运行:\n\n1. `gpg --import v2rayN-public-key.asc`\n2. `gpg --verify v2rayN-macos-arm64.zip.sig v2rayN-macos-arm64.zip`(换成你下的文件名,签名在前、文件在后)\n\n**通过**:显示 `Good signature`,并且它上一行 `using EDDSA key` 后面那串 64 位的值,和 README 的指纹去掉空格后逐字相同(2.4.7 和 2.5.22 都在这一行打印完整的 64 位)。同时出现 `WARNING: This key is not certified with a trusted signature!` 是正常的,它只是说你没有给这把公钥设过信任。警告下面的 `Primary key fingerprint`(2.4.7)和 `gpg --fingerprint` 只显示前 50 位,不能拿来做完整比对(实测)。\n\n**没通过**:`BAD signature` 说明文件被改过,或者 `.sig` 和文件配错了;`Can't check signature: No public key` 说明还没导入公钥。**GnuPG 太老也核对不了**:这把公钥是新格式(v5)的密钥,GnuPG 2.2.40 导入时报 `unknown version 5` 和 `Invalid keyring`,核对时报 `no signature found`,看起来像签名坏了,其实是版本不够;换 2.4 或更新的版本再核(2.4.7 和 2.5.22 实测都能核对)。\n\nClash Verge Rev 的发布页也有 `.sig` 文件,但那是给软件内的自动更新用的另一种签名,不能用 gpg 核对。按源码,软件内更新下载完安装包后会先用内置公钥核对这个签名,不通过就不安装。Clash Verge Rev 另有一种核对:它的发布流程给 Windows setup、macOS dmg、Linux deb / rpm 生成了 GitHub 的构建来源证明。装了 GitHub 命令行工具 `gh` 的话,跑 `gh attestation verify 文件路径 --repo clash-verge-rev/clash-verge-rev`,通过就说明这个文件出自这个仓库、对应版本标签那次提交上的发布流程(实测 2.5.5 的 dmg 和 setup.exe)。其他三个项目没有这一步,对它们查不到证明是正常的。\n\n## 系统自带的签名检查能说明什么\n\n- **macOS**:Clash Verge Rev 2.5.5 的 app 带苹果开发者签名,并经过公证(交给苹果检查过、登记在案);终端里 `spctl -a -vv -t exec` 加 app 路径,原版显示 `accepted` 和 `source=Notarized Developer ID`。**但只看 accepted 不够**:任何一个苹果开发者签名并公证过的 app 都会显示这个结果,别人重新打包再用自己的账号签名公证的也一样(推断)。还要用 `codesign -dv` 加 app 路径看 `TeamIdentifier`:2.5.5 原版是 `JPH3Z7PPBB`(实测;本条没有找到项目公布的对应值,换证书后可能会变)。FlClash 0.8.98 和 v2rayN 7.24.9 的原版只有 adhoc 签名,也就是不对应任何开发者的临时签名(v2rayN [官方 wiki](https://github.com/2dust/v2rayN/wiki/Release-files-introduction/f9abd39da25add650a0f445415330e18a5cbe67d) 的说法是「安装包没有签名」),同一条命令本来就不通过(实测)。**所以对 FlClash、v2rayN,macOS 的签名检查分不出真假,只能靠 sha256(v2rayN 还可以用 GPG)。** 这对你意味着:原版 FlClash、v2rayN 在 Mac 上第一次打开时被系统拦下,并不说明它是假的(弹窗本身没有实测);先按第二步核对,一致后 v2rayN 按 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 的办法打开。\n- **Windows**:Clash Verge Rev 2.5.5、FlClash 0.8.98 的安装程序,Clash Party 2.0.3 的 Windows x64 安装程序,以及 v2rayN 7.24.9 的 v2rayN.exe 都没有 Windows 代码签名(实测,也在 Windows 11 上核对过;Clash Party 别的架构与 Windows 7 的包没有下载,按构建流程推断也一样)。右键「属性」里有「数字签名」选项卡,但里面的列表是空的,这同样是没有签名,不能按有没有这个选项卡判断。这与 Clash Verge Rev、FlClash、Clash Party 的构建流程一致;v2rayN 读过的几个构建流程里也没有 Windows 签名这一步。所以在 Windows 上没法靠「发布者」认,只能比 sha256(v2rayN 还可以用 GPG,Clash Verge Rev 还可以用上面的构建来源证明)。双击时可能弹 SmartScreen 的红色窗口「Windows 已保护你的电脑」,一开始只有「不运行」按钮,点「更多信息」后显示「发行者: 发布者未知」,才出现「仍要运行」:Windows 11 上实测,Clash Verge Rev 2.5.5、2.5.6 和 Clash Party 2.0.3 的安装程序弹了,v2rayN.exe 和 FlClash 0.8.98 的安装程序这次没弹。弹了不说明是假的,没弹也不说明是真的:先按第二步核对 sha256,一致了再点「更多信息」→「仍要运行」(作者建议)。\n- **安卓(v2rayNG)**:v2rayNG 2.2.5 和 2.2.6 的签名证书相同,能直接覆盖升级。用另一把无关的密钥重签的 2.2.6 去覆盖已装的官方版时,Android 16 模拟器自带的安装器先照常问「要更新此应用吗?」,点了更新才显示「应用未安装:软件包与现有软件包存在冲突。」(英文界面是 `App not installed as package conflicts with an existing package.`);adb 报的错误码是 `INSTALL_FAILED_UPDATE_INCOMPATIBLE`,同一行后面写着 `signatures do not match newer version`;原来的应用和数据都没动(实测;厂商手机用自己的安装器,提示文字可能不同,本站没有在这些手机上试过)。**这对你意味着**:\n - 新包**没核对过,或核对不一致**:别为了装它先卸载旧的(卸载会删掉应用数据),从发布页重新下载官方包再核对(作者建议)。\n - 新包**已经在电脑上按第二步核对、与发布页一致**,仍提示冲突:多半说明手机上已装的那个和发布页上的包签名不同(按安卓源码,这句「冲突」也可能有别的原因,比如手机上另一个应用已经占用了同名的组件或权限,本站没有测)。它可能是改过的包,也可能来自别的渠道;这个方向本站没有实测,只能说到这里(作者推断)。先想想当初是从哪装的;决定换成发布页的版本时,先在旧应用里把要留的逐项记下来(截图也行):「订阅分组设置」里每条订阅的地址、自己加的节点、「路由设置」、「分应用设置」里勾了哪些应用、「设置」里改过的项(菜单名按官方 2.2.6 实测)。卸载会删掉应用数据,没记下的只能重新设(作者建议)。再卸载它,装核对过的包。\n - 第一次安装时界面上看不出是谁签的名:在模拟器上实测,先卸载官方版后,别的密钥签的同名包照样装上、没有任何提示(这台模拟器没有 Play 商店,Play 保护机制会不会警告没有看到)。所以只能先在电脑上比 sha256,见第二步。\n\n## 杀毒软件报毒、「找不到系统文件 os error」\n\nClash Verge Rev 官方 FAQ 给这个报错列了两种原因:内核或配置文件损坏;内核文件被杀毒软件删除或隔离。官方的办法:一是在「设置」里找到「配置目录」,删除里面所有文件后重启,还不行就卸载重装;二是被杀毒软件误伤时,把文件手动恢复并添加到白名单。按官方安装页的文件清单,内核是安装目录里的 `verge-mihomo.exe`(另有 `verge-mihomo-alpha.exe`;Windows 上实测也是这样)。删配置目录之前,先把整个目录复制一份到别处:里面除了订阅,还有你在「编辑规则」、扩展覆写配置、扩展脚本里改过的东西,删了就都没了;订阅链接另外单独记下(右键每张订阅卡片,点「编辑信息」,复制「订阅链接」,按源码),以防删完要重新导入。删完重启后按订阅链接重新导入;规则、覆写和脚本从备份里对应的文件把内容抄回去,不要把整个旧目录直接放回——出问题的文件可能就在里面(作者建议)。\n\n**要核对的是安装包,不是被删的那个文件**:发布页只列了安装包(以及 v2rayN 的 zip)的 sha256,没有列装好以后的内核文件的值。所以(作者建议):\n\n1. 当初用的安装包还在:按第二步核对它。一致,就用它重装一遍,重装会重新写出内核文件;杀毒软件再拦,只给这个新写出的文件加白名单,不要整个关掉杀毒软件。不建议从隔离区把原来那个文件恢复出来:安装包一致,说明不了被隔离的那一份在你电脑上没被换过。\n2. 安装包已经删了,或者核对不一致:从发布页重新下载,核对一致后重装。\n\nClash Verge Rev 装过系统服务、用虚拟网卡模式(TUN)的,重装可能把服务一起卸掉:Linux 上用 deb、rpm 重装(包括同一版本),以及 Windows 上安装器选了「安装前卸载」(装的版本和已装的不同时默认就是这一项)(Windows 上实测;Linux 按源码,其中 deb 同一版本覆盖安装卸掉服务另有实测)。装完虚拟网卡模式被关了的,见 `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)。重装以后,Clash Verge Rev 仍弹「启动内核失败」,或者「代理」页写着「内核暂不可用」「未获取到代理信息」的,见 `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error):那一条写了内核文件放回以后,还要「重新激活订阅」或退出重开,节点才会回来。\n\n**Clash Party** 的内核是安装目录下 `resources/sidecar/` 里的 `mihomo.exe`(另有 `mihomo-alpha.exe`、`mihomo-smart.exe`;按源码,2.0.3 的 Windows 安装包里和 Windows 上装好以后的目录实测也这样放)。处理同上面的 1、2,发布页是 <https://github.com/mihomo-party-org/clash-party/releases>。默认设置下内核文件没了时,会弹「内核启动出错」,「配置检查失败」后面没有内容(Windows 上实测);重装后仍这样的,见 `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)。\n\n核对一致只说明安装包和项目发布页上的那一份相同,不能证明它是用公开的源码编出来的,也不能证明杀毒软件判错了;信不信这个项目的发布,由你自己决定。\n\n## iPhone 和 App Store\n\n各项目 README 列出的平台里都没有 iOS:Clash Verge Rev 列的是 Windows、Linux、macOS;FlClash 列的是 Android、Windows、macOS、Linux;v2rayN 是电脑版,v2rayNG 是安卓版。所以 App Store 上叫 Clash Verge、FlClash、v2rayNG 的 App 不是这几个项目发布的(推断)。iPhone 上能用哪些客户端、怎么核对 App 的开发者,见 `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region);电脑和安卓该下哪个文件见 `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)。\n\n## 验证说明\n\n按四个项目在各自发布版本上的仓库源码与 Clash Verge Rev 官方文档核对;在 Mac 上实测了 Clash Verge Rev 2.5.5、FlClash 0.8.98、v2rayN 7.24.9、v2rayNG 2.2.6 的 sha256、GPG 和代码签名,在一台 Windows 11 上实测了 Clash Verge Rev、Clash Party、FlClash、v2rayN 的 Windows 安装包的 sha256、签名与 SmartScreen,在 Linux 容器里跑了 GnuPG 2.2 / 2.4、sha256sum 和 PowerShell 7.4,在 Android 16 模拟器上实测了 v2rayNG 的覆盖安装。\n\n- 没有在手机上跑过命令;Windows 上的 PowerShell 命令没有在开始菜单打开的窗口里操作过,中文界面下的报错原文没看;杀毒软件报毒、Mac 双击时的弹窗,以及发布页在浏览器里显示成什么样,都没有实际看过(发布页按页面源码判断)。\n- 这些方法只能证明「和发布页上那一份相同」;项目账号或构建流程本身被攻破的情况查不出来。\n- 安卓只在一台 Android 16 模拟器(镜像自带的安装器、没有 Play 商店)上测了「换一把无关的密钥」:覆盖已装的官方版,以及先卸载官方版再装;厂商安装器和 Play 保护机制没有看到;反方向(已装的那个和发布页上的包签名不同)是推断。\n\n## 验证\n- **verify-client-download-sha256-match**(人):在电脑上对安装包算 sha256:Mac 在终端里跑 shasum -a 256 加文件路径;Windows 在 PowerShell 里跑 Get-FileHash 文件路径 | Format-List,看 Hash 一行;Linux 跑 sha256sum 加文件路径。手机上下的 APK 先传到电脑上再算。再打开这个项目的 GitHub 发布页,点同一个文件名旁边的复制按钮复制 sha256。\n 预期:两串逐字相同(大小写不算,复制出来的 sha256: 前缀去掉)。不同时先确认比的是同一个文件名那一行,再重新下载后比一次;仍然不同就不要安装(作者建议)。因为报毒、内核被删或「找不到系统文件 os error」来核对的,一致只说明安装包是原版,原来的问题还在:按正文用它安装或重装(杀毒软件再拦,只给新写出的那个文件加白名单),之后软件能正常打开、不再出现原来那句报错,才算解决(作者建议);重装后仍是同一句的,Clash Verge Rev 按正文里官方的第一种办法处理配置目录(删之前先把整个目录复制一份),Clash Party 见正文,都做过仍是同一句,按没通过处理。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n- **verify-client-download-ios-platforms**(人):打开 Clash Verge Rev、FlClash、v2rayN、v2rayNG 各自 README 里写支持平台或下载的那一段,找有没有 iOS。\n 预期:都没有 iOS:App Store 上用这些名字的 App 不是这几个项目发布的(推断)。iPhone 上能用哪些客户端、怎么核对开发者,另见 iOS 客户端那一条。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Verge Rev 出了新版本要不要升:正式版、预发布(rc)、autobuild 的区别,应用版本与内核版本`(见 latest-version)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `iPhone 上的 Shadowrocket、sing-box MT、Karing:中国区商店都查不到`(见 ios-clients-and-store-region)\n- `安装包按系统与芯片选文件:Win7、32 位、便携版、fdroid、安卓架构与系统版本要求对照`(见 release-assets-which-file)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n\n## 来源\n- cvr-install:https://www.clashverge.dev/install.html(「发布地址」:Clash Verge Rev 目前仅通过 GitHub Release 发布,请注意辨别;测试版在名为 autobuild 的发布里;「操作系统」的 Windows 标签页:WinGet 安装命令,Scoop 为社区维护、官方不为下游渠道提供支持;Arch 标签页:yay -S clash-verge-rev-bin(正式版)、clash-verge-rev-autobuild-bin(测试版);文件清单:verge-mihomo.exe 为 Mihomo 核心程序;页面脚本:下载按钮从 GitHub 接口的 releases/latest 取文件的下载地址(站点源文件 clash-verge-rev/clash-verge-rev.github.io@b05d036 docs/install.md L18-L29、L81-L97、L118-L134、L140-L147、L153-L160))\n- cvr-docs-site-repo:https://github.com/clash-verge-rev/clash-verge-rev.github.io/tree/b05d036efd01eac25b4f102f7235698f6e04d6df(Clash Verge Rev 文档站的仓库,在 clash-verge-rev 组织下;它的 GitHub Pages 自定义域名是 https://www.clashverge.dev(GitHub 接口 repos/clash-verge-rev/clash-verge-rev.github.io/pages 的 cname,2026-09-24);mkdocs.yml L3 的 repo_url 指向 clash-verge-rev/clash-verge-rev)\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(「找不到系统文件 os error」:原因一是内核或配置文件损坏、没找到内核,原因二是内核文件被杀毒软件删除或隔离;解决方案一是在「设置」里找到「配置目录」、删除里面所有文件后重启,还不行就卸载重装;方案二是被杀毒软件误伤时把文件手动恢复并添加到白名单(站点源文件 clash-verge-rev/clash-verge-rev.github.io@b05d036 docs/faq/other.md L1-L12))\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(README.md L29-L33(到 Release 页下载;支持 Windows、Linux、macOS 11+);.github/workflows/release.yml L251-L291(构建时传入 APPLE_* 签名与公证参数;对 Windows setup、macOS dmg、Linux deb/rpm 做 attest-build-provenance);src-tauri/tauri.windows.conf.json L6-L9(certificateThumbprint 为 null);src-tauri/tauri.conf.json L33-L39(updater 的 pubkey 与 endpoints);Cargo.lock 中 tauri-plugin-updater 2.11.0;.github/workflows/autobuild.yml L10、L60(测试版发到名为 autobuild 的发布,版本号由 release-version autobuild-latest 生成);scripts/release-version.mjs L9-L12、L255-L258(版本号后加 +autobuild.);.github/workflows/clean-old-assets.yml L1-L33(清理 autobuild 发布里的旧文件);src/components/profile/profile-item.tsx L438-L462、L636-L641、L841(订阅卡片右键弹出的菜单里有「编辑信息」)与 profile-viewer.tsx L292-L304(远程订阅的「订阅链接」一栏),菜单文字见 src/locales/zh/profiles.json L76、L120(2026-09-25 读))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/packages/windows/installer.nsi L222-L243(已装同一版本时第一项是新增或重新安装,版本不同时第一项是安装前卸载)、L279-L280(默认选第一项)、L314-L316(同一版本选第一项时不卸载)、L334-L347(选卸载时运行旧版卸载程序)、L1105(卸载程序运行 RemoveVergeService);src-tauri/packages/linux/pre-remove.sh L2 与 src-tauri/tauri.linux.conf.json L14、L24(deb、rpm 卸载前运行服务卸载程序))\n- exp-cvr-service-mode-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- tauri-updater-2-11-0:https://github.com/tauri-apps/plugins-workspace/blob/6aa2854f314481a459be1189b02c65a2450789ab/plugins/updater/src/updater.rs#L740(plugins/updater/src/updater.rs L740:下载完成后 verify_signature 用配置里的公钥核对签名,不通过即返回错误)\n- flclash-repo:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(README_zh_CN.md L27(多平台:Android, Windows, macOS and Linux)、L59-L67(Download:F-Droid、GitHub Releases、Homebrew tap);.github/workflows/build.yaml L15(版本标签不含「-」才是正式版 IS_STABLE)、L276-L284(唯一的签名步骤是 Android 签名)、L404-L412(每次打标签都把安装包推到作者的 Telegram 频道,不分正式版与测试版)、L419-L430(只有正式版才生成 SHA256SUMS、才发 GitHub Release);release_telegram.py(频道为 @FlClash))\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(README.md L18-L31(从 GitHub releases 下载;v2rayN 是电脑版、手机版是 v2rayNG)、L57-L68(GPG 签名校验:用来防镜像站、运营商或 CDN 劫持,并给出公钥指纹);.github/workflows/upload-sign.yml L47-L58(对每个发布文件 gpg --armor --detach-sign 生成 .sig);读过的 build.yml、build-all.yml、build-windows.yml、build-osx.yml、package-zip.yml、upload-sign.yml 里没有 Windows 代码签名步骤(其余 workflow 没有读))\n- v2rayng-repo:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(README.md L3(A V2Ray client for Android)、「Download / 下载」一节、L67-L77(GPG 签名校验,指纹与 v2rayN 相同);.github/workflows/build.yml L136-L147(对每个 APK 做分离签名 .sig,并导出 v2rayN-public-key.asc))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(.github/workflows/build.yml L92-L173 与 L175-L262(windows、windows7 作业:Build 一步只传架构变量,没有 Windows 签名步骤)、L384-L451 与 L522-L590(证书与公证只在 macOS 作业);electron-builder.yml L34-L45(win、nsis 两节没有签名配置)、L20-L22(extra/ 打进 resources);scripts/prepare.mjs L139-L199(内核下载到 extra/sidecar,Windows 上为 mihomo.exe、mihomo-alpha.exe、mihomo-smart.exe);src/main/utils/dirs.ts L64-L96(内核目录是 resources/sidecar);src/main/utils/template.ts L80(启动时检查配置文件默认开);src/main/core/manager.ts L477-L478、L1078-L1116(先用内核检查配置,内核没有任何输出时只剩「配置检查失败:」);src/main/index.ts L360(启动内核失败弹「内核启动出错」);src/renderer/src/locales/zh-CN.json L274-L275)\n- exp-verify-client-download-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-verify-client-download-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-verify-client-download-clash-party-cli-2026-09-28:验证记录(内部存档,未公开)\n- exp-verify-client-download-cli-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-verify-client-download-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-installer-gui-windows-2026-09-30:验证记录(内部存档,未公开)\n- exp-clash-party-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayng-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- aosp-packagemanager-1cdfff5:https://github.com/aosp-mirror/platform_frameworks_base/blob/1cdfff555f4a21f71ccc978290e2e212e2f8b168/core/java/android/content/pm/PackageManager.java#L10673-L10717(L10673 起把安装失败码换算成对外状态的那个函数:签名不一致(L10682,UPDATE_INCOMPATIBLE)之外,L10676、L10680、L10681、L10683、L10685、L10688(CONFLICTING_PROVIDER,同名组件已被别的应用占用)、L10716(DUPLICATE_PERMISSION,同名权限已被别的应用定义)也换算成同一个「冲突」状态)\n\n最后修订:107dc7f 2026-10-02\n"},"webrtc-leak":{"id":"webrtc-leak","type":"faq","title":"检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法","aliases":["WebRTC 泄漏","WebRTC 泄露","WebRTC 泄露真实 IP","WebRTC 显示本地 IP","WebRTC 检测显示国内 IP","WebRTC 显示本地运营商的 IP","开了代理 WebRTC 还是泄漏","开了 TUN 还是 WebRTC 泄漏","TUN 加规则模式 WebRTC 泄漏 全局不泄漏","Clash Verge WebRTC 泄漏","WebRTC 显示 .local 地址","防止 WebRTC 泄露"],"primary_topic":"troubleshooting","topics":["troubleshooting","tun-and-service","clash-verge-rev"],"intents":[],"applicability":{"client":["clash-verge-rev"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-10-01","freshness":"current","markdown":"# 检测网站说 WebRTC 泄漏、列出本地 IP 或真实 IP:原因、要不要管、Clash Verge Rev 里的查法\n\n主题:`排错`\n适用:clash-verge-rev / windows/macos/linux / any\n最后验证:2026-10-01\n\n**问:** 检测网站说「WebRTC 泄漏」,列出了我的局域网地址或者本地运营商的公网地址,开着 Clash Verge Rev 也一样,原因在哪?要不要管?Clash Verge Rev 里从哪查起,才能让它不再显示真实地址?\n\n**答:** WebRTC 是浏览器里给网页做音视频通话、点对点传输的功能,网页可以让浏览器向 STUN 服务器询问自己在外面的地址。这一步走 UDP,Chrome 默认允许它不经代理直接发;只开系统代理时 Clash Verge Rev 也接不到 UDP,所以检测网站拿到你本地运营商给的公网地址。打开虚拟网卡模式(TUN)后 UDP 也交给 Clash Verge Rev,再按规则决定走节点还是直连;规则模式下仍显示本地地址的,可能是规则让它直连了。局域网地址 Chrome 默认换成随机的 .local 名字,网页拿到麦克风或摄像头权限后才给真实地址。\n检测网站说「WebRTC 泄漏」「WebRTC 泄露」,是说网页借浏览器的 WebRTC 功能拿到了一个地址,和你经代理访问时的出口不一样。分两种:\n\n- **列出的是公网地址、而且是你本地运营商的**:这才是常说的「泄漏真实 IP」。网页让浏览器向 STUN 服务器询问自己在外面的地址,这一步走 UDP。只开「系统代理」时这条 UDP 不经过 Clash Verge Rev,网页拿到的就是你直连出去的公网 IPv4、IPv6 地址(Linux 上实测)。**打开「虚拟网卡模式」(TUN)**后,它进了 Clash Verge Rev、按规则交给节点,网页拿到的换成节点那一侧的地址,本地的 IPv6 地址也不再出现(Linux 上实测,按连接路径判断,见下文)。\n- **列出的是 .local 结尾的名字**:这是浏览器用来代替局域网地址的随机名字,不是你的地址。列出真实局域网地址(192.168、10 开头这类)的,按源码一般是这个网站拿到过你的麦克风或摄像头权限(见下文)。\n\n要不要管:网页本身仍是经节点打开的,代理在工作;在不在意网页看到你本地的公网地址,由你决定(作者建议)。\n\n## 为什么网页本身走了节点,WebRTC 那一栏却是本地地址\n\n只开系统代理时,同一个网页里的普通请求经 Clash Verge Rev 交给了节点,同一时刻的 STUN 请求却直接从本机发出,Clash Verge Rev 和节点都没收到它(Linux 上实测)。所以检测页上「你的出口」是节点,WebRTC 那一栏是你本地的地址。背后是两件事:Chrome 默认允许 WebRTC 不经代理直接用 UDP(按源码),系统代理本来就不代理 UDP(按官方文档)。Firefox 157 只开系统代理时也一样(Linux 上实测)。\n\n打开虚拟网卡模式后,TCP、UDP 都交给 Clash Verge Rev。实测网页的普通请求和 STUN 请求都经节点,系统代理同时开着也一样;网页拿到的公网地址换成了节点那一侧的,原来那个本地 IPv6 地址也不再出现。实验里节点和浏览器在同一台机器上,地址看不出区别,「经节点」是按连接记录和节点日志判断的;节点在远端时网页拿到的应是节点的出口地址(按连接路径推断,没有用远端节点实测)。\n\n进了 Clash Verge Rev 之后走节点还是直连,由「规则」「全局」「直连」和规则本身决定,见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)。实验里只有一条兜底规则、它走节点。所以「开了 TUN、规则模式下还泄漏,切到全局就不泄漏」可以这样理解:规则模式下这条 UDP 可能被某条规则或兜底送去了直连,全局模式下所有流量都从你手选的那一项出去(作者说明;规则把它送去直连的情形没有实测)。\n\n## 在 Clash Verge Rev 里怎么查\n\n1. **只开了系统代理的**:在「设置」页打开「虚拟网卡模式」(开关打不开、弹出要装服务的对话框,见 `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working);和系统代理的区别见 `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)),刷新检测页再测。\n2. **开着虚拟网卡还出现**:打开「连接」页,刷新检测页后,在过滤框里输入 STUN 服务器的名字找那条连接。实测用的是 Google 的公共 STUN:过滤 `stun` 后「活跃」里有 `stun.l.google.com:19302`,「规则」是 `Match`,「链路」是「节点选择 / 示例节点 A」(组名 / 节点名),浏览器关掉后它还在列表里留了一阵;只开系统代理时过滤不出任何一条(Linux 上实测)。检测网站用的 STUN 服务器不一定是这一台(作者说明)。链路最后一段是 `DIRECT`,就是规则让它直连了;想让它走节点,按 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule) 给它加一条规则(作者建议)。也可以在「代理」页临时切到「全局」、选一个节点再测,**测完切回「规则」**(作者建议)。\n3. **浏览器自己的开关**:Chrome 的管理员策略 `WebRtcIPHandling` 设成 `disable_non_proxied_udp` 后,本站只配了 STUN 的测试页一个候选也没收集到,.local 名字和公网地址都没有,只开系统代理、只开虚拟网卡都一样(网页另配 TURN 中继的情形没有测);设成「只用连公网的那张网卡」那个取值,只是不给 .local 名字,公网地址照样交给网页(Linux 上的 Chrome for Testing 154 实测,与源码一致)。前者可能让网页里的视频通话、点对点传输连不上(作者说明;实验没配中继服务器,这种情形没有测)。同名的命令行参数 `--force-webrtc-ip-handling-policy` 在这个版本上没有效果(实测)。实测只用了 Chrome for Testing 的策略目录,正式版 Chrome 放在哪、效果是否相同没有测;各系统设管理员策略的办法不同,本条不展开。\n\n**局域网地址**:按源码,Chrome 默认把本机网卡地址换成随机的 .local 名字;网页拿到了你的麦克风或摄像头权限(比如你在这个网站上开过视频会议),或者管理员策略放行了这个网站时,才给真实的局域网地址。实测没有这些权限的网页,Chrome 和 Firefox 给的都是 .local 名字;授权以后的情形没有测。\n\n## 要不要管\n\n- 检测网站说泄漏,不等于代理没在工作:网页本身仍是经节点打开的(作者说明)。只有你在意「网页能看到你本地的公网地址」时,才需要按上面处理(作者建议)。\n- 某个网站提示地区不支持、反复要人机验证时,WebRTC 只是客户端这一侧能查的一项,其余几项见 `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)。按上面查完、检测页上本地地址不再出现还是不行:检测页干净只代表它自己用的那台 STUN 服务器,那个网站可能用别的、被规则分到直连,这一点仍无法确认(作者说明),放心不下就设上面的浏览器开关;网站本身的连接也走对了出口的,换个节点试,或者问那个网站的服务方(作者建议)。本站不评价哪里的节点能用。\n\n## 这些结论是怎么核对的\n\n按 Chromium 154 的源码(WebRTC 的 IP 处理策略与默认值、局域网地址的隐藏、麦克风与摄像头权限的作用)和 Clash Verge Rev 官方术语页(系统代理不能代理 UDP,虚拟网卡模式接管 TCP 与 UDP)核对;在 Linux 虚拟机(Ubuntu 24.04 arm64)里用 Clash Verge Rev 2.5.6、Chrome for Testing 154 与 Firefox 157 实测了只开系统代理、只开虚拟网卡、两个都开时网页拿到的地址,STUN 请求经不经 Clash Verge Rev 和节点,以及 Chrome 的管理员策略。限制:节点和浏览器在同一台机器上;只有一条兜底规则;没有访问真实的检测网站;Chrome for Testing 不是正式版 Chrome,正式版 Chrome、Edge、手机浏览器以及 Windows、macOS 都没有测。文中「作者说明」「作者建议」指本站作者的解释与建议,不是浏览器或 Clash Verge Rev 官方的说法。\n\n## 验证\n- **webrtc-leak-check**(人):打开「虚拟网卡模式」,确认「代理」页顶部是「规则」,刷新同一个检测网站再测一次。\n 预期:WebRTC 那一栏不再出现你本地运营商的公网地址,IPv4、IPv6 都看;.local 结尾的名字还在是正常的。还在的,按本条「开着虚拟网卡还出现」那一段去「连接」页看那条 UDP 连接走了哪里。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 的系统代理与虚拟网卡模式(TUN)的区别:要不要开 TUN`(见 tun-vs-system-proxy)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash Verge Rev 虚拟网卡模式(TUN)开不了、服务装不上、开了没反应或一开就断网`(见 tun-mode-not-working)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `检测网站说 DNS 泄漏:Clash Verge Rev 里查清是谁在替你解析域名,TUN 下 198.18 开头属正常`(见 dns-leak-detected)\n\n## 来源\n- chromium-v154-0-8037-95:https://github.com/chromium/chromium/tree/05d469856e75794131cc2e5d9b2f6b6f10a70388(components/policy/resources/templates/policy_definitions/WebRtc/WebRtcIPHandling.yaml L1-L16、L26-L40(WebRTC IP 处理策略:默认值 default 用全部网卡;另一取值只用连公网的那张网卡、不用私有地址;disable_non_proxied_udp 只在代理支持时用 UDP,否则改走 TCP);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h L15-L32(四个取值的注释:disable_non_proxied_udp 只用 TCP,也不暴露本机地址);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc L1090-L1111(default 允许不经代理的 UDP;disable_non_proxied_udp 不允许)、L1057-L1062 与 L1121-L1124(麦克风或摄像头权限有一项给了,才收集本机网卡地址);third_party/blink/renderer/platform/p2p/port_allocator.cc L42-L46(不允许不经代理的 UDP 时,同时关掉 UDP 与 STUN);third_party/blink/common/features.cc L2466(用 mDNS 名字隐藏本机地址,默认打开);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/third_party/blink/renderer/platform/p2p/filtering_network_manager.cc L38-L46、L105-L109、L122-L129、L141-L161(没拿到麦克风或摄像头权限时不列出网卡,用 mDNS 名字代替本机地址);https://github.com/chromium/chromium/blob/05d469856e75794131cc2e5d9b2f6b6f10a70388/components/policy/resources/templates/policy_definitions/Miscellaneous/WebRtcLocalIpsAllowedUrls.yaml L2-L5(本机地址在 WebRTC 候选里用 mDNS 主机名隐藏))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理(不能代理 UDP 流量);Tun 模式(拦截和处理所有流量 TCP/UDP,重定向到本地的代理程序);规则模式、全局模式(全局:所有流量均从手工选定的代理节点或本地网络出去))\n- exp-webrtc-and-single-site-gui-linux-2026-10-02:验证记录(内部存档,未公开)\n\n最后修订:1474749 2026-10-02\n"},"what-are-routing-rules":{"id":"what-are-routing-rules","type":"concept","title":"分流规则:按顺序决定直连还是走代理","aliases":["分流规则","分流的意思","路由规则","mihomo 路由规则","分流依据","规则从上到下匹配","规则顺序与优先级","规则命中第一条就停","订阅里的分流规则","规则里的策略组与出口","DOMAIN 完整域名规则","DOMAIN-SUFFIX 域名后缀规则","DOMAIN-KEYWORD 关键字规则","GEOSITE cn 规则","GEOIP CN 规则","IP-CIDR 规则","MATCH 兜底规则","RULE-SET 规则集","rule-providers 规则集合","国内网站直连国外走代理","国内直连国外代理的分法"],"primary_topic":"routing-rules","topics":["routing-rules","basics"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","flclash","clash-meta-android"],"os":"any","panel":"any"},"freshness_mode":"source-monitored","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 分流规则:按顺序决定直连还是走代理\n\n主题:`基础概念` › `分流规则与代理模式`\n适用:clash-verge-rev/clash-party/flclash/clash-meta-android / any / any\n最后验证:2026-09-27\n标记:信息说明\n\n> 在 mihomo 内核(Clash 系客户端)的规则模式下,每个连接按分流规则决定去向。分流规则是一张从上往下读的清单,每条写「满足什么条件就交给哪个出口」,出口可以是 DIRECT(直连)、REJECT(拒绝)、某个节点或策略组。连接按顺序比对,一般命中第一条就用它(UDP 遇到不支持 UDP 的出口、出口是 PASS 时继续往下);最后的 MATCH 接住前面都没命中的连接。「国内直连、国外走代理」来自订阅写的 GEOSITE cn、GEOIP CN → DIRECT,内核本身不带规则。\n\n分流规则是一张**从上往下读的清单**,每条写「满足什么条件,就交给哪个出口」。规则模式下,每个新连接都拿去和清单逐条比对,**命中第一条就按它走,后面的不再看**(少数例外见下文);最后一条 `MATCH` 不看条件,接住前面都没命中的连接。\n\n本条讲 Clash 系客户端(Clash Verge Rev、FlClash、Clash Party 等,用的都是 mihomo 内核,见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept))的规则写法;用 v2rayN、v2rayNG 的看 `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)。\n\n「出口」就是连接最后交给谁:`DIRECT`(直连,用你自己的网络)、`REJECT`(拒绝)、某个节点,或者某个策略组(把几个节点编成一组;你在代理页里选节点,通常就是在选某个组里的一项)。交给策略组时,具体用哪个节点另由那一组决定,手动选择的组就用你在组里选中的那一项。\n\n「国内网站直连、国外走代理」来自订阅或你自己的配置写的规则,常见写法是把 `GEOSITE,cn`、`GEOIP,CN` 交给 `DIRECT`;mihomo 内核本身不带任何规则。订阅里那串 `DOMAIN-SUFFIX`、`GEOIP`、`MATCH` 各看什么,见下文表格。\n\n**下一步**:规则只在规则模式下起作用,先确认模式(Clash Verge Rev 见 `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes);Clash Party 看侧栏最上面那一排选的是不是「规则」,见 `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run));Clash Verge Rev 里某个网站走错了路,见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute);想给某个网站单独加一条,Clash Verge Rev 见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule),Clash Party 见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)。\n\n## 从上往下,命中第一条就停\n\n官方文档的说法是「规则将按照从上到下的顺序匹配,列表顶部的规则优先级高于其底下的规则」。实测把 `MATCH` 从最后挪到第一条,原本分别命中完整域名、域名后缀规则而直连的两个网站,都被 `MATCH` 截走、走了节点。所以 `MATCH` 必须放在最后,你自己加的规则也要排在它前面才轮得到。\n\n「命中就停」有两种例外:\n\n- 连接是 UDP,而命中的出口不支持 UDP(例如没写 `udp: true` 的 ss 节点),跳过这条继续往下。所以同一个目标,TCP 连接(比如网页)和 UDP 连接(比如语音、游戏常用的)可能命中不同的规则。\n- 出口是 `PASS`(或策略组最终选到 `PASS`),也跳过这条继续往下。\n\n一条都没命中、清单里又没有 `MATCH` 时,连接走 `DIRECT`,日志里没有命中的规则名。这一切只在规则模式下发生:全局模式直接用 `GLOBAL` 组,直连模式直接用 `DIRECT`,内核不看规则。\n\n## 每条规则交给谁:出口\n\n一条规则的格式是「类型,内容,出口」,`MATCH` 只写出口。出口可以是:\n\n- 内置出口:`DIRECT` 直连;`REJECT` 拒绝;`REJECT-DROP` 静默丢弃;`PASS` 见上一节。\n- 某个节点。\n- 某个策略组。策略组里可以放节点,也可以放别的策略组。手动选择的组用你选中的那一项;没选过、配置里也没用 `default-selected` 指定时,默认用组里第一个。实测兜底交给策略组时,日志写成「组名[节点名]」,节点端也确实收到了连接。\n\n**这对你意味着**:规则只决定交给哪个出口;命中的是策略组时,组里用哪个节点另由组决定。命中的规则对、用的节点不对,要改的是组里的选择,不是规则。\n\n出口名必须和配置里的节点、策略组、内置出口**逐字一致,区分大小写**:实测写成配置里没有的组名、或把 `DIRECT` 写成小写,整份配置都被拒绝,报 `proxy [名称] not found`;规则类型写小写却能通过。\n\n## 几种常见类型各看什么\n\n| 类型 | 看什么 | 实测 |\n|---|---|---|\n| `DOMAIN` | 完整域名 | 子域名不算 |\n| `DOMAIN-SUFFIX` | 域名后缀,必须是完整的一段:`google.com` 匹配 `www.google.com` 和 `google.com`,不匹配 `content-google.com` | 多级子域名算,字面上以它结尾但不是一整段的不算 |\n| `DOMAIN-KEYWORD` | 域名里包含这个词 | 按包含命中 |\n| `GEOSITE` | 域名在地理数据里属于哪个分类 | `www.baidu.com` 命中 `cn` |\n| `GEOIP` | 目标 IP 所属国家代码 | 直接访问一个国内地址、或域名经 hosts 指到它,都命中 `CN` |\n| `IP-CIDR` | 目标 IP 在这个地址范围里 | 地址在范围内即命中 |\n| `RULE-SET` | 引用的规则集里有一条满足就算,见下文「规则集」 | 命中后走引用它的规则写的出口 |\n| `MATCH` | 不看条件,所有连接都算 | 接住前面都没命中的连接 |\n\n实测一列除 `IP-CIDR` 外出自。\n\n`GEOIP`、`IP-CIDR` 看的是 IP:连接的目标是域名时,内核会先把它解析成 IP 再比对;规则带上 `no-resolve` 就跳过这次解析,但 hosts 里写了的域名、或更早的规则已经解析过的,仍会按 IP 匹配到它。反过来,程序直接连 IP、没有域名时,域名类规则一条也匹配不到(本站实测时没开域名嗅探)。`GEOIP,LAN` 是特殊写法,不查地理数据,匹配局域网、本机这类地址。\n\n**这对你意味着**:命令行 mihomo 的日志里,命中的规则写成类型加内容,例如 `Domain(…)`、`DomainSuffix(…)`、`DomainKeyword(…)`、`GeoSite(cn)`、`GeoIP(cn)`、`RuleSet(…)`、`Match`;规则里写的是大写 `CN`,日志里的国家代码显示为小写。在图形客户端的连接页里怎么看命中的规则,Clash Verge Rev 见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute),Clash Party 见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override) 最后那一步的核对。\n\n## 为什么常见的是「国内直连、国外走代理」\n\n内核默认就是规则模式,但它自己不带任何规则,规则都是订阅或你的配置写进去的。订阅常见的写法是把 `GEOSITE,cn`、`GEOIP,CN` 交给 `DIRECT`,其余交给走代理的策略组(作者说明);官方文档的示例里也有 `GEOIP,CN,DIRECT` 这一条。\n\n所以「国内网站」其实是「地理数据把它分进了 cn」:`GEOSITE` 的分类部分参考 v2fly 的域名列表,内核默认从 MetaCubeX/meta-rules-dat 下载地理数据。某个网站在不在 cn 分类、某个 IP 判成哪个国家,随地理数据的版本变化;按上面那种写法推算,不在 cn 分类、IP 也没被判成 CN 的国内网站会一路落到 `MATCH`,走代理。\n\n**这对你意味着**:某个国内网站走了代理,先看它命中的是不是 `Match`,Clash Verge Rev 的排查见 `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute);要给它单独加一条直连规则,Clash Verge Rev 见 `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule),Clash Party 见 `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)。\n\n## 规则集:另外维护的一批条件\n\n规则集(`rule-providers`)是单独存放的一批条件,可以从网上下载、按设定的秒数定时更新,也可以是本地文件或直接写在配置里;按内容分成域名、IP 段、以及混合各种类型的 `classical` 三类。规则集里的每一行**不写出口**,出口写在引用它的那条 `RULE-SET` 规则上。实测 `classical` 规则集里那一行没写出口,命中后走的正是引用它的规则写的 `DIRECT`,日志显示为 `RuleSet(集合名)`。\n\n**这对你意味着**:订阅里一行 `RULE-SET` 可能代表很多个域名或 IP 段;看到连接命中 `RuleSet(…)`,具体是哪个条件要到那个规则集里找。\n\n## 怎么核对的\n\n规则的含义按 mihomo 官方文档与 v1.19.31 源码核对,匹配顺序、各类型、规则集与出口名报错在命令行 mihomo v1.19.31 上实测过。2026-09-27 复核:Clash Verge Rev 2.5.6 的 Linux arm64 安装包自带的内核仍是 mihomo v1.19.31(与官方发布文件逐字节相同),所以本条内容不用改。\n\n- 规则匹配没有在图形客户端里实测;除上面这一个安装包外,没有核对各客户端内置的内核版本,它们对订阅规则的改写也可能不同。\n- 地理数据只测了 2026-09-23 那一版的几个样本;IP 类规则用到的 IP 都来自本机 hosts 或目标本身,没有测需要真实 DNS 解析的情况。\n- UDP、`PASS` 这两种例外只按文档与源码,没有实测。\n\n\n## 本文术语\n- **节点**:一台替你转发流量的代理服务器;订阅里一般有很多个,你在客户端里选一个来用。\n\n## 相关条目\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 分流走错:国内网站走了代理、该代理的直连、全局模式不走代理、Telegram 连不上`(见 rules-misroute)\n- `Clash Verge Rev 切到全局模式反而上不了网:规则、全局、直连三种模式与全局列表选哪一项`(见 proxy-modes)\n- `Clash Verge Rev 自定义规则:让某个网站或软件单独直连、单独走代理`(见 cvr-add-custom-rule)\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `DNS 与 fake-ip:域名由谁解析、198.18 假地址、虚拟网卡的 DNS 劫持、要不要自己配 DNS`(见 dns-in-proxy-clients)\n- `Karing 自定义分流:让某个网站或应用直连、走代理或走指定节点,规则不生效怎么查`(见 karing-custom-routing)\n- `v2rayN 与 v2rayNG 的路由预设:全局、绕过大陆、黑名单怎么切,PAC 模式去哪了`(见 v2rayn-routing-presets)\n- `第一次用 Clash Meta for Android(安卓):导入订阅、选中配置、允许 VPN、选节点`(见 clash-meta-android-first-run)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `覆写与编辑规则:自己加规则,覆写不生效怎么办`(见 clash-party-override)\n\n## 来源\n- metacubex-wiki-rules:https://wiki.metacubex.one/config/rules/(开头示例(含 GEOIP,CN,DIRECT 与末尾 MATCH);优先级(从上到下匹配、UDP 遇到不支持 UDP 的节点继续向下);DOMAIN、DOMAIN-SUFFIX、DOMAIN-KEYWORD、GEOSITE、IP-CIDR、GEOIP、RULE-SET、MATCH 各节;附加参数 no-resolve(跳过 dns 解析;更早的匹配已触发解析时,仍会匹配到带 no-resolve 的目标 IP 类规则))\n- metacubex-wiki-general:https://wiki.metacubex.one/config/general/(运行模式(rule 规则匹配、global、direct,默认为规则模式))\n- metacubex-wiki-proxy-groups:https://wiki.metacubex.one/config/proxy-groups/(通用字段 proxies(引入出站代理或其他策略组)、default-selected(默认选择的节点;为空或节点名不存在时默认选组里第一个节点))\n- metacubex-wiki-built-in:https://wiki.metacubex.one/config/proxies/built-in/(预置出站:DIRECT、REJECT、REJECT-DROP、PASS)\n- metacubex-wiki-rule-providers:https://wiki.metacubex.one/config/rule-providers/(type(http / file / inline)、interval(更新时间,单位为秒)、behavior(domain / ipcidr / classical)、format)\n- metacubex-wiki-rule-providers-content:https://wiki.metacubex.one/config/rule-providers/content/(classical(支持路由规则的全部类型,rule-set / sub-rule 除外,每行不写出口)、domain、ipcidr)\n- metacubex-core-v1-19-31:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go L331-L334(hosts 里有的域名,匹配规则前先填好 IP)、L401-L408(direct 模式用 DIRECT、global 模式用 GLOBAL、其余才调用 match)、L654-L710(match:逐条遍历、命中即返回;L671-L675 出口层层展开后是 PASS 则继续;L684-L687 UDP 连接遇到不支持 UDP 的出口则继续;L709 全部没命中返回 DIRECT);config/config.go L497(默认 rules 为空列表)、L1096-L1127(parseRules:不写出口 format invalid、出口不存在 proxy [名] not found、规则集未定义 rule set [名] not found)、L583-L586(地理数据默认下载地址为 MetaCubeX/meta-rules-dat 的 latest 发布);rules/common/base.go L47-L76(类型转大写、MATCH 只有出口);rules/common/domain.go、domain_suffix.go、domain_keyword.go(== 比较、HasSuffix(\".\"+后缀) 或相等、Contains);rules/common/geoip.go L36-L38(未带 no-resolve 时先解析)、L48-L50(LAN);rules/provider/rule_set.go L23-L35(出口取引用它的那条规则))\n- exp-what-are-routing-rules-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-rules-misroute-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- metacubex-wiki-proxies:https://wiki.metacubex.one/config/proxies/(出站代理 › 通用字段:proxies(代理节点,内容为数组);name、type(必须,代理节点类型)、server(代理节点服务器)、port;侧栏「出站代理」下的 Shadowsocks、VMess、VLESS、Trojan、Hysteria2、TUIC、WireGuard 等各协议页。这是 mihomo 内核的文档)\n- cvr-guide-quickstart:https://www.clashverge.dev/guide/quickstart.html(打开代理(或开启 Tun 模式))\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(Meta 内核、Alpha 内核、CFW、CFA 四节;UA 一节(订阅服务商按 UA 下发不同配置、返回 YAML 格式的 mihomo 配置即正确);服务模式一节(开了服务模式时由服务进程拉起内核))\n\n最后修订:107dc7f 2026-10-02\n"},"when-to-update-subscription":{"id":"when-to-update-subscription","type":"faq","title":"订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机","aliases":["订阅自动更新","订阅的更新间隔","订阅多久更新一次","自动更新已禁用","固定更新间隔","profile-update-interval"],"primary_topic":"subscription","topics":["subscription","clash-verge-rev","clash-party","v2rayn","v2rayng","flclash"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn","v2rayng","flclash"],"os":"any","panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-30","freshness":"current","markdown":"# 订阅会不会自动更新、多久更新一次:各客户端默认设置与手动更新时机\n\n主题:`基础概念` › `订阅`\n适用:clash-verge-rev/clash-party/v2rayn/v2rayng/flclash / any / any\n最后验证:2026-09-30\n\n**问:** 订阅要不要自己手动更新?客户端会不会自动更新、默认多久一次?服务方换了节点、节点突然全部连不上时要不要点更新?\n\n**答:** 看客户端(按各自当前正式版的源码):FlClash 从链接(URL)导入的默认每 24 小时自动更新;Clash Verge Rev、Clash Party 默认只在服务方于订阅里指定了间隔时才自动更新;v2rayN、v2rayNG 默认不自动更新。想省事就在订阅的编辑页打开自动更新,一天一次就够。服务方通知换了节点、节点突然全部超时或连不上时,先手动更新一次。\n**要看你用的客户端**(按五个客户端当前正式版的源码核对,版本见下一节):\n\n- **FlClash**:从链接(URL)导入的,默认开着自动更新,每 24 小时一次;从文件导入的不会自动更新。\n- **Clash Verge Rev**、**Clash Party**:服务方在订阅里指定了更新间隔的,按那个间隔自动更新;服务方没指定、你也没填,就**不会自动更新**。\n- **v2rayN**、**v2rayNG**:默认不自动更新,要自己在订阅设置里打开。\n\n**这对你意味着**:拿不准自己的会不会自动更新,就当它不会。想省事,按下一节在订阅的编辑页打开自动更新,间隔填 1440 分钟(一天一次)就够了(作者建议:FlClash、v2rayNG 打开自动更新后默认就是 1440 分钟,Clash Verge Rev 填得比这个小会提示间隔过短)。\n\n遇到下面几种情况,**先手动更新一次**,不用等自动更新(作者建议):\n\n- 服务方通知换了节点、换了线路,或者让你更新订阅;\n- 节点突然全部超时、全都连不上;\n- 客户端里的节点和服务方网页上列的对不上。\n\n## 各客户端在哪里设\n\n- **Clash Verge Rev**(2.5.6):「订阅」页右键订阅卡片 →「编辑信息」→「更新间隔」,单位是分钟;同一个窗口里的「允许自动更新」默认是开的。填了小于 1440 的数,界面会提示间隔过短会频繁触发内核重载、中断现有连接。设好后点一下卡片上那段更新时间文字,显示「下次更新 …」就是排上了,显示「自动更新已禁用」就是没有设上。\n- **Clash Party**(2.0.3):订阅卡片右上角的 ⋮ →「编辑信息」,「自动更新」保持打开(默认开),在「更新间隔」里填分钟数(也可以填 Cron 表达式)。服务方指定了间隔的,每次更新都会用服务方的值覆盖你填的;想用自己的,把「固定更新间隔」打开。\n- **v2rayN**(7.24.9):「订阅分组」→「订阅分组设置」→ 选中订阅点「编辑」。「自动更新间隔 (分钟)」默认是 0,0 就是不自动更新,改成大于 0 的数。\n- **v2rayNG**(2.2.6):左上角三道杠 →「订阅分组设置」→ 点订阅那一行的编辑按钮,打开「启用自动更新」(默认关)。「自动更新间隔」打开后默认 1440 分钟,最少 15 分钟。\n- **FlClash**(v0.8.98):「配置」页,配置卡片的菜单 →「编辑」。「自动更新」默认开,「自动更新间隔(分钟)」默认 1440。\n\n## 手动更新在哪、更新之后怎么办\n\n手动更新:Clash Verge Rev 右键订阅卡片 →「更新」;Clash Party 点订阅卡片上的刷新图标;v2rayN 点「订阅分组」→「更新全部订阅 (不通过代理)」;v2rayNG 在「订阅分组设置」页点右上角的「更新订阅」;FlClash 点配置卡片菜单里的「同步」。\n\n- 更新时报错、下载不下来:用 Clash Verge Rev 的看 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed);其它客户端先登录服务方面板,确认订阅没过期、流量没用完(`订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch) 的第一步)。\n- 更新成功了,节点却一个都没有:看 `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)。\n- 节点都在,但全部超时、连不上:看 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout),先分清是这台设备的问题还是服务方的问题。\n\n## 这些结论是怎么核对的\n\n按五个客户端 2026-09-30 时的最新正式版源码核对(钉到的版本见各行括号),没有在界面里设过间隔,也没有等过一次自动更新。实测过的只有两处:v2rayNG 2.2.6 的订阅编辑页上「启用自动更新」默认关、间隔一栏写着最少 15 分钟(安卓模拟器);Clash Verge Rev 2.5.2 在测试订阅没有指定间隔时,导入的新订阅没有更新间隔(macOS)。「服务方指定间隔」指订阅响应里带的 `profile-update-interval`(单位小时);服务方给不给、给多少,由服务方决定,本站未核实。\n\n## 验证\n- **when-to-update-subscription-manual-update**(人):手动更新一次订阅:Clash Verge Rev 在「订阅」页右键订阅卡片点「更新」;Clash Party 点订阅卡片上的刷新图标;v2rayN 点「订阅分组」→「更新全部订阅 (不通过代理)」;v2rayNG 在「订阅分组设置」页点右上角的「更新订阅」;FlClash 在「配置」页点配置卡片菜单里的「同步」。然后选一个节点,打开一个平时打不开的网页。\n 预期:没有弹出更新失败的提示,节点列表里有节点,网页能正常打开。更新时报错、更新后一个节点都没有、或者节点全部超时的,都算没通过:按正文「手动更新在哪、更新之后怎么办」一节找对应的条目。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `订阅导入成功却没有节点、或报格式错误:订阅格式和客户端对不上`(见 subscription-format-mismatch)\n- `订阅链接:客户端从这个网址拉取节点和配置,外传就交出了节点连接密码`(见 subscription-concept)\n\n## 来源\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/pages/profiles.tsx L230(粘贴链接导入时不带任何选项);src-tauri/src/config/prfitem.rs L246-L248(更新间隔只取你填的值)、L335-L344(没填时读服务方的 profile-update-interval 响应头,小时换算成分钟,也没有就不设)、L529-L531(允许自动更新缺省为开);src-tauri/src/core/timer.rs L214-L228(只给间隔大于 0 且允许自动更新的订阅排定时任务);src/components/profile/profile-viewer.tsx L36-L37、L49-L61(新建表单没有默认间隔)、L342-L379(更新间隔低于 1440 分钟时显示提示);src/components/profile/profile-item.tsx L186-L193、L774-L801(点卡片上的更新时间切换显示下次更新或「自动更新已禁用」);src/locales/zh/profiles.json L76、L84、L98-L107、L123、L127、L140(「编辑信息」「更新」「下次更新」「自动更新已禁用」「更新间隔」「允许自动更新」、间隔过短的提示原文))\n- clash-party-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(src/main/config/profile.ts L475-L494(新订阅间隔缺省 0、自动更新缺省开)、L570-L575(服务方给了 profile-update-interval 且没开固定更新间隔时,用它覆盖间隔);src/main/core/profileUpdater.ts L71-L73(没开自动更新或间隔为 0 不排定时任务)、L114-L150(启动时更新订阅也只作用于这些订阅);src/renderer/src/pages/profiles.tsx L159-L166(粘贴链接导入不带间隔)、L302-L313(更新全部订阅);src/renderer/src/components/profiles/profile-item.tsx L88-L89(菜单里的「编辑信息」)、L300-L321(卡片上的刷新按钮);src/renderer/src/components/profiles/edit-info-modal.tsx L210-L285(自动更新、更新间隔、固定更新间隔);src/renderer/src/locales/zh-CN.json L81、L571、L592、L605-L612)\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Models/Entities/SubItem.cs L23(AutoUpdateInterval 没有初值,即 0);v2rayN/ServiceLib/ViewModels/SubSettingViewModel.cs L61-L67(「添加」新建的是空白订阅);v2rayN/ServiceLib/Manager/TaskManager.cs L25-L31、L89-L118(每分钟检查一次,只更新间隔大于 0 且到期的订阅);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L441-L449、L552-L553、L990-L991(「订阅分组」「订阅分组设置」「更新全部订阅 (不通过代理)」「编辑」「自动更新间隔 (分钟)」))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/dto/entities/SubscriptionItem.kt L9-L10(autoUpdate 缺省 false,updateInterval 1440 分钟);handler/SubscriptionUpdater.kt L47-L54、L65-L72(只给开了自动更新的订阅排任务)、L105-L108(间隔不小于 AppConfig.kt L48 的 15 分钟);ui/SubEditActivity.kt L59-L60、L123-L142;ui/SubSettingActivity.kt L74-L78(「更新订阅」更新全部订阅),同目录下这一页列表的适配器 L30-L35(每一行显示上次更新时间、有编辑按钮);res/values-zh-rCN/strings.xml L27、L274、L304、L310、L315-L316)\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(lib/models/profile.dart L52-L54、L66-L74(自动更新缺省开,间隔取 defaultUpdateDuration)、L146(文件配置不自动更新);lib/common/constant.dart L67(defaultUpdateDuration = 1 天);lib/providers/actions/profiles.dart L42-L57(跳过文件配置,到期才更新);lib/bootstrap.dart L150-L152、lib/application.dart L121-L128(启动时和之后每 20 分钟检查一次);lib/views/profiles/edit.dart L234-L242(编辑页的自动更新开关与间隔);lib/views/profiles/profiles.dart L76-L82、L333-L353(右上角更新按钮、卡片菜单里的「编辑」「同步」);lib/l10n/intl/messages_zh_CN.dart L157-L158、L293、L796、L839)\n- exp-v2rayng-first-run-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-cvr-add-custom-rule-gui-2026-09-23:验证记录(内部存档,未公开)\n\n最后修订:304ec38 2026-09-30\n"},"where-are-logs":{"id":"where-are-logs","type":"howto","title":"日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG","aliases":["Clash Verge 日志目录","Clash Verge Rev 日志文件","latest.log","sidecar_latest.log","service_latest.log","Clash Verge 导出日志","Clash Party 日志目录","mihomo party 日志","clash-party 日志文件","core 日志文件","v2rayN guiLogs","v2rayN 日志","v2rayN 信息栏 复制所有","v2rayN 启用日志存到文件","v2rayN 打开存储所在的位置","运行 Core 失败 看日志","FlClash 日志捕获","FlClash 导出日志","FlClash 没有日志页面","v2rayNG Logcat","v2rayNG 分享日志","内核日志 应用日志","发日志求助 遮住订阅链接","日志等级 Debug Info Warning"],"primary_topic":"troubleshooting","topics":["troubleshooting","clash-verge-rev","clash-party","v2rayn","flclash","v2rayng"],"intents":[],"applicability":{"client":["clash-verge-rev","clash-party","v2rayn","flclash","v2rayng"],"os":["windows","macos","linux","android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-27","freshness":"current","markdown":"# 日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG\n\n主题:`排错`\n适用:clash-verge-rev/clash-party/v2rayn/flclash/v2rayng / windows/macos/linux/android / any\n最后验证:2026-09-27\n\n日志分两种:客户端自己的**应用日志**(拉取订阅、界面操作、检查更新出错看它)和**内核日志**(mihomo、Xray、sing-box 写的,节点连不上、测速失败看它)。五个客户端的入口:\n\n- **Clash Verge Rev**:托盘图标菜单「打开目录 → 日志目录」。应用日志是 `logs/latest.log`,内核日志是 `logs/sidecar/sidecar_latest.log`(没开服务模式时;开了见下面 Clash Verge Rev 一节的表)。\n- **Clash Party**:托盘「打开目录 → 日志目录」,按天分 `clash-party-日期.log`(应用)和 `core-日期.log`(内核)。\n- **v2rayN**:内核日志默认只显示在主界面「信息」栏,用「复制所有」;应用日志在 `guiLogs` 文件夹,从「设置 → 打开存储所在的位置」进去。\n- **FlClash**:日志入口默认隐藏,先在「工具 → 应用程序」打开「日志捕获」,再复现问题。\n- **v2rayNG**:侧边栏「Logcat」,打开后先下拉刷新,顶部工具栏或右上角三个点里有「分享日志」。\n\n**贴出去之前先遮住订阅链接和服务器地址**:实测 FlClash 添加订阅时、Clash Verge Rev 2.5.2 用一键导入链接而订阅服务器连不上时,日志里都出现了带 token 的完整订阅链接;节点连接超时的那一行会写出服务器的 IP 和端口。怎么遮见第 5 步。实测的节点写的是 IP;节点写成域名时这一行是域名还是 IP,没有验证。\n\n报错那句话是什么意思,本条不解释,拿原文去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查;导入订阅失败按 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed) 排查。下面按客户端写清楚文件在哪、哪些东西不在文件里。\n\n## Clash Verge Rev\n\n**日志目录**是数据目录下的 `logs`。macOS 上是 `~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev/logs`(2.5.2 实测);Windows 上是 `%APPDATA%\\io.github.clash-verge-rev.clash-verge-rev\\logs`(Windows 上实测,也是官方 FAQ 写的位置);Linux 上是 `~/.local/share/io.github.clash-verge-rev.clash-verge-rev/logs`(2.5.6 实测,`logs/latest.log` 和 `logs/sidecar/sidecar_latest.log` 都在这里;按源码,设置了 `XDG_DATA_HOME` 时在它下面)。托盘「打开目录」子菜单一共五项:配置目录、内核目录、日志目录、应用日志、内核日志(实测;点「日志目录」实际打开的是哪个文件夹没有核对)。\n\n里面有这几种文件:\n\n| 文件 | 是什么 | 什么时候看 |\n|---|---|---|\n| `logs/latest.log` | 应用日志 | 导入、更新订阅失败(实测报错写在这里) |\n| `logs/sidecar/sidecar_latest.log` | 内核日志(没开服务模式时) | 节点连不上、规则不对(实测 dial 失败行在这里) |\n| 服务目录里的 `service_latest.log` | 内核日志(开了服务模式时) | 同上。**不在数据目录里**,由服务自己写在它的目录:Linux 是 `/var/lib/clash-verge-service/users/<uid>/logs/`(`<uid>` 是你账户的数字编号,终端里 `id -u` 可以看),只有 root 能读(2.5.6 实测);macOS 是 `/Library/Application Support/clash-verge-service/users/<uid>/logs/`(按服务组件 v2.7.4 源码),Windows 是 `%ProgramData%\\clash-verge-service\\users\\<一串哈希>\\logs\\`,这个目录只有 SYSTEM 和管理员能打开,普通身份先用托盘「打开目录 → 内核日志」拿当前副本,要翻旧日志得以管理员身份查看(Windows 上实测)。数据目录里的 `logs/service/service_latest.log`(macOS 是 `service-logs/service/`)只是点托盘「打开目录 → 内核日志」时从服务取来的当前这份的副本,没有轮转出去的旧文件(按源码;托盘这一步 Windows 上实测);Linux 实测平时这个文件夹是空的 |\n| `logs/startup.log` | 启动失败的原因 | 启动时弹出「Clash Verge startup failed」对话框、程序没打开。按 v2.5.6 源码,对话框里就写着原因和这个文件的完整路径;只有启动最早那一步(检查是否已经开着一个)出错时才写这里,别的启动问题不在这里,所以平时没有这个文件是正常的 |\n\n**文件名带日期的是旧日志**:每次启动,上一次的 `latest.log` 会被改名成 `日期_时间.log`,内核日志(没开服务模式时)改名成 `sidecar_日期_时间.log`,再新建一份 `latest`(2.5.2 实测)。按 v2.5.5 源码,文件超过设定大小也会这样轮转,默认单个 128 KiB、最多留 8 个,「杂项设置」里的「应用日志最大大小」「应用日志最大数量」可以改。杂项设置里另有「自动清理日志」(默认 7 天),但按 v2.5.5 源码,它从文件名里读日期时只认「年-月-日」这种旧格式,认不出现在这种带时分秒的文件名,也不去扫 `sidecar` 文件夹,所以真正限制旧日志数量的是上面的按数量轮转。所以:刚出的错看 `latest`;重启过、或者在 `latest` 里找不到,就看文件名里时间最新的那个;很久以前的日志多半已经被轮转掉了。\n\n**左侧「日志」页不是文件**:按源码,它显示的是内核实时推过来的记录,只在内存里留最近 1000 条,所以往前翻只能看到最近一段。要更早的去看文件。\n\n**官方「导出日志」页的说法只在部分情况下成立**:它说找「文件名与当前日期相等」的文件,但按 v2.5.5 源码和 2.5.2 实测,当前正在写的文件名带 `latest`,只有轮转出去的旧文件名才带日期;它说内核日志在 service 目录,这也不准:不开服务模式时内核日志在 `sidecar` 文件夹;开了服务模式时,数据目录里的 `logs/service/`(macOS 是 `service-logs/service/`)平时是空的(Linux 上 2.5.6 实测),只有点托盘「内核日志」时才写进一份副本(Windows 上实测),完整的日志在服务自己的目录里(见上表)。那一页的做法本身仍然适用:改日志级别后退出重启、复现一次、取完改回 INFO。\n\n**两个日志等级**(位置按源码):「设置 → Clash 设置 → 日志等级」管内核,界面提示写的是「仅对日志目录 Service 文件夹下的内核日志文件生效」(服务模式下的内核日志实际在服务自己的目录,见上表);按源码,这个等级会写进内核的运行配置,而不开服务模式时内核的每一行输出都会进 sidecar 日志,所以它应该也影响 sidecar 日志的详细程度——这一点本站没有实测。客户端自己的日志由「设置 → Verge 基础设置 → 杂项设置 → 应用日志等级」管。\n\n**「导出诊断信息」不含日志**:按源码,它只把系统版本、Verge 版本、运行模式、是否管理员复制到剪贴板。求助时可以一起贴,但代替不了日志。\n\n**日志把磁盘占满时**,官方 FAQ 的办法是把日志等级改成 Silent 或 Error,并在杂项设置里设自动清理日志的间隔。按上面说的源码,自动清理对现在的文件名不一定起作用,调低日志等级、调小「应用日志最大数量」更可靠(这条是作者按源码的建议)。\n\n## Clash Party\n\n**Clash Party 本站在 Linux 和 Windows 上跑过**:Linux 上升级实验里看到了数据目录的位置,另一项实验里 2.0.3 读过数据目录 `logs` 下的应用日志与内核日志;Windows 11 上 2.0.3 读过 `%APPDATA%\\mihomo-party\\logs` 下的 `core-<日期>.log` 与 `clash-party-<日期>.log`。macOS 上没有跑(按源码,它在 macOS 上启动时如果还没装帮手服务,会申请管理员权限去安装,超出了本站实测的安全边界)。下面除了 Linux、Windows 上的数据目录与这两种日志文件,都按 v2.0.3 源码。\n\n日志目录是数据目录下的 `logs`。**目录名是 `mihomo-party`,不是「Clash Party」**:安装包显示的名字是 Clash Party(写在打包配置里),但程序内部的 package.json 里只有 `name: mihomo-party`、没有 productName(官方 macOS 2.0.3 安装包里的也是这样),Electron 按它决定数据目录名。所以默认位置是:\n\n- macOS:`~/Library/Application Support/mihomo-party/logs`\n- Windows:`%APPDATA%\\mihomo-party\\logs`\n- Linux:`~/.config/mihomo-party/logs`(数据目录 `~/.config/mihomo-party` 是 2.0.2、2.0.3 实测,里面 `logs` 下的应用日志与内核日志是 2.0.3 实测)\n- 便携版(程序旁边有一个名为 `PORTABLE` 的文件):程序旁边的 `data\\logs`\n\n文件按天分:`clash-party-年-月-日.log` 是应用日志,`core-年-月-日.log` 是内核日志,另有 `sub-store-年-月-日.log`。设置里的「日志保留天数」默认 7 天,「日志上限(MB)」默认 10;**如果你在「内核设置」页打开过「禁止内核日志写入文件」、或在「应用设置」页打开过「禁止应用日志写入文件」,对应的文件里就不会有记录**。应用内还有一个「实时日志」页。服务模式下内核日志写到哪里,本站没有查清。源码里没有找到对日志做遮蔽的代码,贴之前自己检查。\n\n## v2rayN\n\n官方 wiki 把日志分成两种:v2rayN 自己的问题(界面操作、设置、测速、检查更新)看 `guiLogs` 文件夹;内核的问题,日志显示在主界面信息栏里,可以复制出来([v2rayN 官方 wiki 常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe))。**内核日志默认不在 `guiLogs` 里**:按 7.24.9 源码,内核日志默认不写文件,只有在「设置 → 参数设置 → Core: 基础设置」里打开「启用日志存到文件」(默认关)之后,`guiLogs` 里才会出现 `Vaccess_日期.txt`、`Verror_日期.txt`(Xray 内核)或 `sbox_日期.txt`(sing-box 内核),官方 wiki 的[界面说明](https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/1e98189ad592b13a3a13bd4e5e7e757bee952a65)也这么写。应用日志默认开启,文件名是 `日期.txt`。\n\n**`guiLogs` 不一定在程序文件夹里**。按源码:程序文件夹能写入时就放在程序文件夹(zip 便携版解压出来的就是这种);程序文件夹不能写、里面有 `NotStoreConfigHere.txt`、或者是 WinGet 装的,就改放到用户数据目录下的 `v2rayN` 文件夹。官方 wiki 的发布文件介绍也说 zip 包是便携版、数据就在解压的文件夹里,非 zip 的安装版放在系统规定的用户目录([发布文件介绍](https://github.com/2dust/v2rayN/wiki/Release-files-introduction/f9abd39da25add650a0f445415330e18a5cbe67d))。macOS 的 dmg 版属于后一种(安装包里带着 `NotStoreConfigHere.txt`),推算位置是 `~/Library/Application Support/v2rayN/guiLogs`;Linux 的安装版推算在 `~/.local/share/v2rayN/guiLogs`(设置了 `XDG_DATA_HOME` 时在它下面)。这两个位置是按源码推算的,本站没有在机器上核实。**最省事的是用「设置 → 打开存储所在的位置」**,官方 wiki 说这个功能就是为了找配置和日志([界面说明](https://github.com/2dust/v2rayN/wiki/Description-of-some-ui/1e98189ad592b13a3a13bd4e5e7e757bee952a65))。\n\n信息栏上有「复制所有」「清除所有」两个按钮。启动内核时信息栏会先打印一行节点摘要:备注名加上地址和端口。按源码,地址按点或冒号切段,段多时只把中间换成 `***`、首尾两段还在;只有两段时只留最后一段;**地址只有一段时原样显示**;端口始终原样显示。所以贴之前把这一行的地址一起遮掉。官方 wiki 另说:反馈前先把原来的日志删掉再重现(删之前先另存一份,见第 3 步);遇到「运行 Core 失败」,把日志等级设成 Debug,再贴失败时界面上显示的日志([常见问题](https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe))。\n\nv2rayN 7.24.9 的 Windows zip 版实测过:内核日志显示在信息栏;打开「启用日志存到文件」后,`guiLogs` 里出现 `Verror_日期.txt`、`Vaccess_日期.txt`,信息栏里不再显示内核日志。macOS、Linux 上没能实测(在本站的测试环境里它启动几秒就退出了,没有生成日志;当时屏幕处于锁定状态,没查清是不是这个原因),上面那两处位置是按源码推算的。\n\n## FlClash\n\n**「FlClash 没有日志」其实是入口默认隐藏**(v0.8.98 安卓版实测):打开「工具 → 应用程序 → 日志捕获」后,手机上的「工具 → 更多」里才多出「日志」。按源码,桌面版也是在「工具 → 应用程序」里打开同一个开关,之后「日志」出现在左侧栏。\n\n- **日志只在内存里,不写文件**:按源码最多留 5000 条;实测**切换配置会把列表清空**,所以先导出再做别的。\n- **导出**:日志页点「导出日志」,弹出系统保存框,默认文件名形如 `FlClash_2026-09-23.log`(只有日期,没有时间),默认存到「下载」(实测)。\n- **里面有什么**(实测):订阅内容不是合法 YAML 时,有一行 `添加配置 ===> yaml: line …`;内核不认节点的加密方式时,有一行 `config apply failed, falling back to the built-in default - no proxies will be available: …`,这一行带着节点的服务器地址和端口;添加订阅时的 `find <订阅链接> proxy: false` 一行把完整链接连同 token 原样写出。\n\n## v2rayNG\n\n侧边栏第二组里的「Logcat」就是日志页,不需要连电脑、也不需要 adb。**页面打开时是空的,下拉刷新一次才会出现日志**:按 2.2.6 源码,打开这一页时只弹一句「请下拉刷新!」,下拉时才去读系统日志(实测时也是下拉刷新后读到的)。它读的是系统日志里内核(`GoLog`)、本应用(包名)、`AndroidRuntime`、`System.err` 这四个标签;自己用 adb 取日志时要用同样的标签,普通用户直接用应用内的页面就行。页面顶部工具栏有搜索、清除、复制、「分享日志」,屏幕放不下时后面几个收在右上角三个点里;「分享日志」会生成 `v2rayNG_logcat_日期_时间.txt` 并弹出系统分享面板(实测)。按源码,复制和分享带上的是页面当前显示的内容,**搜索框里有字时只会带上搜到的那几行**,要整段就先清空搜索。\n\n实测能在页面里搜到的例子:订阅地址返回 404 时是 `java.io.IOException: Request failed with status code 404`;连接测试失败时是 `Failed to measure delay` 和 `context deadline exceeded`。`GoLog` 标签下还会混进与代理无关的图形库记录,不用管。这次实测的页面和分享文件里没有出现节点地址和订阅链接,但只试了这两种失败,别的失败会不会带出地址不知道,贴之前照样检查。\n\n## 贴日志之前遮什么\n\n| 要遮的 | 会出现在哪 | 换成 |\n|---|---|---|\n| 订阅链接(域名、路径、token) | Clash Verge Rev 用一键导入链接而订阅服务器连不上时的 `latest.log`、FlClash 日志页添加订阅那一行(都是实测) | 「订阅链接」 |\n| 节点服务器的地址和端口 | 节点连接超时时内核日志的 `dial … error:` 那一行、FlClash 的配置报错行(实测);v2rayN 信息栏的节点摘要(按源码,地址只有一段时是完整的) | 「服务器地址」 |\n| 访问过的网站 | 内核日志每条连接的 `-->` 后面 | 与问题无关的行整行删掉;报错那一行里的目标地址,排查用不上就换成「目标网站」,问题就出在这个网站上、你也愿意公开时才留着 |\n\n几点说明:\n\n- **Clash Verge Rev 的遮蔽不可靠**。按源码,界面导入订阅时有些行会遮掉长度超过 16 个字符的路径段和查询参数的值,但域名和短的路径段照样写出,而且下载失败的报错行是把错误原样写出、不经过遮蔽的(这条路径本站没有实测);实测用一键导入链接导入、订阅服务器又连不上时,整条链接连 token 都原样写进了 `latest.log`。订阅服务器返回 404、订阅内容不是合法 YAML、导入成功这几种情况,实测 `latest.log` 里没有写订阅地址。\n- **mihomo 内核在 info 级别下,是连接失败的那一行带服务器地址**。实测节点连不上时是 `[TCP] dial 节点名 (match 规则) 来源 --> 目标 error: <服务器地址>:<端口> connect error: dial tcp <服务器地址>:<端口>: i/o timeout`,地址出现两次;成功的连接是 `来源 --> 目标 match 规则 using 节点名`,不带服务器地址。节点口令没有出现在日志里。**只测了 info 级别和连接超时这一种失败**:调到 Debug 后别的行(比如解析节点域名的行)会不会带出地址,本站没有验证,所以贴之前按最后的验证把整段文字都搜一遍,不要只看失败行。上表里的 FlClash 配置报错行、v2rayN 节点摘要也带地址。\n- **失败行里写的不一定是节点名**。在 Clash Verge Rev 里实测,节点放在选择组里时,失败行写的是组名(`dial PROXY …`),不是你选中的节点;成功行才写成 `PROXY[节点名]`。所以只看失败行,分不出是组里哪个节点连不上,求助时顺便说一句你当时选的是哪个节点。\n\n## 适用范围与验证方式\n\nFlClash v0.8.98 与 v2rayNG 2.2.6 在 Android 16 模拟器上实机跑过;Clash Verge Rev 2.5.2 在 macOS 上跑过(屏幕锁定,只操作了托盘菜单和一键导入链接,看的是日志文件本身);另用命令行 mihomo v1.19.31 在 info 级别跑过节点连不上和连得上两种情况。Linux 虚拟机里的 Clash Verge Rev 2.5.6、Clash Party 2.0.2 与 2.0.3 在别的实验里顺带看过目录,Clash Party 2.0.3 还读过应用日志与内核日志。Windows 11 实机上看过 Clash Verge Rev 2.5.6 的日志目录、服务模式的内核日志与托盘「内核日志」副本,Clash Party 2.0.3 的两种日志,v2rayN 7.24.9 的信息栏与 `guiLogs`。其余按源码或官方文档核对。\n\n- v2rayN 在 macOS、Linux 上没有运行过,FlClash 桌面版、v2rayNG 的 F-Droid 版也没有;Clash Party 在 macOS 上没有跑过,托盘入口按源码。\n- Clash Verge Rev 在 Linux 上的托盘菜单与轮转细节、macOS 上服务模式的日志按源码写;2.5.5 只比对了源码。\n- 日志会不会带出地址,只试了几种失败,贴之前照样把整段搜一遍。\n\n## 步骤\n1. 按你用的客户端打开日志入口。**Clash Verge Rev**:托盘图标菜单里的「打开目录 → 日志目录」,或者 设置 → Verge 高级设置 →「日志目录」(按源码),里面是应用日志和没开服务模式时的内核日志。**开了服务模式、要看内核日志的**,内核日志不在这个目录里(Linux、Windows 上 2.5.6 实测):点托盘「打开目录 → 内核日志」,按源码它会向服务要一份当前内核日志的副本,放进数据目录再打开(Windows 上实测);服务自己目录里的完整日志与旧文件在哪,见正文 Clash Verge Rev 一节的表。**Clash Party**:托盘「打开目录 → 日志目录」。**v2rayN**:内核日志默认就在主界面下方的「信息」栏;文件要从菜单「设置 → 打开存储所在的位置」进去,再打开 `guiLogs` 文件夹。**FlClash**:入口默认是隐藏的,先做下一步。**v2rayNG**:左侧边栏里的「Logcat」,打开后页面是空的,**下拉刷新一次**才会出现日志。日志分两种:客户端自己的**应用日志**(导入订阅、界面操作出错看它)和**内核日志**(mihomo / Xray / sing-box,节点连不上看它),先分清你要哪种,各客户端的文件名见正文。桌面客户端的入口点了没反应时,正文里写了各自的默认目录,可以直接在文件管理器里按路径找(服务模式的目录要管理员或 root 权限才打得开)。\n 失败时 → escalate\n2. 该开的开关先打开,**再**去复现问题——开之前发生的事不会补记。**动之前先记下下面每个开关和日志等级原来是什么**,排查结束后不管问题解决没有、日志贴没贴出去,都改回原来的样子(作者建议)。**FlClash**:工具 → 应用程序 → 打开「日志捕获」(说明文字是「禁用将会隐藏日志入口」)。手机上打开后 工具 → 更多 下才会出现「日志」(实测);桌面版是同一个开关,按源码打开后「日志」出现在左侧栏。按源码,打开这个开关后内核才开始把日志推给界面。**v2rayN**:想要内核日志的**文件**,在 设置 → 参数设置 →「Core: 基础设置」里打开「启用日志存到文件」(默认关),打开后内核日志只写进文件、信息栏里不再显示(Windows 上实测);同一页的「日志等级」默认是 warning,官方 wiki 的常见问题页说遇到「运行 Core 失败」时把它改成 Debug 再看(https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe ,「在测试真连接时会显示运行 core 失败」一节)。**Clash Verge Rev**:节点连不上这类内核问题,改 设置 → Clash 设置 →「日志等级」;导入订阅这类客户端自己的问题,改 设置 → Verge 基础设置 → 杂项设置 →「应用日志等级」(按源码)。官方文档说改了日志级别之后要**退出软件重新启动**,让日志从程序启动时开始记录。**Clash Party**:如果在「内核设置」页打开过「禁止内核日志写入文件」、或在「应用设置」页打开过「禁止应用日志写入文件」,先关掉,否则对应的文件里没有记录(按源码)。**v2rayNG**:设置里的「日志级别」默认 warning(按源码),一般不用改。调到 Debug 会让日志多很多,取完记得改回去(见最后的验证)。\n 失败时 → escalate\n3. 把出错的操作**重做一次**,看一眼时钟记下时间。v2rayN 官方 wiki 的常见问题页建议重现之前先把原来的日志删掉(https://github.com/2dust/v2rayN/wiki/Faq/e66de50650e4598b1d92093754ee8101e4ce5bfe ,「反馈问题时,开发者需要的日志从哪里找到?」一节;信息栏里的可以用「清除所有」清空);删之前先把原来的另存一份:信息栏的用「复制所有」粘进记事本保存,日志文件复制到别的文件夹,出错那次的记录可能只在旧日志里(作者建议)。**这份副本和原日志一样可能带着完整的订阅链接和 token**:只留在自己电脑上,排查完就删掉;要贴给别人的部分按下面的办法遮掉。**FlClash 在复现和导出之间不要切换配置**:实测切换配置会把日志列表清空,之前的记录找不回来。Clash Verge Rev 每次启动都会把上一次的 `latest.log` 改名成带日期时间的文件(实测),所以复现完**不重启**就直接去看 `latest.log` 最省事;按源码,文件写满设定大小(默认 128 KiB)也会被改名,所以在 `latest.log` 里找不到出错时刻的行时,去看文件名里时间最新的那个 `日期_时间.log`(内核日志在没开服务模式时看 `sidecar` 文件夹里的 `sidecar_日期_时间.log`;开了服务模式的,位置见正文 Clash Verge Rev 一节的表)。\n 失败时 → escalate\n4. 只取出错时刻前后的几行,不要把整个文件贴出去。在记下的时间附近找标着 `ERROR`、`error`、`warning` 的行:Clash Verge Rev 导入订阅失败时 `latest.log` 里是 `failed to parse profile from url: …`,下面缩进的 `Caused by:` 几行是具体原因;节点连不上时内核日志里是 `[TCP] dial … --> 目标 error: …`(都是实测;导入是用一键导入链接触发的)。v2rayN 复制信息栏用「复制所有」;FlClash 用日志页的「导出日志」;v2rayNG 用 Logcat 页顶部工具栏的「复制」或「分享日志」(屏幕放不下时收在右上角三个点里),按源码它们只带上页面当前显示的内容,搜索框里有字时要先清空。**报错那句是什么意思**,Clash 系客户端去 `mihomo 内核报错信息表`(见 mihomo-error-catalog) 查原文。\n 失败时 → escalate\n5. 贴出去之前把这几样换成占位词:**订阅链接**整条换成「订阅链接」(客户端不一定替你遮:实测 FlClash 添加订阅时、Clash Verge Rev 2.5.2 用一键导入链接而订阅服务器连不上时,都把完整链接连同 token 原样写进了日志);**节点服务器的地址和端口**换成「服务器地址」(实测节点连接超时的那一行 `error:` 后面会写出服务器的 IP 和端口,FlClash 的配置报错行也会带);**与问题无关的行**整行删掉;**报错那一行里的目标网站地址**会让别人看到你访问了哪个网站,排查用不上它时(比如节点连不上,换哪个网站都一样)也换成「目标网站」,只有问题就出在这个网站上(只有它打不开、它走错了出口)、别人得知道是哪个网站才能判断时,你自己确认愿意公开再留着;本机地址(`127` 开头的那串)不用删。节点名和组名一般可以留着帮别人判断,但节点名里常带服务商的名字,介意的话换成「节点A」(这条是作者建议)。\n 失败时 → escalate\n\n## 验证\n- **logs-ready-to-post**(人):在准备贴出去的整段文字里(不只是报错那几行),用记事本或备忘录的查找功能依次搜:你的订阅域名、`token`、订阅链接末尾那串长字符(复制最后十来个字符去搜)、上一步你换掉的服务器地址。\n 预期:这几样一处都搜不到,就可以贴了;本机地址(`127` 开头的那串)可以留着,报错行里的目标网站地址只在排查确实需要、你也愿意公开时才留着,否则换成「目标网站」。搜到了就回到上一步换掉再搜一次。贴完把日志等级和第 2 步动过的开关都改回原来的值(Clash Verge Rev 官方文档也建议导出后把日志等级改回 INFO,免得日志文件太大)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Party 内核启动出错:外部控制监听错误、配置检查失败、打开就闪退`(见 clash-party-core-start-error)\n- `Clash Party 虚拟网卡(TUN)开了不通、没接管、开机或升级后失效:查开关、DNS 覆写与连接列表`(见 clash-party-tun-not-working)\n- `Clash Verge Rev 升级后用不了:还是旧版、订阅和代理组没了、要求重装服务、虚拟网卡模式被关`(见 broken-after-client-update)\n- `Clash Verge Rev 应用内更新:检查更新报错、更新包 404、签名校验不过、进度条卡住,手动装新版`(见 cvr-update-failed)\n- `Clash Verge Rev 扩展覆写配置与扩展脚本:给所有订阅统一加改动`(见 cvr-extend-config)\n- `Clash Verge Rev 服务模式:TUN 所需的系统服务,装在哪、服务装不上与卸载`(见 cvr-service-mode)\n- `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed)\n- `Clash Verge Rev 连不上内核:内核通信错误、代理页空白或「内核暂不可用」、启动内核失败`(见 cvr-core-communication-error)\n- `Clash Verge Rev 重启后节点全没了、全部直连:规则引用的代理组名不存在(proxy not found)`(见 policy-group-not-found)\n- `Karing 连不上、断流、闪退、节点比别的客户端少:用网络检测、连接、日志查是哪一层`(见 karing-not-working)\n- `mihomo 内核报错信息表`(见 mihomo-error-catalog)\n- `v2rayN 信息栏提示原文表`(见 v2rayn-error-catalog)\n- `v2rayN 开了 TUN 就断网、开关弹回或重启后自己关了:权限、旧版 TUN 保护与信息栏报错`(见 v2rayn-tun-no-internet)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」`(见 xray-allowinsecure-removed)\n- `只有某个网站或应用不行:地区不支持、反复人机验证、Telegram 一直连接中,先查它走了哪条路`(见 one-site-not-working)\n- `彻底卸载与重置 Clash Verge Rev、Clash Party、v2rayN、Karing:卸载前做什么、数据目录在哪`(见 uninstall-and-reset)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `手机和电脑上各有哪些客户端、官方从哪下载`(见 client-overview)\n- `换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用`(见 works-on-another-network)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `第一次用 Clash Party:导入订阅、选节点、开系统代理,需要时开虚拟网卡`(见 clash-party-first-run)\n- `第一次用 FlClash(安卓):下载、导入订阅、允许 VPN、确认连上`(见 flclash-android-first-run)\n- `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)\n- `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run)\n- `让手机、平板、电视走电脑上的代理:电脑开启局域网连接,设备的 Wi-Fi 里填电脑的 IP 和端口`(见 lan-share-proxy)\n\n## 来源\n- cvr-guide-log:https://www.clashverge.dev/guide/log.html(「导出日志」:Warning 一段(改日志级别后退出重启、按日期找文件、service 目录放内核日志)与 Tip 一段(导出后改回 INFO))\n- cvr-faq-other:https://www.clashverge.dev/faq/other.html(日志过大,占满磁盘:日志等级改 Silent 或 Error、杂项设置里设自动清理日志间隔;Windows 日志目录在 AppData\\Roaming 下的 io.github.clash-verge-rev.clash-verge-rev\\logs)\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src-tauri/src/utils/dirs.rs L28-L36 与 L77-L146(数据目录、logs、macOS 的 service-logs、三种 latest 文件名,与 v2.5.5 相同;v2.5.5 到 v2.5.6 之间 dirs.rs、crates/clash-verge-logging、utils/init.rs、config/verge.rs、托盘与 cmd/app.rs 都没有改动);src-tauri/src/utils/startup.rs L10-L43(启动失败时弹「Clash Verge startup failed」对话框,原因追加到数据目录下 logs/startup.log);src-tauri/src/lib.rs L227-L263(只在启动最早的单实例检查出错时调用它);src-tauri/src/utils/startup.rs L20-L24(对话框正文写着原因和「Diagnostic log:」加这个文件的完整路径);src-tauri/src/utils/help.rs L257-L270(服务模式下点托盘「内核日志」时,向服务要一份当前的 service_latest.log,写进数据目录的 service 文件夹再打开);src-tauri/Cargo.toml L102(服务组件 clash-verge-service-ipc v2.7.4;v2.5.5 是 v2.7.3))\n- cvr-service-ipc-v2-7-4:https://github.com/clash-verge-rev/clash-verge-service-ipc/tree/b4f66bd5a365875562a622065d189e3514654b7f(src/core/server.rs L802-L811(注释 Never let the client choose a service-owned log destination:内核日志目录强制设成服务自己的 users/<账户>/logs)、L715-L723 与 L846-L868(给 CVR 的日志副本读的是那里的 service_latest.log,最多最后 4 MiB);src/core/paths.rs L76-L102(users/<账户>/logs)、L184-L206(状态目录:macOS 为 /Library/Application Support/clash-verge-service,其它 Unix 为 /var/lib/clash-verge-service);src/core/paths/windows.rs L13-L45(Windows 为 ProgramData 下的 clash-verge-service);src/core/structure.rs L231-L239(账户目录名:Unix 为 uid,Windows 为账户 SID 的 sha256);src/core/unix_security.rs L10-L12(服务目录权限 0700);src/channel.rs L11-L19(服务名 clash-verge-service);v2.7.3(Clash Verge Rev v2.5.5 引用的版本)里 server.rs L802-L811 与 paths.rs 的这几处写法相同)\n- cvr-repo-v2-5-5:https://github.com/clash-verge-rev/clash-verge-rev/tree/22e3f1ac8aefe4102ae2eb646a11a1ec614e8576(src-tauri/src/utils/dirs.rs(APP_ID、app_home_dir L28-L32 用 dirs 库的 data_dir()、app_logs_dir、macOS 的 service-logs、latest.log、sidecar_latest.log、service_latest.log);src-tauri/Cargo.toml L64(依赖 dirs 7.0.0);crates/clash-verge-logging/src/lib.rs(按大小轮转、带 latest 的当前文件名、时间戳命名);src-tauri/src/config/verge.rs(app_log_max_size 128、app_log_max_count 8、auto_log_clean 默认 2 即 7 天);src-tauri/src/utils/init.rs L52-L145(delete_log:文件名按「-」切成 4 段才解析日期,带时分秒的轮转文件名与 latest 都解析不出、被跳过;只扫 logs/ 与服务日志目录,不扫 logs/sidecar/);src-tauri/src/core/manager/state.rs(内核输出逐行写进 sidecar 日志);src-tauri/src/config/runtime.rs(log-level 写进内核运行配置);src-tauri/src/cmd/app.rs(open_logs_dir);src-tauri/src/core/tray/mod.rs 与 crates/clash-verge-i18n/locales/zh.yml(托盘「打开目录」五项);src/locales/zh/settings.json(日志目录、导出诊断信息、日志等级的提示、Verge 基础设置下的杂项设置、应用日志等级与自动清理日志);src/components/setting/setting-clash.tsx L229(Clash 设置里的日志等级)与 setting-verge-basic.tsx L265-L266(杂项设置入口在 Verge 基础设置);src/hooks/use-log-data.ts(日志页 MAX_LOG_NUM 1000);src-tauri/src/utils/help.rs(mask_url)与 src-tauri/src/cmd/profile.rs L65-L73(界面导入:tracing 字段经 mask_url,但下载失败行按 {e:#} 原样写出错误链);src-tauri/src/utils/resolve/scheme.rs L114-L123(一键导入链接拉取失败时按 {:?} 写出错误链,不经过 mask_url)与 src-tauri/src/utils/network.rs L142-L151(reqwest 错误原样包进错误链),这两处与 2.5.2(28f2efc)写法相同;crates/tauri-plugin-clash-verge-sysinfo(诊断信息字段))\n- dirs-rs-v6-0-0:https://github.com/dirs-dev/dirs-rs/blob/00511bdc252f491a72ac89f6d6a2463406266fb2/README.md(README.md L111 表格 data_dir 一行:Linux 为 $XDG_DATA_HOME,未设置时为 $HOME/.local/share;Windows 为 RoamingAppData;macOS 为 $HOME/Library/Application Support。Clash Verge Rev v2.5.5 依赖的是 dirs 7.0.0,而这个 GitHub 仓库最后一版是 6.0.0(仓库主页已指向别处托管的新仓库,不在本站可引用的主机上),所以这里只能引 6.0.0 的说明)\n- clash-party-src-v2-0-3:https://github.com/mihomo-party-org/clash-party/tree/8cf3515a20c0d73ceb077a9ab831e791fa4b8e6d(package.json L2(name 为 mihomo-party,没有 productName;electron 43.7.3);electron-builder.yml L2(productName: Clash Party,用于安装包显示名);src/main/utils/dirs.ts L17-L22(开发态改用 mihomo-party-dev,注释提到正式版的 mihomo-party Safe Storage);src/main/utils/dirs.ts(PORTABLE 文件、exe 旁 data 目录、userData、logDir、clash-party-日期 / core-日期 / sub-store-日期 三种日志文件名);src/main/core/manager.ts(内核输出写进 core 日志);src/main/resolve/tray.ts(打开目录 → 日志目录);src/main/utils/init.ts(maxLogDays 默认 7);src/main/utils/logFile.ts(默认上限 10 MB);src/main/utils/init.ts 与 src/main/sys/sysproxy.ts(macOS 启动时经帮手服务处理系统代理,缺帮手时申请管理员权限安装);src/renderer/src/pages/mihomo.tsx L1497(禁止内核日志写入文件在内核设置页);src/renderer/src/components/settings/general-config.tsx L729(禁止应用日志写入文件在应用设置页);src/renderer/src/locales/zh-CN.json(内核设置、应用设置、日志保留天数、日志上限、禁止内核日志写入文件、禁止应用日志写入文件、实时日志))\n- electron-app-docs-v43-7-3:https://github.com/electron/electron/blob/79de330422c91960492053e3e7d894911eddb55a/docs/api/app.md(app.getPath:appData 在 Windows 是 %APPDATA%、Linux 是 $XDG_CONFIG_HOME 或 ~/.config、macOS 是 ~/Library/Application Support;userData 默认是 appData 加应用名;productName 优先于 name)\n- v2rayn-src-7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(ServiceLib/Common/Utils.cs(HasWritePermission:NotStoreConfigHere.txt、WinGet;StartupPath 回落到 LocalApplicationData/v2rayN;GetLogPath → guiLogs);ServiceLib/Common/Logging.cs(GUI 日志 日期.txt);ServiceLib/Handler/ConfigHandler.cs(LogEnabled 默认 false、Loglevel 默认 warning);ServiceLib/Models/Configs/ConfigItems.cs(EnableLog 默认 true);ServiceLib/Services/CoreConfig/V2ray/V2rayLogService.cs(Vaccess_、Verror_);ServiceLib/Services/CoreConfig/Singbox/SingboxLogService.cs(sbox_);package-osx.sh(NotStoreConfigHere.txt);package-rhel.sh(/opt/v2rayN);ServiceLib/ViewModels/MainWindowViewModel.cs(打开存储所在的位置);ServiceLib/Models/Entities/ProfileItem.cs L27-L46(GetSummary:地址按冒号或点切段,3 段及以上只留首尾、2 段只留最后一段、1 段原样,端口原样;策略组、链式代理等复合节点不带地址)与 ServiceLib/Manager/CoreManager.cs L82、L102(启动内核时把摘要打到信息栏);v2rayN.Desktop/Views/MainWindow.axaml、OptionSettingWindow.axaml、MsgView.axaml;ServiceLib/Resx/ResUI.zh-Hans.resx(设置、参数设置、Core: 基础设置、启用日志存到文件、日志等级、打开存储所在的位置、复制所有、清除所有))\n- dotnet-runtime-v10-0-0:https://github.com/dotnet/runtime/blob/60629d14374c56f1cb51819049ad1fa529307f8d/src/libraries/System.Private.CoreLib/src/System/Environment.GetFolderPathCore.Unix.cs(SpecialFolder.LocalApplicationData:macOS 为 Application Support 目录;其它 Unix 为 $XDG_DATA_HOME,未设置时为 ~/.local/share)\n- flclash-src-v0-8-98:https://github.com/chen08209/FlClash/tree/7c61c90ac20493b474d19c75ec96262b478b4b88(lib/models/config.dart(openLogs 默认 false);lib/views/navigation.dart L59-L66(日志入口只在 openLogs 时出现,模式为桌面侧栏与手机「更多」);lib/views/tools.dart L66-L81 与 L253-L265(「应用程序」入口不分平台);lib/views/application_setting.dart L69-L74(日志捕获开关,不分平台);lib/manager/core_manager.dart(startLog / stopLog);lib/common/constant.dart(maxLogsLength 5000);lib/providers/app.dart(内存里的日志列表);lib/common/path.dart(导出文件名 FlClash_日期.log);lib/providers/actions/setup.dart(应用配置时清空日志列表);lib/l10n/intl/messages_zh_CN.dart(日志捕获、禁用将会隐藏日志入口、导出日志))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(viewmodel/LogcatViewModel.kt L16-L24(logcat -d -v time -s GoLog、应用包名、AndroidRuntime、System.err);ui/LogcatActivity.kt L45-L47(打开时只提示「请下拉刷新!」,不读日志)、L155-L162(下拉刷新时才读)、L57 与 L130-L131(复制、分享用的是页面当前显示、经过搜索过滤的内容)、分享日志写到 cache/shared_logs/v2rayNG_logcat_时间.txt;res/menu/menu_drawer.xml(侧边栏 Logcat);res/menu/menu_logcat.xml(搜索总在工具栏;清除、复制、分享日志为 ifRoom,放不下时收进溢出菜单);res/xml/pref_settings.xml(pref_core_loglevel 默认 warning);AppConfig.kt(ANG_PACKAGE);res/values-zh-rCN/strings.xml(请下拉刷新!、复制、清除、分享日志))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go L629-L641:连接失败的 warning 行「dial 出站名 (match 规则) 来源 --> 目标 error: 错误」与成功的 info 行「来源 --> 目标 match 规则 using 出站链」)\n- exp-where-are-logs-gui-2026-09-23:验证记录(内部存档,未公开)\n- exp-where-are-logs-cli-2026-09-23:验证记录(内部存档,未公开)\n- exp-tun-mode-not-working-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-cvr-core-communication-error-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-broken-after-client-update-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n- exp-clash-party-gui-linux-2026-09-28:验证记录(内部存档,未公开)\n- exp-cvr-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-cvr-service-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-clash-party-tun-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:c694b59 2026-10-01\n"},"works-on-another-network":{"id":"works-on-another-network","type":"troubleshoot","title":"换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用","aliases":["换个网络就好了","换了网络就能用","只有这个网络不行 别的网络可以","有线网络不行 手机热点可以","家里宽带不行 手机热点能用","Wi-Fi 不行 流量可以","WiFi 不通 移动数据可以","手机连 Wi-Fi 不行 4G 5G 能用","公司网络不能用","学校网络不能用","酒店 Wi-Fi 不能用","公共 Wi-Fi 要先登录","换了光猫或路由器后不行"],"primary_topic":"troubleshooting","topics":["troubleshooting","nodes-latency","clash-verge-rev","v2rayn","v2rayng"],"intents":[],"applicability":{"client":["clash-verge-rev","v2rayn","v2rayng"],"os":["windows","macos","linux","android"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-28","freshness":"current","markdown":"# 换个网络就能用:有线、宽带或 Wi-Fi 不通,手机热点、流量正常,公司、学校、酒店网络不能用\n\n主题:`排错`\n适用:clash-verge-rev/v2rayn/v2rayng / windows/macos/linux/android / any\n最后验证:2026-09-28\n\n同一台设备、同一个客户端,**只换了网络就能用**:有线或家里宽带连不上、改连手机热点可以;手机连 Wi-Fi 不行、用移动数据(4G、5G 流量)可以;公司、学校、酒店的网络用不了,换了光猫或路由器之后不行。这说明设备和客户端这一侧大体没问题,差别在**这个网络到节点的这一段**(作者推断)。按下面两问查:\n\n1. **关掉代理,这个网络本身通不通**:公共 Wi-Fi 常要先在网页上登录;关着代理也什么都打不开的,是网络本身还没通。\n2. **这个网络上是不是只有一部分节点不能用**:是的话先换能用的节点,把不能用的是哪些、什么类型告诉服务方。\n\n都不是的,带着「哪个网络不行、哪个可以」和失败时的日志去找服务方。**换了设备才能用的**(比如手机能用、电脑不行),差别在设备这一侧,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 的最后一问。\n\n- **net-not-open-yet**(这个网络本身还没通):代理关掉以后,流量不再交给客户端,这时还打不开,和客户端、节点都无关(作者说明)。需要登录的公共 Wi-Fi 没登录前就是这样(作者说明)。\n- **net-some-nodes-blocked**(这个网络上只有一部分节点不通):同一份订阅,在这个网络上有的节点能用,说明这个网络能连到节点,只是连不到其中一部分(作者推断)。原因要服务方查,你能给的是「哪些不行、换个网络又行」的对照(作者建议)。\n- **net-all-nodes-blocked**(这个网络上全部不通):同一台设备换个网络就能用,设备时间、客户端版本这类设备上的原因基本可以排除——它们换了网络照样会出问题(作者推断)。客户端这一端按上面的办法排除之后,剩下的可能是这个网络的限制,也可能是到节点的那段连接,带着对照结果请服务方协助判断(作者建议)。\n\n## 这些结论是怎么核对的\n\n按 Clash Verge Rev 2.5.6、v2rayN 7.24.9、v2rayNG 2.2.6 的源码和 Clash Verge Rev 官方文档核对了关代理的开关和看节点类型的地方,其中 v2rayN 的这几处和换节点的方式在 Windows 11 上实测过;日志里 `dns resolve failed` 的含义按 Clash Verge Rev 2.5.6 自带的 mihomo 内核 v1.19.31 的源码。在 Linux 虚拟机里用防火墙规则只拦一个节点、让节点域名解析不出,实测了 Clash Verge Rev 2.5.6 的测速显示、失败日志的格式和节点类型的显示。\n\n- 没有在真实的公司、学校、酒店网络或需要登录的公共 Wi-Fi 里实测过。\n- 先登录再开代理、按节点类型对照后交给服务方,是作者的建议,不是哪个客户端官方给的步骤。\n\n## 取证\n- **net-plain-web-opens**:先把代理关掉:Clash Verge Rev 在「设置」页把「系统代理」和「虚拟网卡模式」都关掉;v2rayN 把底部状态栏的系统代理下拉框改成「清除系统代理」,「启用 Tun」开着的也关掉;v2rayNG 正连着的,再点一次右下角那个按钮停止。连着**这个网络**,平时不开代理也能打开的网页能打开吗?(能打开选「通过」;什么都打不开,或者跳出一个要你登录的页面,选「失败」)\n pass → net-some-nodes-work;fail → net-not-open-yet;unknown → net-some-nodes-work\n- **net-some-nodes-work**:把代理按原来的样子开回来(刚才关掉的开关、改过的下拉框都改回去)。在这个网络上,是**有的节点能用、有的不能**吗?(测速测出了毫秒数,或者换上它之后平时要经代理才能打开的网页能打开,算能用;v2rayN 要单击选中后按回车或右键选「设为活动」才算换上,只选中不会切换。全部不能用的选「失败」。测速结果怎么看、为什么测速失败不一定是节点不能用,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。**测速全都有毫秒数、网页却打不开的**,不是这一条的情况:Clash Verge Rev 按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 查,v2rayNG 按 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet) 查,v2rayN 回 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 核对选节点和打开代理那两步)\n pass → net-some-nodes-blocked;fail → net-all-nodes-blocked;unknown → net-all-nodes-blocked\n\n## 原因\n- **net-not-open-yet**(可能性 medium)→ 修复 net-fix-login-or-wait\n- **net-some-nodes-blocked**(可能性 medium)→ 修复 net-fix-use-working-node\n- **net-all-nodes-blocked**(可能性 medium)→ 修复 net-fix-report-comparison\n\n## 修复\n### net-fix-login-or-wait\n1. **跳出登录页的**(酒店、机场、商场这类公共 Wi-Fi,有的学校、公司网络也要先认证),就在代理关着的时候按页面登录,普通网页能打开以后再把代理打开(作者建议)。\n2. **没有登录页、关着代理也什么都打不开的**,是这个网络本身还没通:代理关掉后流量已经不交给客户端了,这时打不开和客户端无关(作者说明)。先查网线、Wi-Fi 密码这类连接,或者找这个网络的提供方(宽带客服、公司或学校的网络管理员、酒店前台)(作者建议)。\n验证:net-verify-after-network-opens\n\n### net-fix-use-working-node\n1. 先换一个在这个网络上能用的节点用(作者建议)。v2rayN 要单击选中后按回车或右键选「设为活动」才算换上,只选中不会切换,双击只会打开节点的编辑窗口、也不会换上(Windows 上实测,见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run));v2rayNG 换节点的做法见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run)。\n2. 记下这个网络上不能用的是哪几个节点、各是什么类型,和能用的比一比,是不是不能用的都是同一类。看类型:Clash Verge Rev 的「代理」页上,节点卡片默认就显示类型(比如 `Shadowsocks`、`Vmess`),看不到的,点一下组标题栏上提示「展示节点细节」的眼睛按钮(Linux 上实测);v2rayN 看列表的「类型」列;v2rayNG 看列表里每个节点下面那一行,最前面就是类型(比如 `VMESS`)。然后告诉服务方:在哪个网络下哪些节点(或哪一类)不能用,换到哪个网络又能用。原因交给服务方判断,不用自己下结论(作者建议)。**不要附上订阅链接、节点地址或口令。**\n验证:net-verify-working-node\n\n### net-fix-report-comparison\n1. 先排除客户端这一端:Clash Verge Rev 按 `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet) 查一遍开关、模式和出口,v2rayNG 按 `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet) 查,v2rayN 回 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run) 核对选节点和打开代理那两步(从 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 转过来、已经查过的跳过)。那边查出问题、改好就能用的,不用再找服务方(作者建议)。\n2. 能取到日志的话,按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 在这个网络上重现一次连不上,取出失败的那几行,照那一条把服务器地址、订阅链接遮掉。Clash Verge Rev 的日志里,失败那一行带着 `connect error: dns resolve failed` 的,是它的内核在这个网络上没查到节点服务器的地址(按源码;Linux 上实测过一种情况:内核刚启动、配置里没有 DNS 设置时,用系统命令能从 hosts 文件查到地址,内核也照样这样报)。别的失败行里,`connect error:` 前面是订阅里写的服务器地址和端口,后面 `dial tcp` 之后还有解析出来的 IP(Linux 上实测),**两处贴出去之前都要遮掉**。取不到日志就跳过这一步。\n3. 带着对照结果找服务方:哪个网络不行(比如家里宽带的有线、公司 Wi-Fi)、哪个网络可以(比如手机热点、移动数据),这个网络上是全部节点都不能用,再附上上一步的日志。是哪一段不通交给服务方判断,不用自己下结论(作者建议)。**不要附上订阅链接、节点地址或口令。**公司、学校这类有管理方的网络,限制可能是管理方设的,服务方也改不了,按管理方的规定来(作者建议)。\n验证:net-verify-provider-replied\n\n## 验证\n- **net-verify-after-network-opens**(人):关着代理、普通网页能打开之后,把代理打开,连着这个网络打开平时要经代理才能打开的网页。\n 预期:连着这个网络,平时要经代理才能打开的网页能打开,就解决了。能打开普通网页、开了代理仍然不行的,接着回答下一问(这个网络上是不是有的节点能用)。关着代理也一直打不开的,这个网络还没通,要等网络的提供方处理,本条帮不上。\n 通过 → resolved;失败 → net-some-nodes-work;无法判断 → net-some-nodes-work\n- **net-verify-working-node**(人):用换上的节点,连着这个网络打开平时要经代理才能打开的网页。\n 预期:连着这个网络,平时要经代理才能打开的网页能打开,就先用这个节点;不能用的那几个等服务方回复。换上的这个也打不开的,把还没试过的节点挨个换上、打开网页试(v2rayN 要单击选中后按回车或右键选「设为活动」才算换上,只选中不会切换,见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run);v2rayNG 换节点的做法见 `第一次用 v2rayNG(安卓):导入订阅、更新出节点、允许 VPN、确认连上`(见 v2rayng-first-run);测速失败的也要试,测速失败不一定是节点不能用);都打不开,才按「全部不能用」那一支的做法,带着对照结果和日志去找服务方。\n 通过 → resolved;失败 → net-all-nodes-blocked;无法判断 → escalate\n- **net-verify-provider-replied**(人):服务方回复后按他们的说明操作(例如更新订阅),再连着这个网络打开平时要经代理才能打开的网页。\n 预期:连着这个网络,平时要经代理才能打开的网页能打开,就解决了。仍然不行,把这次的结果再告诉服务方。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash Verge Rev 开着但网页打不开`(见 connected-no-internet)\n- `安卓 FlClash、v2rayNG 测速正常却没网,网页和 App 打不开:先查私人 DNS、分应用和模式`(见 android-vpn-connected-no-internet)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `新手上路:备好订阅和客户端,按设备装好,第一次连上,出了问题按现象查`(见 getting-started)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `用着用着就断、时断时续、手机放后台就断:先查客户端还在不在、是不是换了节点`(见 connection-drops)\n- `退出、卸载代理软件或它闪退后电脑上不了网、提示代理服务器拒绝连接:先查系统代理还开着没有`(见 proxy-left-on-no-internet)\n\n## 来源\n- cvr-guide-term:https://www.clashverge.dev/guide/term.html(系统代理 / Tun 模式(系统代理:程序自发读取「约定」位置的端口信息;Tun 模式:通过路由把请求重定向到虚拟网卡))\n- cvr-repo-v2-5-6:https://github.com/clash-verge-rev/clash-verge-rev/tree/b057bd964ccd156f68bc43a3a8ed66cf3cb1cd7b(src/locales/zh/settings.json L42-L45 与 src/components/shared/proxy-control-switches.tsx L186、L198(「设置」页的「系统代理」「虚拟网卡模式」两个开关);src/locales/zh/proxies.json L39 与 src/components/proxy/proxy-head.tsx L146-L154(组标题栏「展示节点细节」按钮切换 showType);src/components/proxy/proxy-item.tsx L57、L115 与 src/components/proxy/proxy-item-mini.tsx L28、L100(打开后节点上显示类型))\n- exp-works-on-another-network-gui-linux-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/v2rayN/Views/StatusBarView.xaml L55-L65(状态栏「启用 Tun」开关)、L77-L81(状态栏系统代理下拉框里的「清除系统代理」);v2rayN/v2rayN/Views/ProfilesView.xaml L282-L286(列表「类型」列);v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L186-L187(类型)、L455-L457(清除系统代理)、L897-L898(启用 Tun))\n- v2rayng-src-2-2-6:https://github.com/2dust/v2rayNG/tree/15b4fff8e45da9bc0acaa5cc1d80a1d3531e8712(V2rayNG/app/src/main/java/com/v2ray/ang/ui/MainActivity.kt L82、L166-L171(右下角按钮:正在运行时再点一次就停止);ui/MainRecyclerAdapter.kt L62、L144-L171(列表里每个节点的类型行:协议类型在最前,后面是传输方式与安全层,用 / 隔开))\n- mihomo-repo:https://github.com/MetaCubeX/mihomo/tree/ab405bad5beeeac8b003bb01f60f134f6df54471(tunnel/tunnel.go L627-L633(连接失败时记一行 [TCP] dial <出口名> … --> <目标> error: <原因>);component/dialer/dialer.go L423-L425、L40-L53、L380-L401(经节点拨号时先解析节点服务器的域名,解析失败的原因写成 dns resolve failed);adapter/outbound/shadowsocks.go L214-L226、vmess.go L406-L410、vless.go L352-L356(这几类节点连接出错时在原因前加上节点服务器的地址和 connect error,所以这一行会带出服务器地址);adapter/outbound/direct.go L24-L33(直连出错不加 connect error)。Clash Verge Rev 2.5.6 的 Linux 包内置的内核就是 v1.19.31(见 exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27))\n- exp-cvr-2-5-6-ui-walk-gui-linux-2026-09-27:验证记录(内部存档,未公开)\n\n最后修订:f39a279 2026-10-02\n"},"xray-allowinsecure-removed":{"id":"xray-allowinsecure-removed","type":"troubleshoot","title":"v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」","aliases":["The feature \"allowInsecure\" has been removed and migrated to \"pinnedPeerCertSha256\"","The feature \"allowInsecure\" has been removed and migrated to \"pinnedPeerCertSha256\"(pcs) and \"verifyPeerCertByName\"(vcn)","Failed to start: main: failed to load config files: [config.json] > infra/conf: failed to build outbound config with tag proxy > infra/conf: failed to build stream settings for outbound detour > infra/conf: Failed to build TLS config. > common/errors: The feature \"allowInsecure\" has been removed and migrated to \"pinnedPeerCertSha256\"(pcs) and \"verifyPeerCertByName\"(vcn). Please update your config(s) according to release note and documentation.","infra/conf: Failed to build TLS config","This feature allowInsecure is deprecated, will be removed soon and being migrated to pinnedPeerCertSha256","AllowInsecure 已启用,但未提供证书。这可能会导致中间人攻击","Insecure configuration detected: AllowInsecure is enabled but no certificate is provided. This may cause MITM attacks.","警告:Xray 将在 2026.8.1 禁用跳过证书验证 allowInsecure","app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [tls: failed to verify certificate: x509: certificate signed by unknown authority] > common/retry: all retry attempts failed","v2rayN 跳过证书验证不能用了","v2rayN 跳过证书验证被移除","v2rayN allowInsecure 运行 Core 失败","升级 v2rayN 后跳过证书验证的节点连不上","更新 Xray 内核后节点失效 allowInsecure","v2rayN pinnedPeerCertSha256 证书指纹","v2rayN 证书指纹 SHA-256 固定证书","订阅 pcs vcn 证书指纹","x509: certificate signed by unknown authority v2rayN","v2rayN 7.22.5 临时允许跳过证书验证","Xray allowInsecure 2026-06-01","自签证书节点 v2rayN 连不上","v2rayN 改用 sing-box 内核 跳过证书验证","xray tls hash tls ping 取证书指纹 SHA256"],"primary_topic":"troubleshooting","topics":["troubleshooting","v2rayn","safety"],"intents":[],"applicability":{"client":["v2rayn"],"os":["windows","macos","linux"],"panel":"any"},"freshness_mode":"versioned","last_verified_at":"2026-09-24","freshness":"current","markdown":"# v2rayN 跳过证书验证(allowInsecure)的节点连不上:Xray 报已移除,或提示「当前节点使用未加密连接」\n\n主题:`排错`\n适用:v2rayn / windows/macos/linux / any\n最后验证:2026-09-24\n\n开着「跳过证书验证 (allowInsecure)」的 v2rayN 节点突然连不上,多半是因为 **Xray 内核不再允许跳过服务器证书校验**。Xray 是 v2rayN 默认用来连节点的程序(见 `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept))。这是内核在证书校验上的改动,不是电脑坏了。\n\n**第一步**:看信息栏(找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))里是哪一种。v2rayN 版本号在主窗口标题栏上,形如 `v2rayN - V7.24.9`。\n\n- **有 `has been removed`**:内核拒绝加载配置、起不来。多见于 v2rayN 7.24.4 及以前;任何版本用「添加自定义配置」导入、配置里写着 allowInsecure 的节点也会这样。先把 v2rayN 升级到 7.24.5 或以后(最新正式版是 7.25.4);自定义配置要改那份配置本身,见下面的修复。\n- **有「当前节点使用未加密连接…26.2.6+ 版本的Xray核心」,没有上面那句**:内核照常启动,只是不再替你跳过校验。\n- **两句都没有、节点还是不通**:从订阅导入的节点,这个开关可能根本没开,结果一样。\n\n后两种要把日志等级调到 info,看到 `x509:` 才能确定是证书过不了校验;看的时候别同时做「测试真连接延迟」,测速的临时内核可能也会写同样的行(按源码)。\n\n**这对你意味着**:v2rayN 7.24.4 及以前,开着这个开关、又没填证书指纹的节点,配现在的 Xray 内核就起不来(官方版 2026-06-01 以后、7.22.5 自带的补丁版 2026-08-01 以后都拒绝加载),证书合格的也一样;订阅里的节点都这样时,就是全部连不上。退回 v26.1.23 这类旧内核能绕开,但作者不建议,见修复步骤。新版上这个开关对 Xray 不再起作用,连不上的多半是证书本身过不了校验的节点,常见于自签证书(服务器自己给自己签的证书,系统不认)。这类节点,机场的请服务方在订阅里补证书指纹(pcs),自建的换正规证书或填证书指纹。改用 sing-box 内核、同时开着跳过证书验证,虽然能连上(按源码,xhttp、kcp 传输的节点不能这样改),但等于继续不校验证书。\n\n## 没有 x509 怎么办\n\n调到 info、清空信息栏的过滤框、确认「自动刷新」开着之后,信息栏里(开着「启用日志存到文件」的看 `Verror_日期.txt`)仍然没有 `x509:` 或 `failed to verify certificate` 的,多半不是证书的问题(实测证书过不了校验时,info 等级下每个经代理的连接都有这一行),本条帮不上:多个节点都不通,按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查;内核起不来,按 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed) 查。要找服务方,带上 v2rayN 版本和信息栏里那几行,先按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉里面的地址,不要贴订阅链接。\n\n## Xray 是怎么一步步移除它的\n\nXray 官方在 v26.2.6 的发行说明里宣布:TLS 移除 `allowInsecure`,改用 `pinnedPeerCertSha256`(固定证书指纹)和 `verifyPeerCertByName`(按指定域名校验证书);为了给机场留迁移时间,这一版设成到 UTC 2026-06-01 自动禁用,并请机场在订阅里给这类节点加上 pcs/vcn,这样新旧内核都能用。\n\n按源码逐个版本看:\n\n- **v26.1.23 及更早**:照常放行。v26.1.23 会打一条弃用警告,更早的版本连警告也没有。实测 v26.1.23 遇到它,配置照常加载,能连上自签证书的测试节点。\n- **v26.2.4 到 v26.6.1(包括正式版 v26.2.6、v26.3.27)**:按运行它的那台电脑的当前时间判断,2026-06-01 之前只警告,之后拒绝加载。更早的预发布版 v26.1.31 已经是直接报错。实测今天 v26.3.27 拒绝加载同一份配置,退出码 23。\n- **v26.6.22 起**:不再看日期,一律拒绝,报错里多一句 `\"verifyPeerCertByName\"(vcn)`。\n\n报错只在这一项为「开」时出现,关掉它不会报错。\n\n## v2rayN 不同版本的表现\n\n**7.24.4 及以前**:7.22.6 到 7.24.4 生成 Xray 配置时,把节点自己的跳过证书验证原样写成 `allowInsecure`,只有填了证书或证书指纹时才写成关;7.22.5 上,节点没设这一项时用参数设置里的全局「默认跳过证书验证」,导入节点时也拿它去填。碰上上面这些新内核就加载失败,报的就是 `has been removed` 那句。在 v2rayN 里「检查更新」更新 Xray 内核,下载的是 XTLS 官方版本,所以「更新内核后节点全挂」也是这一种。\n\n**7.24.5 起(包括 7.24.9 和最新正式版 7.25.4)**:v2rayN 自己不再往 Xray 配置里写 `allowInsecure`。开着跳过证书验证、又没填证书或指纹的节点,启动前会在信息栏给出「当前节点使用未加密连接」和「检测到不安全配置」两段提示,但只是警告,不拦启动。实测在 macOS 上运行 v2rayN 7.24.9 连一个自签证书的节点:两段提示都出现,没有 `has been removed`;生成的配置里没有 `allowInsecure`,开关开不开配置都一样;内核照常启动,但「当前延迟」是 -1,网页打不开。**这对你意味着**:在新版 v2rayN 上,这个开关对 Xray 内核已经不起作用,证书合格的节点开着它也照常能用(按源码);连不上时多半是证书本身过不了校验,调到 info 看到 x509 才能确定。\n\n**两段提示只说明开关开着,不说明证书好坏。** 按 7.24.9 源码,「当前节点使用未加密连接」只在内核是 Xray、节点开着跳过证书验证、又没有证书或指纹时出现,不看证书本身;7.24.4 不分内核都出。「检测到不安全配置」在 sing-box 内核下同样会出,TUIC、AnyTLS、Naive 节点固定用 sing-box。节点下线、订阅过期时,这两段提示照样在。\n\n**失败原因默认看不到。** 日志等级默认是 warning,实测这时信息栏里没有任何错误行;调到 info 后,每个连接都有一行 `x509: certificate signed by unknown authority`。底部「当前延迟」是 -1 才算数;列表里「测试延迟 Tcping」出了毫秒数不说明能用,它只测到服务器端口,见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。\n\n**从订阅导入的节点,开关不一定是开着的。** 按源码,v2rayN 7.24.9 导入 VLESS 分享链接时不读链接里的 `allowInsecure`;Trojan 链接读 `allowInsecure` 或 `insecure`,VMess 链接读的是其中的 `insecure` 字段。实测带 `allowInsecure=1` 的 VLESS 链接导入后开关是关着的,所以两段提示都不出现,只是连不上。这就是第一步里「两句都没有」的那种情况。**不管哪个版本,在订阅节点上手改的设置,更新订阅后都会恢复成链接里的值**:更新订阅是删掉这个订阅的全部节点再重新导入。\n\n**填了证书指纹之后**:生成的配置里写的是 `pinnedPeerCertSha256`,实测能连上,两段提示都不再出现。\n\n## 改用 sing-box 内核:只能临时凑合\n\nv2rayN 把跳过证书验证写成 sing-box 的 `insecure`,sing-box 官方文档对它的说明是「接受任何服务器证书」。所以节点改用 sing-box 内核、**同时开着跳过证书验证**时能连上:实测 7.24.9 这样能连上,只剩「检测到不安全配置」一条提示。开关关着时 sing-box 同样校验证书,从订阅导入的 VLESS 节点这个开关默认就是关着的。改法:菜单「设置 → 参数设置」的「Core 类型设置」页按协议列着每一类节点用哪个内核,把这个节点的协议(比如 Trojan、VLESS)那一行改成 sing_box,确定后「重启服务」。这一页按协议整类生效,同一协议的节点都会跟着换;Windows 上实测,在这一页把 Hysteria2 改成 sing_box 后起的就是 sing-box。节点编辑窗口右上角那个框写着 sing_box 或 Xray 的,是这个节点自己指定了内核,它优先于这一页,要把框改回空:Windows 版这个框鼠标点不开,先用 Tab 或 Shift+Tab 把光标移到框上(框下面的线变蓝),再按 ↓ 切到空、确定(Windows 上实测)。按源码,传输方式是 xhttp 或 kcp 的节点不能这样改,v2rayN 会报「核心 'sing_box' 不支持网络类型 'xhttp'」并拦住启动;改了还是连不上、或被这句拦住的,在同一页把这个协议改回 Xray,为此打开的跳过证书验证也关回去,再「重启服务」。这一页是全局设置,不随更新订阅恢复,用完要自己改回(按源码)。\n\n能连上是因为仍然不校验证书,风险一点没少,问题并没有解决。作者建议只在等服务方修好的这几天用,修好后改回 Xray。\n\n## 为什么提示说「未加密」,以及为什么不该一直关着校验\n\n这段提示针对的是开着跳过证书验证、又没提供证书或指纹的 TLS 节点。这种连接其实是加密的,只是**不确认对面是不是真的服务器**。有人在中间冒充服务器时,客户端照样接受,加密也就挡不住他。真正的修法是让证书能被校验:要么服务器用受信任的证书,要么客户端固定一个事先知道的指纹。服务方不肯改的,这类节点在 Xray 下没法安全地用,本条只说明代价,不替你选服务方。\n\n**电脑能用、手机不能用(或反过来)**:两端的客户端各自带内核,版本不同,对这个开关的处理也不同(v2rayN 见上文),所以结果不同。以不通那一端的报错为准;安卓上 v2rayNG 的情况见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。**更新订阅时报证书错误**,说的是订阅地址那台服务器的证书,与节点无关,不归本条(Clash Verge Rev 见 `Clash Verge Rev 订阅导入失败、更新失败`(见 subscription-update-failed))。\n\n## 几个流传的说法\n\n- **「Xray 在 2026 年 8 月 1 日彻底禁用 allowInsecure」**:不准。官方 Xray 的截止日是 UTC 2026-06-01,v26.6.22 起没有日期、一律拒绝。2026-08-01 是 2dust 这边推迟后的日期:v2rayN 7.22.5 的发行说明、7.22.5 到 7.24.3 的界面警告写的就是它,指的是 v2rayN 随包带的补丁版 Xray。这个补丁版取自账号 autorepobot 下的 Xray 分叉,不是 XTLS 官方仓库,实测它相对官方 v26.6.1 只改了截止日。安卓上 v2rayNG 自带内核的日期见 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)。两个日期现在都过了。\n- **「升到 v2rayN 7.22.5 就能继续跳过证书验证」**:过时了。7.22.5 的发行说明自己就写着这是临时的,实测它自带的内核今天同样拒绝加载。\n- **「Xray v26.2.6 正式移除了 allowInsecure」**:不完全对。直接报错最早出现在预发布版 v26.1.31;正式版 v26.2.6 在 2026-06-01 之前只警告、照常放行。\n\n## 这些结论是怎么核对的\n\n按 Xray 与 v2rayN(7.22.5–7.24.9)的源码、发行说明以及 sing-box 官方文档核对;在 macOS 上用命令行跑了几版 Xray(含用 `tls hash`、`tls ping` 取指纹),又实际运行了 v2rayN 7.24.9,分别用 Xray 与 sing-box 内核连自签证书的测试节点;在 Windows 11 上运行了 v2rayN 7.24.9,照录了信息栏里的 x509 与「已移除」两行、日志文件、测速的临时内核和改内核的入口。\n\n- 7.24.4 及以前的 v2rayN 没有运行过,这部分按源码;Linux 没有运行过;Windows 上没有测用 sing-box 连自签证书的节点(开着跳过证书验证),也没有测填证书指纹后的连接效果。\n- macOS 上的信息栏文字取自 v2rayN 发往信息栏的内容,没有看屏幕,节点设置是直接改数据文件完成的;信息栏的「过滤器」「自动刷新」、「检查更新」和 7.22.5–7.24.4 的界面入口按源码。\n- 测试节点是本机自签证书;服务方补 pcs 后更新订阅、真实证书过期或域名不符等情况没有测。\n\n## 取证\n- **xai-removed-line-shown**:在 v2rayN 主界面下方的信息栏里(找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)),有 `The feature \"allowInsecure\" has been removed` 这句吗?(前面通常是 `Failed to start: main: failed to load config files` 和 `Failed to build TLS config`)\n pass → xai-v2rayn-writes-allowinsecure;fail → xai-x509-at-info;unknown → xai-x509-at-info\n- **xai-x509-at-info**:没有上面那句(或者按修复改过之后它已经消失)、节点还是不通的话(信息栏里有没有「当前节点使用未加密连接」那段提示都一样,它只说明开关开着,不说明证书好坏):菜单「设置 → 参数设置」的「Core: 基础设置」页把「日志等级」改成 info,确定后把信息栏上方的「过滤器 (支持正则)」框清空、确认「自动刷新」开着(按源码,过滤框里有字时对不上的新行不显示;自动刷新关着时,7.24.9 直接丢掉新消息,7.25.4 先存着、只留最近 500 条,打开后才显示),再点「重启服务」,用这个节点打开一次网页(这时别同时做「测试真连接延迟」:按源码测速的临时内核可能也会写同样的行,分不出是哪个节点的;切换节点后 v2rayN 自动测的「当前延迟」经正在用的内核也会先写一条同样的行,不开网页也会有(Windows 上实测))。信息栏里(开着「启用日志存到文件」的,这类内核日志不进信息栏(Windows 上实测),改看日志文件夹里的 `Verror_日期.txt`,只看这次打开网页之后新出现的行,找法见 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs))出现 `x509:` 或 `failed to verify certificate` 了吗?任一处出现都算。(如果这一行是做「测试真连接延迟」时出现的,出错的是被测的那个节点,测速用的是另起的临时内核(Windows 上实测):先把那个节点设为活动节点,再按上面的办法用它打开一次网页来查)(默认的 warning 等级下这一行不显示,所以一定要先调等级;看完改回 warning。节点改用了 sing-box 内核、又开着跳过证书验证的,它根本不校验证书,不会有这一行,选「失败」,并把内核改回 Xray、为此打开的跳过证书验证关回去。**改过之后 `has been removed` 还在的**:先确认标题栏的版本号已经是 7.24.5 或以后、自定义配置里的 allowInsecure 已经删掉;都做了还在,选「无法判断」。没有这一行、也不是 `has been removed` 还在的,本条帮不上:多个节点都不通按 `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout) 查,内核起不来按 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed) 查)\n pass → xai-cert-rejected;fail → escalate;unknown → escalate\n\n## 原因\n- **xai-v2rayn-writes-allowinsecure**(可能性 high)→ 修复 xai-stop-sending-allowinsecure\n- **xai-cert-rejected**(可能性 high)→ 修复 xai-get-verifiable-cert\n\n## 修复\n### xai-stop-sending-allowinsecure\n1. **把 v2rayN 升级到 7.24.5 或以后(最新正式版是 2026-09-30 发布的 7.25.4)。** 升到 7.25.x 的,还要确认 `bin` 里的 sing-box 是 1.14——节点用 sing-box 内核时会用到它,节点用 Xray 但开着 TUN、「旧版 TUN 保护」打开时 v2rayN 也会另起一个 sing-box 接管 TUN;v2rayN 自己升级不替换已有的内核,换法见 `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)(按源码,本条没有测)。用 zip 免安装版的,升级前先把原文件夹里的 `guiConfigs` 复制一份到别处,再把新版解压覆盖到原来的位置,不要先删掉原来的文件夹:订阅和设置就存在 `guiConfigs` 里(见 `第一次用 v2rayN(电脑版):导入(添加)订阅、更新出节点、选中节点、打开系统代理`(见 v2rayn-first-run))。按源码,7.24.5 起 v2rayN 生成 Xray 配置时不再写 allowInsecure,这句报错就不会再出现,更新订阅也不会让它回来;实测 7.24.9 开着跳过证书验证,生成的配置里也没有这一项。升级后能不能连上取决于服务器证书,见下面的验证。\n2. **暂时不能升级的:关掉这个节点的「跳过证书验证」,或填上证书指纹。** 7.22.6–7.24.4 的节点编辑窗口里,「跳过证书验证 (allowInsecure)」是一个开关,关掉、确定,再点主界面的「重启服务」;填了「证书指纹(SHA-256)」时,v2rayN 也会把 allowInsecure 写成关(按源码)。7.22.5 上那一项是下拉框,选 false;节点没选时,用的是「设置 → 参数设置 → Core: 基础设置」里的「默认跳过证书验证 (allowInsecure)」,导入节点时也拿它去填,这个也要关(按源码)。**从订阅导入的节点,更新订阅后会恢复成链接里的值**:按源码,更新订阅是删掉这个订阅的全部节点再重新导入,7.24.4 会读链接里的 insecure / allowInsecure,报错跟着回来,所以长久的办法还是升级。内核起来后能连上,说明服务器证书本来合格,问题到此解决;「当前延迟」还是 -1、网页打不开的,多半是证书过不了校验,看下面的验证。\n3. 用「添加自定义配置」导入的节点(配置文件是你或服务方手写的):不管 v2rayN 是哪个版本,那份配置的 `tlsSettings` 里如果写着 `allowInsecure: true`,按 Xray 源码新内核都会拒绝加载(Windows 上用 v2rayN 7.24.9 自带的内核实测过)。删掉这一项,或换成服务方给的 `pinnedPeerCertSha256`。\n4. **不要靠 v2rayN 7.22.5 或旧内核救急。** 7.22.5 自带的补丁版 Xray 把截止日推到 2026-08-01,实测今天同样拒绝加载;在 v2rayN 里更新 Xray 内核时,下载的是 XTLS 官方版本(按源码),截止日是 2026-06-01,v26.6.22 起连截止日都没有了。实测 v26.1.23 这种旧内核只打一条弃用警告、照常连上,但这只在配置里还写着 allowInsecure 时有用(7.24.4 及以前的 v2rayN,或自定义配置),而且等于继续不校验证书,还把内核的其它修复一起退回去了(作者建议不要这样做)。\n验证:xai-core-starts\n\n### xai-get-verifiable-cert\n1. **机场节点:请服务方在订阅里给这些节点补上证书指纹(pcs),然后「更新订阅」。** 更新订阅会删掉这个订阅的全部节点再重新导入,你在这些节点上手改过的设置都会恢复成链接里的值(按源码):为了临时连上而在节点上打开的跳过证书验证开关,本来就该这样恢复;在「Core 类型设置」页把协议改成 sing_box 的,那是全局设置,不会跟着恢复,先在那一页改回 Xray;别的手改项想留的,先记下来,更新后再改。Xray 官方发行说明请机场给原本用 allowInsecure 的节点加上 pcs 或 vcn(证书域名),说加上之后新旧版本内核都能用。但按 Xray 源码,**自签证书只有 pcs 管用**:vcn 只是换一个域名去校验,证书本身仍要被系统信任,只适合证书由受信任的机构签发、只是签给的域名和连接用的 SNI 不同的情况。按源码,v2rayN 7.24.9 导入分享链接时会读 pcs、vcn,更新订阅就生效,不用手填。找服务方时说清 v2rayN 版本和信息栏那几行即可;贴之前按 `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs) 遮掉节点摘要里的服务器地址,与问题无关的访问记录(`accepted …` 那种行)整行删掉,**不要把订阅链接贴到公开的群或 issue 里**。机场节点不建议自己去抓指纹填(作者建议):抓的那一刻如果连接已经被人冒充,你固定下来的就是冒充者的证书。\n2. **自建节点:给服务器换成受信任的证书(比如为自己的域名申请的正规证书),客户端关掉跳过证书验证;或者固定证书指纹。** 指纹填在节点编辑窗口「固定证书」一行右边按钮弹出的「证书指纹(SHA-256)」里(界面标着「仅 Xray」),同时关掉跳过证书验证,确定后「重启服务」。弹出框里的「获取证书」对自签证书可能失败,界面提示里自己就这样写。指纹这样取(实测,用的是 Xray 26.3.27):在有证书文件的电脑上运行 `xray tls hash --cert 证书文件`,复制 `Leaf SHA256:` 后面那串;或者在你信得过的网络里运行 `xray tls ping -ip 服务器IP 你的域名:端口`,复制「Pinging without SNI」那一段里 `Cert's leaf SHA256:` 后面那串,下面「Pinging with SNI」那段报 `Handshake failure` 和 x509,是自签证书的正常现象。两种办法得到的都是小写、不带冒号的十六进制,原样填进去 Xray 就能连上,两段提示也不再出现。xray 程序在 v2rayN 解压包的 `bin/xray` 目录里。按源码,证书里没写域名(只签了 IP)时 `tls ping` 不打印这一行,服务器按域名给不同证书时它拿到的也可能不是这张,这两种情况用 `tls hash`。证书一换(包括到期自动续签),指纹就变,要跟着改。\n验证:xai-cert-verified-ok\n\n## 验证\n- **xai-core-starts**(人):点主界面的「重启服务」,等底部状态栏的「当前延迟」出结果,再用这个节点打开一个平时要经代理才能打开的网页。\n 预期:信息栏里不再有 `has been removed`;「当前延迟」是毫秒数、网页能打开,就解决了。内核起来了、但「当前延迟」还是 -1、网页打不开的,多半是证书过不了校验,接着把日志等级调到 info 确认。`has been removed` 还在的,下一问会先让你核对版本号和自定义配置。\n 通过 → resolved;失败 → xai-x509-at-info;无法判断 → escalate\n- **xai-cert-verified-ok**(人):更新订阅(机场节点)或保存节点设置(自建节点)后,点主界面的「重启服务」,等底部状态栏的「当前延迟」出结果,再用这个节点打开一个平时要经代理才能打开的网页。\n 预期:「当前延迟」是毫秒数,网页能打开。填了证书指纹的节点,「当前节点使用未加密连接」和「检测到不安全配置」两段提示都不再出现(实测)。服务方补了 pcs 的,更新订阅后 v2rayN 会把它读进证书指纹,提示同样不再出现(按源码,没有实测);只补了 vcn、节点又开着跳过证书验证的,这两段提示还会在,不影响连接(按源码)。\n 通过 → resolved;失败 → escalate;无法判断 → escalate\n\n## 相关条目\n- `Clash、mihomo、Xray、sing-box 与各个软件:界面和内核的关系`(见 client-and-core-concept)\n- `v2rayN 信息栏提示原文表`(见 v2rayn-error-catalog)\n- `v2rayN 提示「运行 Core 失败」:看信息栏里内核那一行(sing-box 1.14、端口被占、节点参数)`(见 v2rayn-core-start-failed)\n- `所有节点都显示超时、测速全红或全是 -1:Clash Verge Rev、v2rayN、v2rayNG 先分清是本机还是服务方`(见 all-nodes-timeout)\n- `日志在哪看、贴日志前遮什么:Clash Verge Rev、Clash Party、v2rayN、FlClash、v2rayNG`(见 where-are-logs)\n- `测速失败:v2rayN 测试速度为 0、v2rayNG 测试连接失败 EOF、Karing 节点大片变红,先分清测的是什么`(见 speed-test-failed)\n\n## 来源\n- xray-release-v26-2-6:https://github.com/XTLS/Xray-core/tree/12ee51e4bb1d02ece4ef4b7114efa2bcdc130995(引文在同名 GitHub Release 页的发布说明里,不在这个代码树里(这里登记的是 tag v26.2.6 指向的 commit)。发布说明第 5 条「TLS 移除了 allowInsecure 配置项,请使用 pinnedPeerCertSha256 和 verifyPeerCertByName 代替」;引用块:今天的版本将 allowInsecure 设为延时自动禁用(UTC 2026.6.1 00:00),请联系机场主为 allowInsecure 的订阅配置加上 pcs/vcn,即可同时兼容新旧版本;Changelog「Commands: Print leaf cert's SHA256 in tls ping」(#5628))\n- xray-commit-2c92339f:https://github.com/XTLS/Xray-core/commit/2c92339f95fe9aa493b6ae51d3b07017a44c4014(2026-01-31「TLS config: allowInsecure->pinnedPeerCertSha256」,allowInsecure 由弃用警告改为报错;首见于 pre-release v26.1.31。之后 74c726ff(2026-02-03,进 v26.2.4)加上按 2026-06-01 UTC 判断的日期闸门,v26.2.6 至 v26.6.1 都带这个闸门)\n- xray-commit-55956f8d:https://github.com/XTLS/Xray-core/commit/55956f8d70f0f92e861cea57957f62afffda31d4(2026-06-02「TLS config: Remove some deprecated fields (#6226)」:去掉日期闸门,allowInsecure 一律报错;首见于 v26.6.22(GitHub compare v26.6.1...v26.6.22 核对))\n- xray-core-src-25-12-8:https://github.com/XTLS/Xray-core/tree/81f8f398c7b2b845853b1e85087c6122acc6db0b(infra/conf/transport_internet.go L398(allowInsecure 字段)、L433(原样放进 TLS 设置):这一版遇到 allowInsecure 既不报错也不打弃用警告)\n- xray-core-src-26-3-27:https://github.com/XTLS/Xray-core/tree/d2758a023cd7f4174a5a5fa4ff66e487d4342ba0(infra/conf/transport_internet.go L709-L716(allowInsecure 为 true 时:time.Now() 过了 2026-06-01 UTC 就报已移除、拒绝加载,之前只警告;为 false 不进这个分支);transport/internet/tls/config.go L283-L350(verifyPeerCert:固定的指纹命中叶证书直接通过;verifyPeerCertByName 仍用系统根证书(或固定的 CA)校验证书链,只是换一个域名比对,所以自签证书只填 vcn 过不了);main/commands/all/tls/hash.go(tls hash --cert 读证书文件,打印 Leaf SHA256);main/commands/all/tls/ping.go L22(用法 tls ping [-ip <ip>] <domain>)、L45-L70(域名:端口 用 SplitHostPort 解析,没给 -ip 时先解析域名)、L73-L120(先不带 SNI、跳过校验握手一次,再带 SNI、校验证书握手一次)、L126-L146(只有带域名(DNSNames)的证书才当作叶证书打印 Cert's leaf SHA256))\n- xray-src-26-9-9:https://github.com/XTLS/Xray-core/tree/52a412d9e2f5c2a5142b1b4e2ab3771dacb8b120(pre-release。infra/conf/transport_security.go L361-L363(allowInsecure 为 true 一律报已移除,提 pcs 与 vcn);common/errors/feature_errors.go L25-L31(报错原文模板 The feature … has been removed and migrated to …))\n- v2rayn-release-7-22-5:https://github.com/2dust/v2rayN/tree/fcf6c1e3aefa6b0c96c2804a91661b26c39dd5ad(tag 7.22.5 指向的 commit。发行说明的引文在同名 GitHub Release 页,不在这个代码树里:开头两行「v7.22.5 版本临时允许跳过证书验证功能,需要全新下载覆盖更新」「Xray 将在 2026.8.1 禁用跳过证书验证 allowInsecure,请改用证书固定指纹」。代码树里:v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L383(节点的跳过证书验证为空时改用全局 DefAllowInsecure);Handler/ConfigHandler.cs L1109-L1112(导入节点时用全局值填空着的字段);Global.cs L424-L429(节点那一项的选项 true / false / 空);v2rayN.Desktop/Views/AddServerWindow.axaml L1110-L1112(节点那一项是下拉框 cmbAllowInsecure)、OptionSettingWindow.axaml L227-L229(全局开关);Resx/ResUI.zh-Hans.resx L672(Core: 基础设置)、L684(默认跳过证书验证 (allowInsecure))、L1746-L1747(界面警告:Xray 将在 2026.8.1 禁用跳过证书验证))\n- v2rayn-repo-v7-22-6:https://github.com/2dust/v2rayN/tree/f0ee79277853e886830ddd00ecf7b1f28f1d2035(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L383(allowInsecure = 节点自己的跳过证书验证,不再用全局默认值)、L412-L423(有证书或证书指纹时改写成 false);v2rayN.Desktop/Views/AddServerWindow.axaml L1110-L1112(跳过证书验证已是开关);OptionSettingWindow.axaml 里没有全局的默认跳过证书验证)\n- v2rayn-repo-v7-24-3:https://github.com/2dust/v2rayN/tree/92c3df45aecdee6133afe1409c43a18a9cf4c969(v2rayN/ServiceLib/Resx/ResUI.zh-Hans.resx L1776-L1777(allowInsecure 弃用提示仍是「警告:Xray 将在 2026.8.1 禁用跳过证书验证 allowInsecure…到期后无法使用」))\n- v2rayn-core-bin-a4e6f16:https://github.com/2dust/v2rayN-core-bin/commit/a4e6f1608759817f629079bc15d8ef3099dc10ba(2026-06-02「Patch Xray v26.6.1」;.github/workflows/patch-xray.yml L23(XRAY_REPO: autorepobot/Xray-core,补丁版内核从这个账号下的 Xray 分叉下载,它不是 XTLS 官方仓库))\n- v2rayn-repo-v7-24-4:https://github.com/2dust/v2rayN/tree/635a04d74c3cb6891e144756234d50e147cf175a(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L407(生成 Xray 配置时 allowInsecure = 节点的跳过证书验证)、L427-L447(有证书或证书指纹时改写成 false;只有 vcn 时不改);Handler/Builder/NodeValidator.cs L125-L131(开着跳过证书验证、没有证书与指纹就提示「当前节点使用未加密连接」,不看内核类型);Handler/Fmt/BaseFmt.cs L7、L221-L265(VLESS、Trojan 等分享链接读 insecure / allowInsecure / allow_insecure 以及 pcs、vcn;VLESSFmt.cs L32、TrojanFmt.cs L27 调用它);Handler/ConfigHandler.cs L1880、L2084(更新订阅先删掉这个订阅的全部节点再重新导入);Global.cs L636(应用内更新 Xray 取 XTLS/Xray-core 的 Release);v2rayN.Desktop/Views/AddServerWindow.axaml L1182-L1184(跳过证书验证是开关)、L1268(证书指纹(SHA-256)))\n- v2rayn-commit-e8cdd1cc:https://github.com/2dust/v2rayN/commit/e8cdd1cc025a6110107bfd9167c6687d574ffa62(2026-08-05「Remove allowInsecure from the Xray Core」;在 7.24.5 标签里、不在 7.24.4 里(GitHub compare 核对);7.24.5 Release 的发布说明列有「Xray Core 中移除 allowInsecure」)\n- v2rayn-repo-v7-24-9:https://github.com/2dust/v2rayN/tree/521230c40d5c180bc0727cf4003907edfae5a3e0(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L407-L452(Xray 的 tlsSettings 不写 allowInsecure,有证书写证书、否则有指纹写 pinnedPeerCertSha256);Services/CoreConfig/Singbox/SingboxOutboundService.cs L439(sing-box 的 insecure = 跳过证书验证);Handler/Builder/NodeValidator.cs L16-L17、L60-L66、L173-L178(sing-box 内核不支持 kcp、xhttp 传输,报错拦住启动)、L124-L147(内核是 Xray、节点是 TLS、开着跳过证书验证、没有证书与指纹时加「未加密连接」与「检测到不安全配置」两条警告,内核是 sing-box 时只加后一条;不看证书本身);ViewModels/MainWindowViewModel.cs L679-L689(只有错误才中止,警告不拦启动);Manager/AppManager.cs L666-L675(GetCoreType:节点自己的 CoreType 优先,其次「Core 类型设置」里这个协议的设置,都没有时用 Xray);Handler/ConfigHandler.cs L41(日志等级默认 warning)、L853、L949、L977(TUIC、AnyTLS、Naive 节点固定用 sing-box)、L2040-L2053 与 L2248-L2258(更新订阅先删掉这个订阅的全部节点再重新导入,只保留流量统计);Handler/Fmt/BaseFmt.cs L209-L211(分享链接读 vcn、pcs)、VmessFmt.cs L145-L147(VMess 读 JSON 里的 insecure)、TrojanFmt.cs L5、L28-L30(Trojan 读 allowInsecure 与 insecure),VLESSFmt.cs 不读;Services/SpeedtestService.cs L479-L507(Tcping 只做 TCP 建连);Global.cs L636(应用内更新 Xray 取 XTLS/Xray-core 的 Release);v2rayN.Desktop/Views/MainWindow.axaml.cs L138、L148 与 Common/Utils.cs L837(窗口标题是 v2rayN - V版本号 - 架构);v2rayN.Desktop/Views/AddServerWindow.axaml L50-L59(第一行右侧的下拉框只有鼠标悬停提示 Core 类型,没有文字标签)、L1192-L1202(跳过证书验证开关)、L1238-L1290(固定证书、获取证书、证书指纹 SHA-256 标注仅 Xray);Resx/ResUI.zh-Hans.resx L423、L579-L580、L621、L711、L1545(核心 '{0}' 不支持网络类型 '{1}')、L1581-L1588(固定证书的提示:获取证书可能因自签名证书失败)、L1623-L1624、L1776-L1782、L1807-L1808、L1864-L1865;ResUI.resx L1782-L1783、L1806-L1807(英文界面原文))\n- v2rayn-repo-v7-25-4:https://github.com/2dust/v2rayN/tree/7d6a967c18c697f28dc6917122ed3a4993fcf336(v2rayN/ServiceLib/Services/CoreConfig/V2ray/V2rayOutboundService.cs L314-L354(Xray 的 tlsSettings 不写 allowInsecure,有证书写证书、否则有指纹写 pinnedPeerCertSha256);ServiceLib/ViewModels/MsgViewModel.cs L9(最多 500 条)、L30-L41 与 L44-L66(新消息先进队列,只在自动刷新开着时每秒显示一次)、L68-L107(进队列时不看自动刷新,超过 500 条丢掉最早的);AmazTool/UpgradeApp.cs L76-L80(v2rayN 自身升级时跳过 bin 下已有的文件))\n- singbox-docs-tls-zh:https://sing-box.sagernet.org/zh/configuration/shared/tls/(出站 TLS 字段「insecure」:仅客户端,接受任何服务器证书)\n- exp-xray-allowinsecure-removed-cli-2026-09-24:验证记录(内部存档,未公开)\n- exp-xray-allowinsecure-removed-gui-2026-09-24:验证记录(内部存档,未公开)\n- exp-v2rayn-7-25-4-assets-cli-2026-10-02:验证记录(内部存档,未公开)\n- exp-v2rayn-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n- exp-v2rayn-lan-gui-windows-2026-09-29:验证记录(内部存档,未公开)\n\n最后修订:bf7a78b 2026-10-02\n"}}}
|