在我的 Debian 服务器上,主机名设置为“debian”。当我尝试从另一台 Linux 机器 ping debian 时,它显示“ping:无法解析 debian:未知主机”。当尝试 ping 到任何其他服务器时,它能够解析 ip 并成功 ping。出了什么问题?
答案1
Windows 网络在某种程度上让人们对网络的工作方式产生了误解。
所有 Windows 计算机(默认情况下)都运行名称解析服务作为 SMB 的一部分。当非 Windows 组件添加到网络时,这开始造成混乱,并且它们“行为不可预测”。
此外,一些组件在设计时考虑到有些东西不会像窗口那样运行(找不到更好的词),因此包含“功能”以“鼓励事情正常工作”。这些功能只会使网络的实际工作方式更加模糊。
有几种解决方案:
- 在 Debian 机器上安装/激活 Samba 服务。这将启用姓名解决服务,因此可以从 Windows 计算机按名称查看该框。请注意,网络上的任何其他 Linux 计算机可能仍无法按名称查看该计算机,因为 Linux 计算机通常不使用 SMB 级别名称解析进行网络查找。
- 使用自定义主持人文件,这样网络上所有已知的机器都可以通过名称相互引用,而无需使用解析服务。这是我首选的方法,但当网络规模超过 10 台机器时,这种方法会变得复杂。
- 一些可以在本地处理 DNS 的路由器会反向包含通过 DHCP 从其获取 IP 的机器。但是,这依赖于网络上所有使用路由器作为主要 DNS 提供商的机器,而不是 ISP 或其他外部 DNS 提供商(如 OpenDNS)。对于我使用过的具有此功能的路由器,成功与否有点碰运气,但也存在任何具有静态 IP(不通过 DHCP 获取 IP)的机器不在路由器的 DNS 表中的问题,因此无论如何都必须手动处理。
基本上,这一切都归结于了解和掌握您的本地网络。Windows 长期以来让网络管理变得过于简单,不幸的是,这导致了许多关于网络如何工作的错误假设。