再分享一个分流 DNS - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
brMu
V2EX    分享发现

再分享一个分流 DNS

  •  1
     
  •   brMu 2022-02-06 17:09:22 +08:00 10658 次点击
    这是一个创建于 1347 天前的主题,其中的信息可能已经有所发展或是发生改变。

    19 年的时候推荐过 smartdns( t/629205 ),今天再推荐一个,就是 mosdns ,说下原因:

    smartdns 有个 bug ,关闭测速和带有 cname 的域名都会导致 TTL 不变,进而导致这个域名的缓存不刷新,带来的影响就是动态域名不更新或正常的域名 IP 变更也不会更新。

    mosdns 拥有 smartdns 的几乎所有功能,正好可以拿来替换,就是配置稍复杂,特别注意 tab 产生的空格会导致配置文件无效。

    目前也用了 2 个多月了,稳定性没有问题,有兴趣的可以尝试。

    第 1 条附言    2022-02-12 14:48:18 +08:00
    更新一下:发现这个 mosdns 也会出现一些奇怪的问题
    1.某些网站的域名解析会报错,要多次刷新才可以,不知道什么原因
    2.cpu 占用要 smartdns 高不少,N1 上有时到 30%,smartdns 不会超过 3%
    3.对比体验下来,感觉 smartdns 还是要快那么一丢丢,特别是第一次打开网页

    后来发现,smartdns 的 cname ttl 不变有某位大佬提供了补丁,我重新编译下确实可以了,关闭测速 ttl 不变的问题目前无解,那就不关闭测试
    第 2 条附言    2022-05-25 09:11:41 +08:00
    20220525 更新:mosdns 作者开发很积极,目前的 v3.8 版本已经非常稳定,上面提到的那些问题都没有了
    24 条回复    2022-05-15 22:16:28 +08:00
    choutou
        1
    choutou  
       2022-02-06 18:00:49 +08:00 via iPhone
    臭宝 你用什么 doh 啊 分享一下
    MrCurly
        2
    MrCurly  
       2022-02-06 18:02:02 +08:00 via iPhone
    mosdns 前几天在我的 openwrt 上折腾了下,忘了是啥问题,反正就不能用,最后还是回归 smartdns 了…
    sky96111
        3
    sky96111  
       2022-02-06 18:07:02 +08:00 via Android
    AdGuardHome 关掉广告过滤拿来做 dnsmasq 上游也很不错
    hzqim
        4
    hzqim  
       2022-02-06 19:32:15 +08:00
    #Dnsmasq 好像只能单线程查询,性能较弱,添加正则查询用于分流
    #Adguard Home 是刚需,大缓存,可修改 TTL ,拦截广告追踪
    #目前中国移动的 IPV6 已不错

    我的方案:
    Client -> AdH(listen:127.0.0.1:53) -> Dnsmasq(listen:127.0.0.1:54,CN_Upstream:127.0.0.1:55,Other_Upstream:127.0.0.1:56) -> SmartDNS(listen:127.0.0.1:55,Ali_DOH_ipv4&6;listen:127.0.0.1:56,GOOGLE_DOH_ipv4_only)
    bitdepth
        5
    bitdepth  
       2022-02-06 19:40:23 +08:00
    那作者 bug 啊
    ZeroClover
        6
    ZeroClover  
       2022-02-06 19:57:02 +08:00   1
    @hzqim 都有 AdGuardHome 了,看不懂 dnsmasq 存在的意义是什么
    hzqim
        7
    hzqim  
       2022-02-06 22:55:15 +08:00
    @ZeroClover 谢谢你的质疑。
    本方案中的 Dnsmasq 打了正则补丁,能根据域名关键字(不局限于 example.com 的形式)匹配上游 DNS 服务器。非常方便定制自己的域名列表。
    看了 AdGuardHome 的 wiki ,它也能分流。但不能匹配关键字,只能匹配合法的域名或泛域名。虽有现成的 list ,但体积都在 1MiB 左右。
    sky96111
        8
    sky96111  
       2022-02-06 23:41:21 +08:00 via Android
    @ZeroClover OpenWrt 只有用内置的 dnsmasq 的时候,luci 主机名命名和本地主机名解析 IP 地址才有效。不然多一次查询开销谁乐意
    yaott2020
        9
    yaott2020  
       2022-02-06 23:54:55 +08:00 via Android
    这个不错,我一直在用。主要是支持 if ,复杂操作都可以胜任
    zro
        10
    zro  
       2022-02-07 00:13:47 +08:00
    一直嫌这个配置有点复杂,没开始用。。有没有默认配置的模板啊?
    carrionlee
        11
    carrionlee  
       2022-02-07 08:52:17 +08:00
    我已经稳定使用半年多了~~
    brMu
        12
    brMu  
    OP
       2022-02-07 09:43:29 +08:00   1
    @zro 这是我的配置,规则是 gfwlist 域名用远程 DNS 解析,其他域名用本地 DNS 解析,以本地为优先,确保不会将本地域名解析到国外,个别需要用远程 DNS 解析的放到 mylist 列表。

    log:
    level: info
    file: '/tmp/mosdns.log'

    plugin:
    - tag: server
    type: server
    args:
    entry:
    - hosts
    - mem_cache
    - main_sequence
    server:
    - protocol: udp
    addr: 127.0.0.1:53
    - protocol: udp
    addr: 192.168.2.1:53
    - protocol: tcp
    addr: 127.0.0.1:53
    - protocol: tcp
    addr: 192.168.2.1:53

    - tag: 'mem_cache'
    type: 'cache'
    args:
    size: 65536
    lazy_cache_ttl: 259200
    lazy_cache_reply_ttl: 5

    - tag: 'modify_ttl'
    type: 'ttl'
    args:
    minimal_ttl: 300
    maximum_ttl: 3600

    - tag: main_sequence
    type: sequence
    args:
    exec:
    - if:
    - gfwlist
    exec:
    - _prefer_ipv4
    - forward_google
    - ipset
    - modify_ttl
    - _return

    - if:
    - '!gfwlist'
    exec:
    - _prefer_ipv4
    - forward_cn
    - modify_ttl
    - _return


    - tag: forward_cn
    type: forward
    args:
    upstream:
    - addr: tls://dns.pub
    - addr: tls://223.5.5.5
    bootstrap:
    - 119.29.29.29
    - 223.5.5.5

    - tag: forward_google
    type: fast_forward
    args:
    upstream:
    - addr: tcp://8.8.8.8
    - addr: tcp://1.1.1.1
    idle_timeout: 60

    - tag: 'ipset'
    type: 'ipset'
    args:
    set_name4: 'gfwlist'
    set_name6: ''
    mask4: 0
    mask6: 0

    - tag: gfwlist
    type: query_matcher
    args:
    domain:
    - 'ext:./gfwlist.conf'
    - 'ext:./mylist.conf'

    - tag: 'hosts'
    type: 'hosts'
    args:
    hosts:
    - 'ext:./hosts'
    moxuanyuan
        13
    moxuanyuan  
       2022-02-07 10:01:19 +08:00
    之前在路由 op 中折 smartdns ,年前重了 op ,配置 smartdns ,只在 Turbo ACC 中了 DNS 缓存,感什。。在不明白初什要折 dns 。。。
    brMu
        14
    brMu  
    OP
       2022-02-07 10:21:33 +08:00
    @bitdepth 报过 bug ,作者好久没更新了,不知道什么原因

    @moxuanyuan 主要是用来分流、超长时间缓存、并发查询、修改 TTL 、DoT ,如果没有这些特殊需求,确实不用折腾的
    wagsoft
        15
    wagsoft  
       2022-02-07 10:25:51 +08:00
    捣鼓 DNS 的目的是啥?
    难道能直连 GFW 不让连的?
    moxuanyuan
        16
    moxuanyuan  
       2022-02-07 10:43:34 +08:00
    @brMu #14 op 中的出国软件都自带 dns 分流和缓存。。超长时间缓存,并发查询、修改 TTL 、DoT ,感觉都是伪需求。。
    Rilimu
        17
    Rilimu  
       2022-02-07 12:43:15 +08:00 via Android
    在用。神器。

    if 很灵活。有需要直接 if 。一个程序解决,不用套娃其他 dns 。而且可以 IP 分流。

    个人感觉单域名分流是大坑。域名是可以随便注册和改 IP 的,所有的域名表其实都是大佬们收集的。所以域名表理论上是不可能全的而且变动很大。所以可能有很多域名都被错误分流了。但人们只会感觉网慢了但不知道原因。IP 可是严格分配制的。域名顶多能白名单分流。只有 IP 才能地域分流。

    用域名来地域分流,不在域名表里的域名能不能正确分流全靠运气。

    曾经也是 adh yyds ,现在换了,就知道 ip 分流多有用了。

    还有 redis 外部缓存也是神技,要多大有多大,重启路由都不怕。
    Rilimu
        18
    Rilimu  
       2022-02-07 12:45:07 +08:00 via Android   1
    @zro 有模板啊,wiki 里面,现成的分流配置,复制粘贴直接用。
    Rilimu
        19
    Rilimu  
       2022-02-07 12:53:59 +08:00 via Android
    配置确实难。但是作者还有个不用配置的 mosdns-cn 。以 cn 结尾没错就那个意思。我跟我朋友都推荐这个。自动安装开箱就用。不想折腾的可以去看看。
    brMu
        20
    brMu  
    OP
       2022-02-07 16:09:29 +08:00
    @moxuanyuan 那还真不适合你,对你来说是就是伪需求,但对于别人来说真不是

    @Rilimu IP 分流也用过,最大的问题就是会有误判,比如米家会判断到欧洲、华为有些 app 也会分流到国外
    Rilimu
        21
    Rilimu  
       2022-02-07 17:25:25 +08:00
    @brMu 对。IP 分流误判也很烦。以前网易云什么的经常变国外。但自从加上域名后分流就再也没遇到过问题了。猜测误判的 ip 都是大公司的,然后大公司的域名都被大佬们收录了。两种分流一起用完美取长补短体验就很好。只是带这功能的软件不多。
    brMu
        22
    brMu  
    OP
       2022-02-07 17:36:18 +08:00
    @Rilimu mosdns 的默认分流配置我也用过,也遇到过问题,支付宝里的网商银行打不开,后来干脆放弃了(不希望以后有什么打不开就怀疑到分流),直接白名单吧,国外要访问的网页也就那几个,主要还是国内,当然适合自己的才是最好的
    dudulangjiao
        23
    dudulangjiao  
       2022-03-26 20:50:45 +08:00
    我也发现了 某些网站的域名解析会报错,要多次刷新才可以
    fcymk2
        24
    fcymk2  
       2022-05-15 22:16:28 +08:00
    试了下, 真好用..从 coredns 转过来了.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5434 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:49 PVG 14:49 LAX 23:49 JFK 02:49
    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