记录两个 Clash Verge 的小问题:开机自启失效的注册表修复,以及订阅更新后 DNS 设置被覆盖的持久化方案。
开机自启:注册表修复
Clash Verge 自带的「开机自启」偶尔失效,可以直接写注册表解决:
1
| reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Clash Verge" /t REG_SZ /d "\"D:\Program Files (x86)\Clash Verge\clash-verge.exe\" --startup" /f
|
路径按自己的安装位置改;--startup 参数让它静默启动。
DNS 持久化:脚本方案
原理
订阅里自带的 DoH 设置每次更新都会把手动改的 DNS 冲掉。解决办法是在当前订阅的脚本 profiles/srYK3khjjwDv.js 的 main() 函数开头加入 DNS 覆盖逻辑:
1
2
3
4
5
| config.dns.nameserver = ["223.5.5.5", "119.29.29.29"];
config.dns["proxy-server-nameserver"] = ["223.5.5.5", "119.29.29.29"];
config.dns["direct-nameserver"] = ["223.5.5.5", "119.29.29.29", "114.114.114.114"];
config.dns["direct-nameserver-follow-policy"] = true;
config.dns["nameserver-policy"] = { "geosite:cn,geolocation-cn": ["223.5.5.5", "119.29.29.29"] };
|
⚠️ srYK3khjjwDv.js 是当前订阅的脚本文件名,不同订阅名字不一样,按自己的来。
为什么这能持久化
- Clash Verge 的加载顺序:订阅 → Merge → Script → 最终配置
- Script.js 在每次订阅更新 / 重启核心时都会执行
- 脚本直接修改
config 对象,订阅里的 DoH 设置会被覆盖 - 不管订阅怎么更新,脚本始终在最后一步强制改 DNS