我有一个安装了 dnsmasq 服务器的树莓派(通过 NetworkManager)。我需要能够*.raspberry.local
在我的本地(专用)网络上进行解析。
这是我的配置:
在/etc/NetworkManager/NetworkManager.conf
我添加dns=dnsmasq
到[main]
我/etc/NetworkManager/dnsmasq.d/local.conf
添加了路由器 DHCP 中定义的本地(永久)IP 地址local=/raspberry.local/192.168.1.10
。192.168.1.10
在 中/etc/dnsmasq.conf
,我有以下配置(取自这里):
domain-needed
bogus-priv
filterwin2k
localise-queries
local=/lan/
domain=raspberry.lan
address=/raspberry.lan/192.168.1.10
expand-hosts
no-negcache
resolv-file=/tmp/resolv.conf.auto
listen-address=127.0.0.1
在/etc/systemd/resolve.conf
我添加了
DNS=127.0.0.1 80.10.246.1 81.253.149.9
Domains=raspberry.local
这应该告诉我的系统首先使用本地主机 DNS(使用*.raspberry.local
),然后使用 Orange 的(法国 ISP)DNS 服务器。
我的问题是,我可以卷曲(并访问:80),raspberry.local
但不能将其子域添加到/etc/hosts
,甚至当我只添加any.raspberry.local
到/etc/hosts
我的树莓派时也可以卷曲它。
另外,在我的 中/etc/resolv.conf
,没有上述配置的迹象,我必须手动添加我的 DNS 服务器:
nameserver 127.0.0.1 # my server
nameserver 127.0.0.53
options edns0 trust-ad
search raspberry.local local
(127.0.0.53 是什么,不是应该是 127.0.0.1:53 吗?)
我在这里做错了什么吗?我确信我的路由器中的 DHCP 配置良好,与上述配置相同。
系统 :
- Ubuntu 22.04LTS
- 树莓派4
答案1
我使用这个 dnsmasq 配置解决了我的问题:
domain-needed
bogus-priv
filterwin2k
expand-hosts
localise-queries
domain=raspberry.lan
local=/raspberry.lan/
address=/raspberry.lan/192.168.1.10
expand-hosts
no-negcache
resolv-file=/tmp/resolv.conf.auto
listen-address=127.0.0.1,192.168.1.10
并通过使用以下命令更改已解析的配置:
DNS=192.168.1.10
FallbackDNS=192.168.1.1
Domains=raspberry.lan
/etc/resolv.conf
不会改变,因为127.0.0.53
会处理一切。