leev2
V2EX  ›  DNS

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

  •  
  •   leev2 · Aug 5, 2018 · 23180 views
    This topic created in 3013 days ago, the information mentioned may be changed or developed.

    根据文章教程步骤,设置了路由器的 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 replies  •  2018-08-25 09:30:35 +08:00
    CloudnuY
    CloudnuY
    Aug 5, 2018
    1
    把「--all-servers 」写到启动参数里面?
    ysc3839
    ysc3839
    Aug 5, 2018 via Android
    2
    不使用
    ysc3839
    ysc3839
    Aug 5, 2018 via Android
    3
    不使用 resolv-file,改为直接配置 server=
    leev2
    leev2
    OP
    Aug 5, 2018
    4
    @ysc3839
    dnsmasq.conf,文件里面,这样写就可以了是吗?

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

    all-servers
    server=
    server=
    server=
    aveline
    aveline
    Aug 5, 2018
    5
    不如放弃 dnsmasq,来用 dnsdist 吧。

    https://dnsdist.org/guides/serverselection.html
    hugo007y
    hugo007y
    Aug 5, 2018
    6
    响应最快,并不代表解析的地址访问速度最快,这个是不同概念啊。
    leev2
    leev2
    OP
    Aug 5, 2018
    7
    @hugo007y 那有其它更好的方案推荐的吗?就是访问不同的网站可以自动选择最优的 DNS 进行解析,路由端、PC 端都可以。
    fonlan
    fonlan
    Aug 5, 2018 via Android
    8
    dnsmasq 这个只是看哪个 DNS 服务器响应块,不代表返回的地址你连接快。如果要返回连接最快的解析地址的话 win 有 DNS chooser,路由端的话有 SmartDns,恩山了解下?
    leev2
    leev2
    OP
    Aug 6, 2018
    9
    @fonlan 这两个都用过,主要是主路由装不了 SmartDNS。这样说的话,dnsmasq 是无法实现这样的功能?之前理解有误区☺
    fonlan
    fonlan
    Aug 6, 2018 via Android
    10
    @leev2 不一定要主路由装,你也可以挂个 xx 派的微型版装 SmartDns 作为局域网的默认 DNS 解析服务器,主路由的 dhcp server 那里设置一下就行
    ysc3839
    ysc3839
    Aug 6, 2018 via Android
    11
    @leev2 我没自己写过 dnsmasq 的配置文件,所以不知道……
    bigtwo
    bigtwo
    Aug 6, 2018
    12
    查看配置文件是否有 strictorder 或--strict-order 的参数,有参数则 all-servers 无效
    leev2
    leev2
    OP
    Aug 6, 2018
    13
    @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
    miaomiao888
    Aug 6, 2018
    14
    单纯选用返回最快 /延迟最低的 DNS 根本没 P 用,返回的 IP 中哪个 IP 对于你的网络来说最快才是重点!


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

    缓存了解下 min-ttl 这个参数就可以了
    425685343
    425685343
    Aug 9, 2018
    20
    这时候就需要 SRTT 了,所以还是选择 BIND 吧
    iLPL
    iLPL
    Aug 15, 2018
    21
    用 SmartDNS 当上游 DNS
    bclerdx
    bclerdx
    Aug 23, 2018
    22
    @cnyang 真的么?
    zhouyut001
    zhouyut001
    Aug 25, 2018 via Android
    23
    no-resolv, no-poll, all-servers,在 dnsmasq. conf 里添加你需要的 DNS, service 重启,status 可以看见使用多个 DNS 同时并发查询
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5319 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 03:28 · PVG 11:28 · LAX 19:28 · JFK 22:28
    ♥ Do have faith in what you're doing.