使用 Clash DNS 解析的一个问题

327 天前
 kun9

Clash 版本:0.20.39
最近我接触了 emby 然后搞了个 emby 伪服务器验证破解。
我所有的操作都是根据下面这个教程,所有配置与下面一样。
https://aikenh.cn/cn/emby_localhost_crack_by_nginx/#more
一切都非常顺利不过最后出了一点小问题。
经过多次尝试我发现只要开启 clash 进行测试就不行
如访问https://mb3admin.com/admin/service/registration/validate/

只要关闭了 clash 就能成功

后来发现好像是 dns 解析的问题。
因为我在完全不开代理,不修改 hosts 的设备上测试,结果就是第一张图片。
然后我检查 Clash 的 dns 解析


Mixin 的配置

可以发现 Clash 拿到了谷歌的 dns 解析,但是匹配的规则是我本地 hosts 的 dns 解析,也就是我的云服务器的 IP 地址。Connections 中的详细信息也表示 Destination 是我的云服务,但是实际上 Clash 访问的真正目标是谷歌解析返回的 IP 地址,也就是 emby 原本的服务器地址。
(这是 Clash 的一个 bug 吧。各位现在还在用 Clash 吗)

2011 次点击
所在节点    问与答
6 条回复
yianing
326 天前
是本地用 hosts 解析到了 vps ip ,sniffer 域名出来之后又从谷歌获取了 ip 吧,把 hosts 里的那个规则加到 clash 的 dns hosts 里面看看。
现在已经转战 clash.meta 了
yianing
326 天前
kun9
326 天前
还是一样的
7h3d4wn
326 天前
clash 的 fallback dns srv 的定义是这样的:
Concurrent request with nameserver, fallback used when GEOIP country isn't CN.
zai7lou
326 天前
没在用 Clash ,但一直在用 Clash Meta 。

如果没猜错,你的 rules 里的 ip 规则,没有加 no-resolve ,所以导致发生了 2 次 dns 。
第一次,路由时,因为域名规则都没匹配上,所以尝试 dns 拿 ip 进行路由,就是谷歌那次。
第二次,路由后,判定直连,此时去建立真正的 tcp/ip 连接,dns 拿 ip ,拿到你 host 里那个。

建议把 rules 里所有 ip 规则后面都加上 no-resolve ,可以解决你现在的问题。

另外,使用 fake-ip 了,就没必要 fallback 了。
kun9
325 天前
还是不行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1004775

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX