ClashX.Meta
ClashX.Meta copied to clipboard
[Bug] 获取系统DNS错误,导致dns回环
感谢你向 ClashX 提交 issue! 在提交之前,请确认:
- [x] 我已经在 Issue Tracker 中找过我要提出的问题
- [x] 这是 ClashX UI层面的问题,并非 Clash Core 的问题(例如xx软件连不上,无法连接特定服务器等)。其他 Clash 衍生版本没有次问题。
- [x] 如果你可以自己 debug 并解决的话,提交 PR 吧!
请注意,如果你并没有遵照这个 issue template 填写内容,我们将直接关闭这个 issue。
我都确认过了,我要继续提交。
请附上任何可以帮助我们解决这个问题的信息,如果我们收到的信息不足,我们将对这个 issue 加上 Needs more information 标记并在收到更多资讯之前关闭 issue。
clashX config
# 配置查询域名使用的 DNS 服务器
nameserver-policy:
# 'www.baidu.com': '114.114.114.114'
# '+.internal.crop.com': '10.0.0.1'
# "geosite:cn,private":
# - tls://doh.pub:853
# - tls://dns.alidns.com:853
"geosite:cn":
- "system"
ClashX log
……
ClashX Crash log
……
环境 Environment
……
- 使用者的操作系统 (the OS running on the client) ……
- 网路环境或拓扑 (network conditions/topology) ……
- ISP 有没有进行 DNS 污染 (is your ISP performing DNS pollution?) ……
- 其他 ……
说明 Description
重现问题的具体布骤 Steps to Reproduce
- [First Step]
- [Second Step]
- ……
我预期会发生……?
预期会使用系统的DNS作为 geosite中cn的dns服务器
实际上发生了什麽?
在开启了tun模式的情况下,只有退出软件第一次打开的时候可以正常运行,如果重载配置文件指定系统dns会失效,无法解析出在 nameserver-policy:中配置的system dns
可能的解决方案 Possible Solution
我怀疑是tun模式修改了系统的dns,然后重载配置文件的时候读取的是修改之后的dns,造成环路。只有第一次启动的时候读取的是网络分配的dns,所以可以正常运行。 解决方案:
- 在重载配置文件的时候,先将tun模式关闭,恢复系统dns,等到内核读取到系统的dns之后,再次按照配置文件的配置开启tun模式
- 读取系统dns的方式改一下(这里可能涉及到内核的变更)
更多信息 More Information
+1 这也许就是macos重启以后,meta自启失去代理功能的原因了