为什么我能够 ping ~/.ssh/config 中定义的主机名?

为什么我能够 ping ~/.ssh/config 中定义的主机名?

这不是我想要解决的问题,但这是我一段时间以来一直好奇的问题。

我在 ~/.ssh/config 中定义了几个主机名,但在其他地方没有定义。值得注意的是,我没有在 /etc/hosts 中定义任何内容。

但我注意到我能够 ping 这些热门名称。为什么是这样? ping 实用程序是否专门在 ~/.ssh/config 中查找?或者这是一个操作系统范围的事情?和DNS有关系吗?

编辑:

更具体地说,我在 ~/.ssh/config 中定义了一个主机:

Host my_laptop
        Hostname 192.168.1.3
        Port 22
        User myname

...我可以ping my_laptop从同一本地网络上的另一台机器上,它解析为192.168.1.3.这让我很困惑,因为“my_laptop”没有在其他地方定义,所以我假设ping是从 ssh 配置中获取此主机名。

然而,用户 Kusalananda 提到了nslookupdig(到目前为止我还不熟悉的两个命令),并且nslookup my_laptop从另一台机器运行返回:

Server:     192.168.1.1
Address:    192.168.1.1#53

Name:   my_laptop.home
Address: 192.168.1.3

192.168.1.1是我家用路由器的地址,我知道端口53与DNS有关。我查看了路由器的设置,发现有问题的机器(“my_laptop”)在本地网络中路由器的机器列表中也以相同的主机名命名。

所以,我猜发生的事情是我的家庭路由器也是一个 DNS 服务器,而这些都与 ~/.ssh/config 中的条目没有任何关系,正如你所见可能可以说,我不太熟悉一般的网络,特别是 DNS。事实上,这个问题可能不属于这里,而是属于 Stack Exchange 的另一个部分;对于那个很抱歉。

答案1

所以这个行为与 ssh 配置文件无关。我网络上的计算机从在我的家庭路由器上运行的本地 DNS 服务器获取 DNS 信息。我通过运行确定了这一点nslookup (hostname),这表明机器确实正在查看我的本地路由器来解析有问题的主机名。碰巧 ~/.ssh/config 中的主机名与本地 DNS 服务器提供的主机名相同。

相关内容