muink / luci-app-homeproxy

A homeproxy fork with clash api, selector/urltest node, subscribes grouping & ruleset support (stable version) (updates stopped indefinitely)
https://github.com/muink/homeproxy
GNU General Public License v2.0
56 stars 16 forks source link

反复测试了这个问题如何解决? #4

Closed onlyfirer closed 7 months ago

onlyfirer commented 7 months ago

同一个节点科学,如果默认DNS是远程DNS就会被墙的,换成默认为国内的DNS就可以出去,但是测试DNS泄漏的时候就有国内的DNS 但也有一种节点,不管默认DNS是远程DNS还是国内的DNS,他都可以出去。当然用默认国内DNS的话测试dns泄漏时也是有内的DNS 如下图: 1-2 出站是这个:芝麻开门 001 这个是采用默认为远程的,那么接到YY相关的节点都出不去。然后free 开头的节点可以出去, 001

两个不同机场的节点。但是只有我在芝麻开门这里选择了free节点后,但youtube选的是YY 的节点同样可以科学了。 只要在芝麻开门这个地方换成YY的节点就全部出不去了,包括国内(这里没有绕过国内的设置)也不能上网了。 第二种形式: 2 把默认的改成国内的就都 可以科学了,在芝麻开门这里也不一定要选free节点了,全部都可以科学上网,但是就是DNS检测时有国内的 这是什么原因造成的? 有没有办法解决?

muink commented 7 months ago

请发去除了隐私信息的config文件 /etc/config/homeproxy

onlyfirer commented 7 months ago

我发配置文件放了两对不同的节点 测试看下是什么问题!

onlyfirer commented 7 months ago

上面这个配置把网卡的IPV6开启与禁止的国内访问速度延迟不一样。 第一张是开启的 1 第二张是禁止IPV6网卡信息 2

muink commented 7 months ago

简单解释下原因:

默认dns服务器 Cloudfale 的地址是域名, 需要解析为 ip 才能访问到. 故它首先要请求到自身的 dns.quad9.net 的 ip 地址才能开始工作. 所以 dns.quad9.net 的 dns请求经由 Cloudfale 这个 dns server 项设置的出站 芝麻开门 向外发出, 但是 yy 节点的地址也是域名而不是 ip , 同样需要进行 dns 解析为 ip , 而且大概率不匹配 dnsrule:cn_domain 也不匹配 dnsrule:google_domain , 那么就会走默认的dns服务器, 也就是 Cloudfale. boom陷入死循环了! 但是 free 节点是 ip 地址, 直接就能连接不需要dns解析, 所以就没有这个问题. Snipaste_2024-04-15_19-13-03 Snipaste_2024-04-15_19-12-22

解决办法:

这条规则加到 dns rules 最上面 image 另外, 这两条规则, 如果你的目的是 匹配cn ruleset走直连outbound匹配国外 ruleset走芝麻开门outbound 的话, 建议去掉, 因为这个是 匹配来自指定 outbound 的 dns请求, 而不是前面的目的 Snipaste_2024-04-15_19-50-17 Snipaste_2024-04-15_19-48-41

onlyfirer commented 7 months ago

@muink 非常感谢大佬解释说明,参照您的办法问题解决了,原因是我对这个DNS规则这的服务器的作用没有搞明,谢谢了!