dnsmasq 如何智能选择最快的上游 DNS 服务器? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leev2   DNS

dnsmasq 如何智能选择最快的上游 DNS 服务器?

  •  
  •   leev2 2018-08-05 01:56:58 +08:00 21893 次点击
    这是一个创建于 2626 天前的主题,其中的信息可能已经有所发展或是发生改变。

    根据文章教程步骤,设置了路由器的 dnsmasq,但是有个问题不明白: resolv-file=/etc/resolv.dnsmasq.conf 比如: nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 1.2.4.8 nameserver 223.5.5.5

    这里设置了自定义的 DNS 上游服务器地址,但是只能是默认使用第一个地址,但是没办法筛选出最快的 DNS 服务器使用。

    然后文章后面又提到了通过配置文件里面添加 all-servers

    $ vi /etc/dnsmasq.conf

    all-servers
    server=1.1.1.1
    server=8.8.8.8 server=1.2.4.8 server=223.5.5.5

    all-servers 表示对以下设置的所有 server 发起查询,选择回应最快的一条作为查询结果返回。

    那么请问下,resolv.dnsmasq.conf 文件里面,设置了所有的上游 DNS,是否是还需要在 dnsmasq.conf 里面,体添加“ server=”这个参数呢?

    或者有什么其它方案可以实现 dnsmasq 能自动选择最快的 dns 使用。

    文章地址: https://www.hi-linux.com/posts/30947.html

    23 条回复    2018-08-25 09:30:35 +08:00
    CloudnuY
        1
    CloudnuY  
       2018-08-05 02:36:53 +08:00
    把「--all-servers 」写到启动参数里面?
    ysc3839
        2
    ysc3839  
       2018-08-05 05:47:33 +08:00 via Android
    不使用
    ysc3839
        3
    ysc3839  
       2018-08-05 05:47:52 +08:00 via Android
    不使用 resolv-file,改为直接配置 server=
    leev2
        4
    leev2  
    OP
       2018-08-05 10:00:48 +08:00
    @ysc3839
    dnsmasq.conf,文件里面,这样写就可以了是吗?

    no-hosts
    addn-hosts=/dev/shm/dnsrecord.txt
    no-resolv

    all-servers
    server=
    server=
    server=
    aveline
        5
    aveline  
       2018-08-05 10:56:48 +08:00
    不如放弃 dnsmasq,来用 dnsdist 吧。

    https://dnsdist.org/guides/serverselection.html
    hugo007y
        6
    hugo007y  
       2018-08-05 14:22:22 +08:00
    响应最快,并不代表解析的地址访问速度最快,这个是不同概念啊。
    leev2
        7
    leev2  
    OP
       2018-08-05 18:47:54 +08:00
    @hugo007y 那有其它更好的方案推荐的吗?就是访问不同的网站可以自动选择最优的 DNS 进行解析,路由端、PC 端都可以。
    fonlan
        8
    fonlan  
       2018-08-05 23:32:09 +08:00 via Android
    dnsmasq 这个只是看哪个 DNS 服务器响应块,不代表返回的地址你连接快。如果要返回连接最快的解析地址的话 win 有 DNS chooser,路由端的话有 SmartDns,恩山了解下?
    leev2
        9
    leev2  
    OP
       2018-08-06 00:18:00 +08:00
    @fonlan 这两个都用过,主要是主路由装不了 SmartDNS。这样说的话,dnsmasq 是无法实现这样的功能?之前理解有误区
    fonlan
        10
    fonlan  
       2018-08-06 00:47:54 +08:00 via Android
    @leev2 不一定要主路由装,你也可以挂个 xx 派的微型版装 SmartDns 作为局域网的默认 DNS 解析服务器,主路由的 dhcp server 那里设置一下就行
    ysc3839
        11
    ysc3839  
       2018-08-06 01:28:48 +08:00 via Android
    @leev2 我没自己写过 dnsmasq 的配置文件,所以不知道……
    bigtwo
        12
    bigtwo  
       2018-08-06 08:54:41 +08:00
    查看配置文件是否有 strictorder 或--strict-order 的参数,有参数则 all-servers 无效
    leev2
        13
    leev2  
    OP
       2018-08-06 09:53:16 +08:00
    @cnyang 就是有一点不太明白
    在,/etc/dnsmasq.conf,里面填写

    all-servers
    server=1.2.4.8
    server=223.5.5.5
    server=8.8.8.8

    和在 /etc/resolv.dnsmasq.conf,里面,填写

    nameserver 1.2.4.8
    nameserver 223.5.5.5
    nameserver 8.8.8.8

    这两个有什么区别?
    miaomiao888
        14
    miaomiao888  
       2018-08-06 11:13:41 +08:00
    单纯选用返回最快 /延迟最低的 DNS 根本没 P 用,返回的 IP 中哪个 IP 对于你的网络来说最快才是重点!


    https://www.jianshu.com/p/ad63fe00858c
    bigtwo
        15
    bigtwo  
       2018-08-06 13:19:26 +08:00
    @leev2 这得看你怎么安装的,ps aux 查看下进程,看 dnsmasq 的运行参数
    一般而言,/etc/dnsmasq.conf 是参数文件载入的子文件,或者算前置文件,以此生成真正的参数文件(临时)
    bigtwo
        16
    bigtwo  
       2018-08-06 13:22:27 +08:00
    关于 dnsmasq 的参数可以使用 dnsmasq --help 查看,nameserver 是 linux 识别 dns 的格式,dnsmasq 启动脚本会转换为 server 格式
    hugo007y
        17
    hugo007y  
       2018-08-06 21:30:15 +08:00
    @leev2 我不知道你的用途是什么,如果是 FQ,那么目前最现实的是分流,然后 dnsmasq 做缓存,min-ttl 尽量设置长时间,一般足够了。
    leev2
        18
    leev2  
    OP
       2018-08-06 22:42:02 +08:00
    @hugo007y FQ 我有酸酸,主要是想提高下浏览网站的速度。比如有时候会出现打开一些网站比较慢,然后可能刷新下又快了。又或者可以解决一些 DNS 污染的问题,页面一直刷新。
    hugo007y
        19
    hugo007y  
       2018-08-08 00:30:52 +08:00
    @leev2 你路由器是什么系统,openwert ?如果是,应该在分流和缓存方面处理,chinadns 和 dnsmasq 就可以解决了。

    缓存了解下 min-ttl 这个参数就可以了
    425685343
        20
    425685343  
       2018-08-09 19:36:30 +08:00
    这时候就需要 SRTT 了,所以还是选择 BIND 吧
    iLPL
        21
    iLPL  
       2018-08-15 03:19:57 +08:00
    用 SmartDNS 当上游 DNS
    bclerdx
        22
    bclerdx  
       2018-08-23 21:25:15 +08:00
    @cnyang 真的么?
    zhouyut001
        23
    zhouyut001  
       2018-08-25 09:30:35 +08:00 via Android
    no-resolv, no-poll, all-servers,在 dnsmasq. conf 里添加你需要的 DNS, service 重启,status 可以看见使用多个 DNS 同时并发查询
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3807 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 160ms UTC 00:13 PVG 08:13 LAX 17:13 JFK 20:13
    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