我习惯了 debian/raspbian,设置计算机的主机名很简单:
/etc/hostname:
my-computer
和
/etc/hosts:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 my-computer
经过这些更改并重新启动后,我可以从本地网络上的任何其他计算机进行操作。ssh [email protected]
我很难在新的 gentoo 系统上实现这种行为。我尝试了 gentoo 论坛上 2-3 年前的帖子中的一些其他设置,但没有成功。
答案1
为了工作,必须具备两件事:ssh [email protected]
my-computer
必须正在运行avahi-daemon
多播 DNS(简称 mDNS)或其他某种实现。这将定期向本地网络公布计算机的当前主机名和 IP,并在本地网络中的其他设备请求时响应该信息。公布的名称将采用以下形式<short hostname>.local
。带有SSH客户端的计算机必须包含
mdns
mDNSmdns4_minimal
或者类似列出的主机名解析模块就行hosts:
了/etc/nsswitch.conf
。这使得 glibc 的主机名解析功能实际上使用 mDNS 作为主机名/IP 信息的一种可能来源。
mDNS 与 Apple 的 Bonjour 系统兼容,显然 Microsoft 也可能对其有一些支持 - 尽管现代版本的 Windows 似乎更喜欢 WS-Discovery(另一种基于多播的协议),用于类似的目的。
顶级 DNS 域.local
现在保留供 mDNS 使用,因此不应再将其用于常规私有 DNS 域。然而,为了向后兼容,有一些支持允许具有三个或更多部分的名称(例如<hostname>.something.local
)仍然可以与常规 DNS 一起使用;两部分名称 ( <hostname>.local
) 将由 mDNS 在 mDNS 感知系统上解析。