如果我在一台计算机上安装 Windows,并将其插入 LAN,我可以立即从任何其他计算机按名称 ping 通它。
如果我在 Mac 上安装 MacOS,并将其插入 LAN,我可以立即从任何其他计算机按名称 ping 它。
如果我在一台计算机上安装Linux,并将其插入我的LAN......取决于Linux的特定风格,以及我们所处的月相,以及我是否在仪式中牺牲了一只山羊安装前半夜转了一圈……我可能能够通过名称 ping 通它,或者我可能不会。
互联网是满的 的 论坛 帖子 询问 这 精确的 问题。互联网上充满了诸如“进入路由器设置并添加 DNS 条目”或“编辑每台计算机上的主机文件并为新计算机添加一行”之类的答案。
不。显然存在自动配置的机制,所以我想使用它。
因此,我的问题是:我可以在 Linux 上安装或配置哪些软件包(Debian、Alpine 或我选择运行的任何其他软件包),这些软件包将自动向我的路由器注册计算机的主机名,就像 Windows 和 Mac 上自然发生的情况一样,无需任何用户干预?这一定是可能的。
有些答案建议avahi-daemon
,但我安装并配置了它,但它仍然不起作用。我自己的经验表明samba
可以做到;但我不想打开那个安全漏洞。我假设在安装过程中samba
它还会拖入一堆其他东西,其中一部分实际上会修复 DNS....也许?
答案1
系统通过 IP 地址而不是主机名相互通信。因此,您的计算机需要将您的主机名转换为 IP 地址。执行此操作的三种常见方法是:
- 主机文件 (
/etc/hosts
) - 域名系统
- mDNS(组播 DNS)
当人们告诉您向 DNS 服务器添加条目时,您将使用 DNS。您似乎想要使用的是 mDNS。
mDNS 在网络上进行多播,所有支持 mDNS 的设备在其名称被呼出时都会做出响应。例如,如果您 NAS 可能会响应ping synology.local
。然后,您的解析器会转换为 IP 地址,您可以 ping 该地址。
mDNS 有许多细节。它仅适用于您的本地子网。 TLD 始终为.local
.客户端和服务器都必须支持。
Linux 上的 mDNS 由 Avahi 提供。如果您安装并配置了 Avahi,但它仍然无法工作,那么您应该查看日志中的配置和/或错误消息。
答案2
使用 DHCP 请求 IP 地址时发送主机名是可选扩展。无论出于何种原因,Linux 机器都可能将 DHCP 客户端配置为不执行此操作,甚至配置为从 DHCP 获取主机名(这只对服务器有意义)。
通常您可以重新配置它,但您需要知道正在使用哪个 DHCP 客户端和/或设置了哪个网络管理系统(如 NetworkManager),以便开始寻找正确的选项。该解决方案仅适用于以相同方式工作的设置。