我习惯了 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 岁帖子中的其他一些设置,但没有运气。
为了
ssh [email protected]
工作,必须具备两件事:my-computer
必须正在运行avahi-daemon
或其他多播 DNS 实现(简称 mDNS)。这将定期向本地网络宣布计算机的当前主机名和 IP,并且如果本地网络中的某些其他设备要求它,将响应该信息。宣布的名称将采用<short hostname>.local
.带有 SSH 客户端的计算机必须包括
mdns
,mdns4_minimal
或类似的 mDNS 主机名解析模块就hosts:
行了/etc/nsswitch.conf
。这使得 glibc 的主机名解析功能实际上使用 mDNS 作为主机名/IP 信息的一种可能来源。mDNS 与 Apple 的 Bonjour 系统兼容,显然微软也可能对它有一些支持——尽管现代版本的 Windows 似乎更喜欢 WS-Discovery,另一个基于多播的协议,用于类似目的。
顶级 DNS 域
.local
现在保留给 mDNS 使用,因此不应再将其用于常规私有 DNS 域。但是,为了向后兼容,有一些支持允许具有三个或更多部分的名称(例如<hostname>.something.local
)仍然可以与常规 DNS 一起使用;两部分名称 (<hostname>.local
) 将由 mDNS 在支持 mDNS 的系统上解析。