通过 fqdn 连接同一网络中的主机

Ogu*_*gic -3 networking domain-name-system linux hostname

假设我有 2 台服务器。它们位于同一网络、同一子网和同一域中。一切都一样。

server1.something.internal -> 10.0.0.1
server2.something.internal -> 10.0.0.2
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么我不能通过他们的 fqdn ping 主机?我想使用主机名和域名连接主机,而不是使用 ips

root@server1:~# ping server2.something.internal
ping: unknown host server2.something.internal
Run Code Online (Sandbox Code Playgroud)

主机是 Debian 6.0。主机名和域名设置正确。网络上没有 dns 或 dhcp 服务器。Ips 设置为静态。

这是etc/resolv.conf两台服务器的

domain something.internal
search something.internal
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

841*_*104 7

您的机器必须能够将这些 fqdn 解析为服务器的 IP 地址。

你说你没有 DNS(即使你做了谷歌的公共解析器也不会/不应该将非互联网 IP 交还给外国网络)。这意味着解析必须通过/etc/hosts或者可能是由 指定的其他方法发生/etc/nsswitch.conf

底线:您无法通过主机的 FQDN ping 主机,因为“他们的 FQDN”无法解析(正确?)。

  • `search` 不是 http://en.wikipedia.org/wiki/LLMNR,它仅用于将主机部分转换为 FQDN(例如 server1 -> server1.something.internal),结果查询仍然通过 nssswitch 设置的配置解析方法进行.conf 。即便如此,有问题的服务器也必须响应 LLMNR,这并不典型,尤其是。对于 BSD/*nix。 (2认同)

War*_*ica 5

搜索指令与解析 FQDN 无关,它只是将域(在您的情况下为 something.internal)附加到对主机名的任何查询(在您的示例中为 sever2)。

您需要一些东西 - 在您使用的计算机上 - 将 FQDN 解析为 IP 地址。两个标准的“事物”是 DNS 或 /etc/hosts

你说你没有(也不想要?)一个 DNS 服务器,所以几乎离开了主机文件。编辑 /etc/hosts 并添加

10.0.0.1    server1.something.internal
10.0.0.2    server2.something.internal
Run Code Online (Sandbox Code Playgroud)