DNS 分流防污染软件 mos-chinadns 踩坑分享 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Rilimu
V2EX    DNS

DNS 分流防污染软件 mos-chinadns 踩坑分享

  •  
  •   Rilimu 2020-07-11 09:53:40 +08:00 via Android 4430 次点击
    这是一个创建于 1973 天前的主题,其中的信息可能已经有所发展或是发生改变。
    很好用的软件。配置起来算是最简单的了。可惜是新软件详细教程很少。默认配置文件直接拿来用还有坑。之前 openwrt 摸爬滚打终于成功配置上了。在这里给 v 友分享一下踩过的坑。

    虽然“开箱即用”,但配置文件里:
    local 默认是 223.5.5.5 udp,不能防运营商劫持。要换 doh 。
    remote 默认是 1.0.0.1 dot 。丢包超严重,基本上不能用。由于没有能稳定直连的服务器,最后选择了通过 socks5 走代理。

    openwrt 的坑:
    默认监听地址会和 dnsmasq 冲突,要改。
    必须要装 ca-bundle 包。否则 doh 和 dot 都会报错不能连接。(太坑了,找了很久原因,最后从隔壁 smartdns 看到了....

    windows:
    除了配置文件默认服务器要改,目前没有遇到其他坑。用作者的脚本一键安装就行了。

    最后,Windows 上运行一个,防止出门连其他 WiFi 的时候被劫持。路由器上和 smartdns 一起用。国内 CDN 友好而且还能分流防污染。

    太香了,完全不后悔折腾。感谢开源大佬们的无私奉献。

    现在就是还不知道有什么办法能自动更新大陆 IP 和域名表。每次都是隔一周手动更新然后重启。
    45 条回复    2020-11-20 17:21:33 +08:00
    shikkoku
        1
    shikkoku  
       2020-07-11 10:06:18 +08:00 via Android
    默认监听端口 53 被占用的问题,要把 dnsmaq 的端口改成 0 禁用。
    shikkoku
        2
    shikkoku  
       2020-07-11 10:08:12 +08:00 via Android
    local 我记得默认配置是同时配置了 dot 和 doh 的。
    taikobo
        3
    taikobo  
       2020-07-11 11:16:06 +08:00
    能详细介绍一下和 smartdns 怎么一起用么
    Rilimu
        4
    Rilimu  
    OP
       2020-07-11 11:30:50 +08:00
    @shikkoku 没。虽然默认 dot 和 doh 参数都填好了。但 protocol 是`udp`....极具迷惑性....

    @terrytw smartdns 不要设置分流,只用国内 dns 服务器。然后设置成 mos-chinadns 的 local 服务器。就可以了。
    taikobo
        5
    taikobo  
       2020-07-11 11:47:00 +08:00
    @Rilimu 原来如此,谢谢分享
    之前试过 openwrt 自带的 https-dns-proxy,总有些奇怪的问题
    现在试试这个看看
    zro
        6
    zro &nbp;
       2020-07-11 12:49:48 +08:00
    @terrytw #5 hdp 我都弃用了,还是 stubby 好用,不知 mos-chinadns 跟开启 add-subnet 的 dnsmasq 比,会好在哪?
    看起来好像差别不大,而且空间占用得还大。。
    shikkoku
        7
    shikkoku  
       2020-07-11 16:47:24 +08:00
    我装了 ca-bundle 都不行,阿里的连接改成 dot 或者 doh 都解析不了。

    用 wiki 的命令测试会这样提示

    root@OpenWrt:~# mos-chinadns -c config.yaml -dir2exe
    INFO[0000] main: mos-chinadns ver: v1.2.0-0-g5e173f3
    INFO[0000] main: arch: amd64 os: linux
    INFO[0000] main: current working directory: /usr/bin
    FATA[0000] main: can not load config file, open config.yaml: no such file or directory

    配置文件路径是
    /etc/mos-chinadns/config.yaml
    /etc/mos-chinadns/chn.list
    /etc/mos-chinadns/chn_domain.list
    AoTmmy
        8
    AoTmmy  
       2020-07-11 16:57:51 +08:00
    smartdns 也能防污染,用 blacklist
    shikkoku
        9
    shikkoku  
       2020-07-11 17:34:50 +08:00
    确实有点坑踩的,我试着 DOH 工作不太正常去问作者,作者才告诉我,addr: "223.5.5.5:53"上的端口号要随 dns 类型改,例如 DoT 是 853,DoH 是 443 。虽然我应该留意到下面的 remote 配置里 1.0.0.1 的端口号默认是用了 853 的并且类型是 DoT 的。
    Rilimu
        10
    Rilimu  
    OP
       2020-07-11 18:22:28 +08:00 via Android
    我主要是分流用。

    真的比我之前用的 overture 和 dnsmasq 分流方案都高效的多。在我小路由上,overture ip+域名分流最卡,有请求时 30%CPU 占用。dnsmasq 只能域名分流,占 20%。前两者请求多了容易直接 100%。mos-chinadns 最多只见到 2%占用(怪不得作者的介绍页 20%都在强调高性能,虽然看不懂...

    @zro 感觉性能上确实有点区别。

    而且到目前为止分流还没出错过。dnsmasq 经常出错。

    也试过 chinadns-ng,但要编译太难了放弃了。

    就是作者的教程什么都没写,全是坑啊啊啊啊啊。你这坑我也踩了过..... @shikkoku
    shikkoku
        11
    shikkoku  
       2020-07-11 18:42:38 +08:00
    @Rilimu #10

    每个人的使用环境都不一样。Openwrt 的碎片化也很严重。全都写进 wiki 不现实。

    相信对于已经开始折腾 dns 的玩家来说,这些都是小问题。IrineSistiana

    作者原话。
    Rilimu
        12
    Rilimu  
    OP
       2020-07-11 18:48:58 +08:00
    @zro #11

    确实,最后发现踩到的坑都是常识问题。对小白可能不友好。

    刨去踩的坑。配置完其实很快很简单。
    zro
        13
    zro  
       2020-07-11 19:07:25 +08:00
    @Rilimu #10 我一直在用 dnsmasq,没发现会出什么错,开启 add-subnet 都不用考虑分流,上游是支持 EDNS 的 DNS 就可以,挂代理拿到的结果跟直连的结果可以是一样的~~
    Rilimu
        14
    Rilimu  
    OP
       2020-07-11 19:19:55 +08:00
    @zro 还有这种操作?

    大佬,能详细说一下嘛。
    zro
        15
    zro  
       2020-07-11 19:37:48 +08:00   2
    @Rilimu #14 在 /etc/dnsmasq.conf 添加“add-subnet=x.x.x.x/24,x.x.x.x/24”,x.x.x.x 换成你本省 ISP 的 IP,第二个 x.x.x.x/24 可以不要,也可以换成 X::Y:Z/64 之类的本省 IPv6,之后保存退出重启 dnsmasq~~

    至于上游 DNS,我是首选 Google 的,其次是 NextDNS,因为 Google 的 EDNS 貌似支持的比较好。。
    taikobo
        16
    taikobo  
       2020-07-11 21:27:34 +08:00
    同样遇到坑,分享一下
    如果是配合 luci 的科学软件的话,卸载了 chinadns 之后原来的 chnroute.txt 也被一并删除了,所以绕过的列表要改
    改成 chn.list 是可以的,但是要把 chn.list 里所有 ipv6 的地址删除,否则 ss-rules 一直报错
    gesse
        17
    gesse  
       2020-07-12 01:54:44 +08:00 via iPhone
    作者已经这两天被你们“气得删库跑路了”

    “This project is no longer maintained.”
    evilvoy
        18
    evilvoy  
       2020-07-12 02:04:20 +08:00
    看到楼上我笑喷了
    natsji
        19
    natsji  
       2020-07-12 02:23:57 +08:00 via Android
    ssplus 不是自带 dns 分流吗,非大陆的直接从服务器查询 dns
        20
    natsji  
       2020-07-12 02:26:15 +08:00 via Android
    missdeer
        21
    missdeer  
       2020-07-12 08:34:51 +08:00
    gesse
        22
    gesse  
       2020-07-12 10:27:03 +08:00
    @gesse
    怎么今天看又恢复了? 昨天晚上看已经删库了-_-
    Rilimu
        23
    Rilimu  
    OP
       2020-07-13 10:28:33 +08:00
    @natsji #20 coolsnowwolf 大佬,现在我也是按在他的逻辑分流,速度起飞。
    Rilimu
        24
    Rilimu  
    OP
       2020-07-13 10:32:04 +08:00
    重新测试了一下 smartdns 。貌似只要上游服务器可靠,比如大阿里的 223.5.5.5 。smartdns 就体现不出优势,甚至延时更高变逆向优化了。放弃了 smartdns 了。改用 mos-chinadns dot 直连 223.5.5.5 了。
    HalloCQ
        25
    HalloCQ  
       2020-07-13 11:14:27 +08:00
    mos-chinadns 有一点不完善 不支持把请求者 ip 设置为 ecs ip,也就是说 ecs ip 只能写死,这导致只能部署到本地。
    还是认为 overture 好用
    Rilimu
        26
    Rilimu  
    OP
       2020-07-13 12:47:56 +08:00
    @HalloCQ issus 里有人提过。但作者最后这个功能给拒绝了。

    > 如果把 mos-chinadns 部署到公网,建议使用 unbound + mos-chinadns 。unbound 负责插入请求者的 ip,负责缓存之类的。mos-chinadns 则作为 unbound 的上游。mos-chinadns 是个分流器,插 ECS 和缓存这方面做的没有 unbound 好。而且效率不高。考虑了一下,没必要再造个方形的轮子,所以这个功能不会加入。

    原话。
    HalloCQ
        27
    HalloCQ  
       2020-07-13 13:35:42 +08:00
    @Rilimu 这样的话,还是用 overture 好了。overture 的分流 和 ecs 做的挺好的。
    就是缓存发现只按域名来缓存,应该按域名+ecs 来缓存比较好
    06_taro
        28
    06_taro  
       2020-07-14 07:09:35 +08:00 via Android
    https://github.com/folbricht/routedns
    推荐一下 routedns,上面说的基本上都有,另外多个上游规则很强大
    shikkoku
        29
    shikkoku  
       2020-07-14 10:49:31 +08:00
    @06_taro #28 看上去更复杂了,又要自己编译。
    Whalko
        30
    Whalko  
       2020-07-17 12:24:06 +08:00
    mos-chinadns 改好了但还是返回被污染的结果……,我已经不知道问题出在哪里了……
    CORE2020
        31
    CORE2020  
       2020-07-20 18:43:58 +08:00
    @zro 大佬能否给个联系方式,这个怎么配合科学插件呢
    CORE2020
        32
    CORE2020  
       2020-07-20 18:55:11 +08:00
    @06_taro 这个怎么编译呢
    CORE2020
        33
    CORE2020  
       2020-07-20 18:56:17 +08:00
    dalao 我想知道你这个和科学插件怎么配合使用
    zro
        34
    zro  
       2020-07-20 20:37:23 +08:00
    @CORE2020 #31 回帖问就是了,会答复你的。。那你是打算用什么科学插件呢?
    CORE2020
        35
    CORE2020  
       2020-07-21 08:02:13 +08:00
    @zro passwall 和 ssrp 呀
    zro
        36
    zro  
       2020-07-21 13:26:40 +08:00
    @CORE2020 #35 就一个 DNS 服务都要搞得那么复杂的吗?以加密方式稳定地拿到干净、速度快的 IP 就可以了,上次跟你说的 dnsmasq+add-subnet+支持 EDNS 的 DoT/DoH 为上游 DNS,真的不香吗?
    CORE2020
        37
    CORE2020  
       2020-07-21 15:28:21 +08:00
    @zro 那个知道了。就是想玩 mos 怎么办
    zro
        38
    zro  
       2020-07-21 19:50:53 +08:00
    @CORE2020 #37 这个要不定时更新 IP 和域名数据的,每次查询新域名,都要遍历一次数据库,遍历完了我用 dnsmasq 的话请求数据估计都发到上游了,这边才开始发数据~~
    CORE2020
        39
    CORE2020  
       2020-07-22 13:41:03 +08:00 via Android
    @zro 那算了,还是继续用 smartdns
    shikkoku
        40
    shikkoku  
       2020-07-22 15:59:19 +08:00
    @CORE2020 #39 smartdns 就不用维护 blacklist ip 了吗?
    bclerdx
        41
    bclerdx  
       2020-10-21 23:01:45 +08:00
    @zro 你本省 ISP 的 IP 是什么意思?
    bclerdx
      &nbs; 42
    bclerdx  
       2020-10-21 23:11:18 +08:00
    @zro 遍历一次数据库时间需要多久?
    bclerdx
        43
    bclerdx  
       2020-10-21 23:12:05 +08:00
    @zro 这种方案,我觉得其实挺香的。
    Kobayashi
        44
    Kobayashi  
       2020-11-20 17:07:14 +08:00
    @HalloCQ mos-chinadns 和 overture 相比,前者效率更高,可以复用连接。而且 overture 规则匹配使用的是正则,灵活高但开销大。

    @AoTmmy 污染响应黑名单不大靠谱,当年 ChinaDNS 就讨论过这个问题,现在没人用这种老掉牙的方式抗污染了。https://github.com/pymumu/smartdns/issues/9
    HalloCQ
        45
    HalloCQ  
       2020-11-20 17:21:33 +08:00
    @Kobayashi 我记得 overture 可以设置 4 种规则匹配方式,看你选择。不过我已经在用 adgh 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2209 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 16:05 PVG 00:05 LAX 08:05 JFK 11:05
    Do have faith in what you're doing.
    ubao msn 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