Windows shell 与 Linux 中的 DNS 输出(名称服务器信息)

Windows shell 与 Linux 中的 DNS 输出(名称服务器信息)

我的 Windows 10 PC 上运行着适用于 Linux 的 Windows 子系统 (WSL,又名“Windows 上的 Ubuntu 上的 Bash”),我注意到在nslookup该环境中使用时得到的输出与传统 Windows shell (cmd.exe 或 PowerShell) 时得到的输出略有不同。具体来说,这与默认用于执行查询的名称服务器有关。因此,如果我进行如下简单查找:

nslookup example.com

Windows 和 Linux 版本的命令都会输出两行有关名称服务器的信息(显然,除了有关域的 DNS 信息之外)。在 Windows shell 中,我获取了名称服务器的 IP 和名称:

Server: name.of.name.server
Address: xxx.xxx.xxx.xxx

在 WSL 中,输出中的这两行都包含名称服务器 IP(未输出名称服务器的名称),但第二行#53由于某种原因附加了:

Server: xxx.xxx.xxx.xxx
Address: xxx.xxx.xxx.xxx#53

如果我使用选项,则没有任何区别-query=any,我仍然无法在 Linux 中获取名称服务器的名称。如果我使用以下命令,情况也是如此dig

dig example.com any

有关名称服务器的信息位于输出的底部附近,如下所示:

;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)

再次,那些 x 代表名称服务器 IP,它是括号中的相同 IP(减去#53)。

我很好奇这是否是 WSL 的问题,所以我通过 SSH 连接到了几个不同的实际 Linux 服务器。我得到的结果基本相同。显然,每个服务器使用的名称服务器的 IP 是不同的,但奇怪的是,尽管这是两个完全不同的服务器(一个在加利福尼亚,另一个在犹他州),但#53输出中都有这个神秘的信息。

所以我有两个问题:是什么#53意思,我怎样才能让名称服务器的名称显示在输出中,就像在 Windows 版本的中一样nslookup?是的,如果我将名称服务器 IP 复制并粘贴到nslookupLinux 中的单独命令中,我会得到服务器的名称,但我希望能够在一个命令中获取该信息以及我正在查询的域的 DNS 信息。我想知道是否有我不知道的选项可以做到这一点。在 Linux 中做到这一点并不是非常重要,nslookup只是dig会很好,所以我对需要编写脚本或类似复杂内容的解决方案不感兴趣。

答案1

53 是端口号,DNS 查询的标准,因此它只是显示 IP 地址和端口。

至于名称服务器,我现在在家,所以我的默认名称服务器是我的路由器。在 Linux 下,它确实会报告为 IP 地址,但我认为 Windows 版本的 nslookup 可能会使用 WINS 返回名称(如果可用),因为我的返回结果为非常奇怪的home.gateway.home.gateway

相关内容