我正在尝试使用 dnsmasq 配置 DNS 缓存。服务器响应查询,但响应时间与 Cloudflare DNS 完全相同。为了测试 DNS 服务器,我从我的计算机以及 dnsmasq 配置文件中删除了所有互联网 DNS 服务器。
这是我的/etc/dnsmasq.conf
domain=raspberry.local
resolv-file=/etc/resolv.dnsmasq
min-port=4096
cache-size=10000
我尝试过例如:
dig facebook.it
查询时间约为 85 毫秒,如果我使用 Clodflare DNS,这正是我所拥有的图块。也许有一些我不明白的地方,但我认为如果我使用本地缓存 DNS,查询时间应该小于 10 毫秒。
这里是文件/etc/resolv.conf的内容
# Generated by resolvconf
# Domain
search xxxxxxx
# CloudFlare Servers
nameserver 1.1.1.1
nameserver 1.0.0.1
search lan
nameserver 127.0.0.1
我没有尝试 127.0.0.1,因为我使用树莓派上的 DNS 服务器来处理 lan 的其余部分。我尝试过 dig facebook.com ,响应来自 192.168.100.5,即树莓派 LAN IP
这里是文件/etc/resolv.conf的内容
# Generated by resolvconf
# Domain
search xxxxxxx
# CloudFlare Servers
nameserver 1.1.1.1
nameserver 1.0.0.1
search lan
nameserver 127.0.0.1
我没有尝试 127.0.0.1,因为我使用树莓派上的 DNS 服务器来处理 lan 的其余部分。我尝试过 dig facebook.com ,响应来自 192.168.100.5,即树莓派 LAN IP
答案1
如果您确实想使用 dnsmasq 作为缓存 DNS 并允许 LAN 的其余部分连接到它:
从您的中删除上游名称服务器resolv.conf
:
# Generated by resolvconf
# Domain
search xxxxxxx
search lan
nameserver 127.0.0.1
您此处不需要 cloudflare DNS 服务器。您可以将它们添加到 dnsmasq 使用的配置文件中。然后,按dnsmasq.conf
如下方式配置 dnsmasq:
domain=raspberry.local
resolv-file=/etc/resolv.dnsmasq
min-port=4096
cache-size=10000
listen-address=<your_local_ip_address_here>
bind-interfaces
port=53
现在,要使用您想要的上游名称服务器(例如 Cloudflare 名称服务器),请将它们添加到/etc/resolv.dnsmasq
:
nameserver 1.1.1.1
之后,只需重新启动dnsmasq
,您就应该完成:
sudo systemctl restart dnsmasq