dnsmasq 作为缓存

dnsmasq 作为缓存

我正在尝试使用 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

相关内容