Ubuntu 客户端无法解析存储在本地未绑定服务器中的 LAN 主机

Ubuntu 客户端无法解析存储在本地未绑定服务器中的 LAN 主机

我已设置一个未绑定服务器,使用短名称仅通过主机名来引用各种服务器。示例:我可以调用 http://myserver:8080/,它在 Android 和 Windows 客户端上按预期运行,但在 2 个 Ubuntu 23.04 客户端上根本不起作用。

Unbound 位于主机 192.168.1.2 上,以下是 ubuntu 中 dig 查询 unbound 服务器本身的输出:

$ dig -x @192.168.1.2 myserver
; <<>> DiG 9.18.12-1ubuntu1-Ubuntu <<>> @192.168.1.2 -p 53 myserver
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28727
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;myserver.                         IN      A

;; ANSWER SECTION:
myserver.                  1069    IN      A       myserverIP

;; Query time: 8 msec
;; SERVER: 192.168.1.2#53(192.168.1.2) (UDP)
;; WHEN: Tue May 30 04:03:55 MST 2023
;; MSG SIZE  rcvd: 50

现在,当我在 ubuntu 客户端上运行相同的查询时,它会失败并显示以下信息:

$ dig myserver

; <<>> DiG 9.18.12-1ubuntu1-Ubuntu <<>> myserver
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58494
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;myserver.                         IN      A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Tue May 30 04:09:55 MST 2023
;; MSG SIZE  rcvd: 34

起初我以为是路由器设置的域名,也许这些客户端会继承无法解析的域名进行搜索,因为这不是在未绑定中设置的。

$ nmcli device show wlo1
GENERAL.DEVICE:                         wlo1
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         HWADDR
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     MYSSID
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/6
IP4.ADDRESS[1]:                         192.168.1.XXX/24
IP4.GATEWAY:                            GATEWAYIP
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = GATEWAYIP, mt = 600
IP4.DNS[1]:                             192.168.1.2
IP4.DNS[2]:                             192.168.1.3
IP4.DOMAIN[1]:                          Home
IP6.ADDRESS[1]:                         IPV6ADDR
IP6.GATEWAY:                            --

然后我尝试设置一个静态 IP,清除 IP4.DOMAIN[1] 值。但还是不行。然后我更改了 /etc/resolv.conf,如下所示:

nameserver 127.0.0.53
options edns0 trust-ad
search Home

更改为:

nameserver 192.168.1.2
nameserver 192.168.1.3

而且效果很好!但由于这是由 resolvectl 管理的,因此每当进入待机或重新启动时,它都会不断重置此文件。修复这个奇怪的 DNS 问题的规范方法是什么?

我想避免使用主机文件,因为我计划向网络添加更多主机,与更新 2 个 DNS 服务器相比,这会增加很多开销。

相关内容