host
由于某种原因,带有(“all”)选项的Linux命令-a
返回“未找到:4(NOTIMP)“在两台本地机器上。一个是 WSL 上的 Ubuntu,另一个是虚拟机上的 Ubuntu 服务器。主机是一台 Windows 10 机器。
这是我读到的内容man host
:
-a -a(“全部”)选项通常等同于 -v -t ANY。它还会影响 -l 列表区域选项的行为。
现在查看我在本地 Ubuntu 服务器上得到的输出:
$ host example.com
example.com has address 93.184.216.34
example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
example.com mail is handled by 0 .
然而:
$ host -a example.com
Trying "example.com"
Host example.com not found: 4(NOTIMP)
Received 29 bytes from 127.0.0.53#53 in 135 ms
上述结果在 WSL 上和我尝试过的任何其他域上都是类似的。我在云服务器上运行了完全相同的命令,它产生了一个ANSWER SECTION
包含多行的命令,所以这显然是我的设置出了问题。没什么大不了的,但我希望能得到关于如何排除故障并可能修复它的指示。
答案1
有一个超级用户回答这让我注意到了这个问题:DNS 服务器没有实现此选项。
请参阅下面指定服务器的示例。
$ host -a example.com 208.67.222.222
Trying "example.com"
Using domain server:
Name: 208.67.222.222
Address: 208.67.222.222#53
Aliases:
Host example.com not found: 4(NOTIMP)
Received 29 bytes from 208.67.222.222#53 in 0 ms
但这有效:
$ host -a example.com 9.9.9.9
Trying "example.com"
Trying "example.com"
Using domain server:
Name: 9.9.9.9
Address: 9.9.9.9#53
Aliases:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36095
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.com. IN ANY
;; ANSWER SECTION:
example.com. 38584 IN NS a.iana-servers.net.
example.com. 38584 IN NS b.iana-servers.net.
example.com. 38584 IN RRSIG NS 8 2 86400 20221007214840 20220916103018 1686 example.com. G7YjAGiKrLxOw0+Vr/qWj4y6ZGX9LEEQebcdPgUjW+QYErfT2rZwYUAx y/UC1ekIprbs2Qr4N/f6jWobpxGGmd8maJN1Bihyw7FS6oYUTMM2O2Vb gf5bAUJMin2BFyWhKs1YFkSFF+dmuxOtnqpWgg8HD7f9zL5o3hOjblsP Jt0=
Received 248 bytes from 9.9.9.9#53 in 10 ms
有问题的网络配置为使用不支持此选项的 DNS 服务器。NOTIMP
(未实施)就是线索。使用host
(或dig
)命令指定备用 DNS 服务器,或配置不同的默认 DNS 解析器(我还没有尝试过)是解决此问题的方法。任何其他故障排除技巧仍然欢迎。
更新:根据对问题的评论,值得注意的是,-a
不建议使用 (ANY),因为它实际上不会获取所有结果。请参阅RFC 8482以及来自 Cloudflare(其拥有 1.1.1.1 但不支持该版本)的一篇相关博客文章:告别任何。