zfl9 / chinadns-ng

chinadns 重构增强版,支持域名分流、ipset/nftset、UDP/TCP/DoT
GNU Affero General Public License v3.0
1.14k stars 188 forks source link

过滤掉无效的返回 #199

Open muziling opened 2 months ago

muziling commented 2 months ago

国内DNS会对一些cn结尾的域名也进行污染,把域名污染到 0.0.0.0 或者 127.0.0.1 比如域名 anitabi.cn ,联通和腾讯都会解析到 0.0.0.0,阿里的DNS正确。

请求增加一个功能,配置了多个DNS服务器时,如果DNS服务器返回0.0.0.0 或者 127.0.0.1 ,就丢弃这个DNS服务器的此域名所有解析数据,等待其它DNS服务器的数据

muziling commented 2 months ago

如果能可配置这两个IP更好,应对 众所周知的 运营商 bogus-nxdomain

muziling commented 2 months ago

这个功能可以加不:如果一个组内都返回了无效地址,则自动向另一个组的DNS发起解析请求

zfl9 commented 2 months ago

这个功能可以加不:如果一个组内都返回了无效地址,则自动向另一个组的DNS发起解析请求

这个会导致逻辑、配置变复杂,不打算加。

如果组内所有 DNS 都返回无效地址,说明已经被国内 DNS 完全污染,此时应该将相关域名收集到 tag:gfw 组(或其他组),而不是靠程序的 fallback,fallback 会增加解析的总耗时,因为总是先尝试 chn 组(受污染),然后再查询 gfw 组。不如直接收集域名,直接走 gfw 组查询。


我还是希望让核心逻辑尽量简单,不忘初心。

应该会加个配置:针对哪些组(tag)启用此类黑名单 IP 过滤。默认对 tag:chn 组启用。

zfl9 commented 2 months ago

如果能可配置这两个IP更好,应对 众所周知的 运营商 bogus-nxdomain

暂时不搞配置吧,感觉就这两种 IP 了,等后面真正有此类需求再加也不迟。

muziling commented 2 months ago

其实我的初心就是不想太费心去关注DNS。 但是现实太残酷了。 运营商对cn域名做污染,腾讯DNS也污染了,当前只有阿里正常,后面说不定也会跟着污染。

这个功能缺少的话,需要人工每隔一段时间看下解析结果,把异常的域名找出来。

目前mosdns能实现这个功能,就是mosdns我用起来感觉不太流畅。配置方法: https://github.com/IrineSistiana/mosdns/issues/836

zfl9 commented 2 months ago

能理解,但我想说,基本没有一劳永逸的方法,总归有取舍的。

yyysuo commented 2 months ago

anitabi.cn用223的话并没有被污染,可以正常解析。 你这种需求,直接用mosdns写个逻辑判断就好了,mosdns是工具,不是成品。

muziling commented 2 months ago

是的,上面我发的mosdns issue链接也是我提的,就是写了个逻辑判断,现在是把chinadns的上游指向mosdns

basncy commented 1 month ago

这两个IP更好,应对 众所周知的

如果被劫持到钒渣呢?