我正在尝试为所有主机名设置 DoH,除了一些应由 DHCP 提供的 DNS 解析的本地域。
它按预期使用完全限定名称,即本地名称被发送到 DHCP 分配的服务器,而其他所有内容都被发送到我的 DoH 客户端stubby
。但是,我在处理不合格名称时遇到问题。
这是我的配置/etc/NetworkManager/dnsmasq.d/example.conf
:
cache-size=1000
log-queries
server=//#
server=/example.com/#
server=/#/127.0.0.1#8053
请注意,它stubby
在端口 8053 上运行。为简洁起见,这是我的/etc/NetworkManager/NetworkManager.conf
:
[main]
plugins=ifupdown,keyfile
dns=dnsmasq
[ifupdown]
managed=false
journalctl
这是restartng 后的部分输出NetworkManager
:
dnsmasq[10692]: using nameserver 127.0.0.1#8053 for default
dnsmasq[10692]: using standard nameservers for domain example.com
dnsmasq[10692]: using standard nameservers for unqualified names <<< NOTICE THIS
dnsmasq[10692]: cleared cache
dnsmasq[10692]: setting upstream servers from DBus
dnsmasq[10692]: using nameserver 127.0.0.1#8053 for default
dnsmasq[10692]: using standard nameservers for domain example.com
dnsmasq[10692]: using standard nameservers for unqualified names
dnsmasq[10692]: using nameserver 10.X.X.X#53(via enp0s31f6)
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain example.com
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain X.X.X.10.in-addr.arpa
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain X.X.X.10.in-addr.arpa
之后dig asdfg.com
,我得到这个:
dnsmasq[10692]: query[A] asdfg.com from 127.0.0.1
dnsmasq[10692]: forwarded asdfg.com to 127.0.0.1
因此,DoH 的工作符合预期。
之后dig asdfg.example.com
,我得到这个:
dnsmasq[10692]: query[A] asdfg.example.com from 127.0.0.1
dnsmasq[10692]: forwarded asdfg.example.com to 10.X.X.X
因此,转发到本地 DNS 也是可行的。
之后dig asdfg
,我得到这个:
dnsmasq[10692]: query[A] asdfg from 127.0.0.1
dnsmasq[10692]: forwarded asdfg to 127.0.0.1
由于它将其发送到127.0.0.1
而不是10.X.X.X
,因此很明显它被发送到 DoH。
我怎样才能解决这个问题?
附: Debian 11,Dnsmasq 版本 2.85