我已设置一个未绑定服务器,使用短名称仅通过主机名来引用各种服务器。示例:我可以调用 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 服务器相比,这会增加很多开销。