dnsmasq 支持动态上游 DNS 服务器吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
EricInBj
V2EX    宽带症候群

dnsmasq 支持动态上游 DNS 服务器吗?

  •  
  •   EricInBj 2020-10-19 12:23:44 +08:00 3274 次点击
    这是一个创建于 1871 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当然支持了,配置读取 /etc/resolve.conf 就可以

    我想知道是否可以直接从上游 DHCP 获取 DNS 服务器地址?

    情况是这样的:

    1. MAC 上装了 DNSMASQ,加了些自定义的解析(比较多,用 HOSTS 不方便)
    2. 在网络设置里设置了 DNS 服务器为 127.0.0.1, 这样的话 resolve 文件里也就变成了 127.0.0.1
    3. 现在在网络设置里面增加了 1.2.4.8 这样的公共 dns

    希望实现的效果是:不通过 resolve 文件来动态寻找上游服务器,而是根据 DCP 来获取,请问是否可行?
    第 1 条附言    2020-10-19 14:30:04 +08:00
    补充一下:
    1. 根据 WIFI 名称做后续处理动作:
    https://razeencheng.com/post/auto-change-network-location-base-on-name-of-wifi.html

    2. 获取 DHCP 下发的信息:
    DNS=`ipconfig getpacket en0|grep domain_name_server|awk -F"[{,}]" '{print $2}'`

    3. 写入临时文件
    DNS=`ipconfig getpacket en0|grep domain_name_server|awk -F"[{,}]" '{print $2}'`
    echo "nameserver $DNS" > /tmp/upstream.conf
    echo "nameserver 1.2.4.8" >> /tmp/upstream.conf

    4. resolve-file=/tmp/upstream.conf

    多个 DNS 的情况我也只取了第一个,懒得处理了,反正我加了个公共 DNS 兜底
    19 条回复    2020-10-21 10:32:17 +08:00
    zro
        1
    zro  
       2020-10-19 13:12:09 +08:00
    貌似比较适合用 ADGuardHome 。。
    amplatzer
        2
    amplatzer  
       2020-10-19 13:13:35 +08:00
    #dnsmasq.conf
    server=1.2.4.8

    这样?
    amplatzer
        3
    amplatzer  
       2020-10-19 13:14:33 +08:00
    -R, --no-resolv
    Don't read /etc/resolv.conf. Get upstream servers only from the command line or the dnsmasq configuration file.

    或者这个选项?
    EricInBj
        4
    EricInBj  
    OP
       2020-10-19 13:15:52 +08:00
    @zro 这东西可以?他不也是指定上游吗?

    我主要是在单位上游应该是 10.X.X.X, 到了家可能又是 172.X.X.X,然后连自己的热点又是 192.X.X.X
    EricInBj
        5
    EricInBj  
    OP
       2020-10-19 13:17:34 +08:00
    @amplatzer no-resolve 只是告诉他不去读取 resolve.conf 里的配置,通过命令行参数或者直接在配置文件里写上游。
    我是想让他不读 resolve,而是从 dhcp server 获取上游 DNS 地址。
    amplatzer
        7
    amplatzer  
       2020-10-19 13:19:53 +08:00
    你 DHCP 分配的 DNS 会一直变化 吗? 为什么不直接把 DHCP 到的 DNS 写死到 配置文件里?
    amplatzer
        8
    amplatzer  
       2020-10-19 13:24:50 +08:00
    整一个可以获取 dhcp 信息的脚本(dhclient ?), 当发现上游 DNS 服务器变化时, 重启 dnsmasq, 并设置成新 DNS 。
    EricInBj
        9
    EricInBj  
    OP
       2020-10-19 13:42:38 +08:00
    @amplatzer 换了环境就变了啊,比如从家到公司。

    是的,不行就把 DHCP 拿到的往一个文件去更新了,倒不用自己重启 DNSMASQ,换成自己定义的 resolve 文件就行,文件变化了会自动 reload 的。
    EricInBj
        10
    EricInBj  
    OP
       2020-10-19 14:19:43 +08:00
    搞定了
    在 WIFI 切换完成之后,获取 DHCP 给过来的 DNS,然后写到 /tmp/upstream.conf,dnsmasq.conf 里面设置 resolve-file 到这个文件。
    kerro1990
        11
    kerro1990  
       2020-10-19 14:22:14 +08:00
    上游也没啥用,运营商现在是 udp 端口劫持到省级 dns 服务器,DOH 作为上游试试
    EricInBj
        12
    EricInBj  
    OP
       2020-10-19 14:25:51 +08:00
    @kerro1990 不是为了 XX,纯粹 CDN 考量,所以还是得运营商的 DNS 。
    至于别的,一般也不需要考虑 CDN,那不是还有 dnsmasq.conf 么。
    geekvcn
        13
    geekvcn  
       2020-10-19 18:28:56 +08:00 via iPhone
    选个国内 EDNS 支持比较好的 DNS 不就行了,比如阿里 DNS
    bclerdx
        14
    bclerdx  
       2020-10-19 23:57:35 +08:00
    @geekvcn 感觉是这样的,目前阿里的公共 DNS 是支持 EDNS 了。
    EricInBj
        15
    EricInBj  
    OP
       2020-10-20 09:00:16 +08:00
    @geekvcn 也得在 dnsmasq 的配置文件里使用 add-subnet 来指定一下吧?而这个是变化的,公司和家里的不一样。
    geekvcn
        16
    geekvcn  
       2020-10-20 09:56:47 +08:00 via iPhone
    @EricInBj 加参数是指定 ip,不加参数,默认参数就是请求 ip
    geekvcn
        17
    geekvcn  
       2020-10-20 10:13:17 +08:00 via iPhone   1
    @EricInBj 而且不建议用 dnsmasq 来搭建个人 dns 了,Smartdns,ADGuardHome 之类的用 DoT/DoH 还能防劫持。

    阿里 DoH EDNS 测试链接
    移动:
    https://223.5.5.5/resolve?name=www.taobao.com.&type=1&edns_client_subnet=112.25.2.98/24
    联通:
    https://223.5.5.5/resolve?name=www.taobao.com.&type=1&edns_client_subnet=219.158.100.149/24
    电信:
    https://223.5.5.5/resolve?name=www.taobao.com.&type=1&edns_client_subnet=61.152.24.70/24
    当前网络:
    https://223.5.5.5/resolve?name=www.taobao.com.&type=1
    EricInBj
        18
    EricInBj  
    OP
       2020-10-21 10:21:23 +08:00
    @geekvcn 感谢,我抽空再研究一下。
    EricInBj
        19
    EricInBj  
    OP
       2020-10-21 10:32:17 +08:00
    @geekvcn 刚拿家里的 ADGuardHome 试了一下,用 Ali 的 EDNS 确实解析结果跟运营商的差不多
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2484 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:40 PVG 23:40 LAX 07:40 JFK 10:40
    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