在 20.04 上针对 PiHole 的本地主机名进行 DNS 查找失败(适用于其他系统)

在 20.04 上针对 PiHole 的本地主机名进行 DNS 查找失败(适用于其他系统)

外部 DNS 查找工作没有问题,但任何非 FQ 域(即仅主机名部分)都会失败,除非我明确强制它使用 PiHole 来解析它。

nslookup myhost # this fails with SERVFAIL
nslookup myhost 192.168.12.34 # this works

我确信 DNS 条目是有效的(通过 PiHole 上的“本地 DNS 记录”界面添加),因为它们在我的网络上不使用 systemd 的其他系统上工作

/etc/resolv.conf是 systemd 默认值(指 127.0.0.53),因为我两天前刚刚进行了全新安装。

resolvectl status显示 PiHole 的 IP 作为我的 wifi 连接(唯一活动连接)的唯一 DNS 服务器。

这是 PopOS 20.04 的全新安装,我的 PiHole 刚刚更新到 5.0。

编辑:澄清一下,这位主持人是不是运行 PiHole - 它位于网络上的另一台主机上。

有人对这里发生的事情有任何想法吗?

谢谢你的时间。

答案1

事实证明,最简单的方法就是通过将 resolv.conf 符号链接指向另一个文件(其中包含我的 PiHole 的 IP)来绕过环回解析器:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

答案2

DNS 不识别短名称,即只有主机名而没有附加信息。

如果您只给 nslookup 一个主机名,它将尝试添加配置为搜索域的任何内容。这通常在 /etc/resolv.conf 中,如下所示:

$ cat /etc/resolv.conf 
# Generated by NetworkManager
search domain.com
nameserver 10.0.0.1

如果您没有搜索域,或者您使用的是配置的搜索域之外的主机名称,则它将无法解析。

DNS 需要一种方法来查找 FQDN 才能进行解析。

这只是我的猜测,根据我掌握的信息有限。

相关内容