EasyMosdns 分享简单好用的 DoH 与开源策略供研究使用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PMkol
V2EX    DNS

EasyMosdns 分享简单好用的 DoH 与开源策略供研究使用

  •  1
     
  •   PMkol 2022-10-07 17:45:37 +08:00 4552 次点击
    这是一个创建于 1102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    EasyMosdns 项目自发布以来,得到了 V2EX 小伙伴们的一致好评,感谢大家的认可 : D

    项目地址: https://github.com/pmkol/easymosdns

    简化 Mosdns 基本功能使用的辅助脚本,仅需几分钟即可搭建一台支持 ECS 的无污染 DNS 服务器。


    放出这个 DoH 的初衷是为了给开源项目 EasyMosDNS 测试规则,不提供公共 DNS 服务,发现直接使用的小伙伴越来越多,日解析量已经突破千万,所以优化了一下性能,分享全新版本的 DoH ,继续供大家研究测试使用。

    DoH 地址:[前往查看]


    本次更新,做了大量优化与调整:

    • 修复了因 ECS 缓存导致 DNS 解析不准的 Bug
    • 解决了 DNS 泄露国内节点的问题 (仅默认节点不泄露)
    • 更换了 CDN 厂商防止攻击造成宕机
    • 增加了 1 组境内节点规则 CN (即路由器上经常使用的境内 DNS 返回 IP 判断分流的规则)
    • 增加了 6 组境外节点规则 HK/TW/JP/SG/RU/US

    发现很多小伙伴并不知道这个项目同时也在维护 DNS 规则库,同时分享出来,适用于 DNS 分流。

    DNS 规则库地址:[前往查看]


    这个 DoH 有什么不同:

    • 开源策略

    对于安全而言这是最有说服力的。

    举例说一条大家比较关注的,如何平衡 ECS 信息与隐私保护:源码中可见对 ECS 信息做了模糊处理,例如你的 IP 为 1.3.5.7 ,处理后的 ECS 信息为 1.3.5.0/24 ,对于部分境外域名,强制更改 ECS 信息为与真实 IP 无关联但不会影响解析效果的数值。

    • 加密隧道

    严格来讲,国内无论用 UDP/TCP/DoT/DoH/DoQ 哪种方式,直接去查询海外 DNS 都是不可靠的,还可能不定期出现阻断,因为这些访问方式都有明显的特征可以识别,当然如果没有多大访问量又不在意的话,也没什么大问题。

    通过境外服务器查询海外域名才是可靠的,但境外查询的结果又如何传递国内,仅在境外服务器搭建 DNS 依旧会出现上述的问题,所以需要自建加密隧道,与远程服务器加密通信完成 DNS 的查询。其中对线路与加密方案的选择,是有少许技术含量的,否则访问量稍大就会出现 TCP 阻断。这也是我唯一没有公开的自研方案。

    普通用户只需要了解这个 DoH 是在境外服务器查询的海外域名的即可,由于提供 DoH 的服务器在境内,查询速度有质的提升,可以通过以下两个网站,分辨检测境内与境外 DNS 的分流情况。

    [境内] https://nstool.netease.com/

    [境外] https://browserleaks.com/dns


    这里做个科普:

    很多代理工具默认内置了海外 DNS ,开启代理时海外 DNS 是通过远程代理服务器访问的,所以普通用户才会对 DNS 这里的影响无感,上文提到的加密隧道也类似这个原理,只是要做远超过客户端请求量的技术改进。

    如果代理使用的是白名单模式,最优的 DNS 选择方案,就是本地 DNS 使用 DNSPOD 或 AliDNS 这类大厂的 EDNS ,远程 DNS 使用代理工具内置或 Google 、OpenDNS 、CloudFlare 等几家知名的海外 DNS ,乱折腾只是浪费时间。

    但如果代理使用的是 GFW 黑名单模式,那么就会出现污染问题。这是因为黑名单与污染名单里的域名并不一致,当被污染的域名不在黑名单时,该域名就会返回污染结果。

    所以对于无污染 DNS 的正确用法,应当是在本地名单中的域名,使用 DNSPOD 或 AliDNS 这类大厂的 EDNS ,其它全部使用无污染 DNS 进行查询。即实现代理走 GFW 名单节约流量,DNS 走白名单准确解析的效果。当然一些懒人会选择直接全部使用无污染 DNS ,但请确保这个 DNS 服务器在国内且延迟不高,不然真的会很慢。


    如果你是普通用户:

    我已将常见问题写入介绍页,基本能回答 90%以上的问题,使用问题可以加介绍页里的电报群,与群里的小伙伴们讨论,毕竟个人精力实在有限,没法在线回答问题。

    如果你是自建 DNS 用户:

    首先感谢各位免费无污染 DNS 搭建者们的认可,我不抵制私人搭建的公共 DNS 将这个 DoH 作为上游使用,还会很高兴帮助到更多人,事实上目前已有约 40%的查询量来自多家私人搭建的 DNS 。

    只要求一点,做好缓存与 QPS 限制,减少对我 DoH 的请求量。因为之前发生过攻击事件,经查证我的服务器并未直接受到攻击,全部攻击 IP 均来自一些私人搭建的 DNS 服务器,当这些 DNS 被攻击后,攻击流量同时也转发到了我的服务器,最终形成连锁攻击导致我的服务器也宕机了几小时。

    目前的处理策略,对于因没做缓存造成查询量明显超过普通用户的下游 DNS ,会转发海外处理,减少国内服务器的压力,对未做 QPS 限制且对服务器造成业务影响的下游 DNS ,会自动封禁。当然我更建议使用我已经开源的规则,在本地服务器上做分流,当出现超时后再请求我的 DoH 体验会更佳。

    最后想说的:

    维护不易,如果可以,给 EasyMosDNS 开源项目点颗星吧!

    4 条回复    2022-11-28 22:03:35 +08:00
    raycheung
        1
    raycheung  
       2022-10-09 09:33:12 +08:00
    Star 致敬
    PMkol
        2
    PMkol  
    OP
       2022-10-12 00:19:29 +08:00
    增加了一组无 CDN 直连的 DoT 与 DoH

    其中 DoH 支持 http2 与 http3 ,方便那些客户端无法使用 http1.1 连接 DoH 的小伙伴测试

    可以进介绍页里的 DNS 交流群获取地址
    martianden
        3
    martianden  
       2022-11-26 17:24:32 +08:00
    请问可否同时把 3 个地址填入 dns 软件,会不稳定吗
    PMkol
        4
    PMkol  
    OP
       2022-11-28 22:03:35 +08:00   1
    @martianden 如果是同一家的,没有意义,如果是多家,一般会同时请求,然后选择最快的一个,类似 ADGH 的客户端,还可以改多 DNS 的选择策略
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2884 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 14:30 PVG 22:30 LAX 07:30 JFK 10:30
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86