Way*_*ner 18 networking arch-linux hostname
如果我使用的是 Ubuntu 或 Linux Mint(我尝试过并且知道肯定有效的仅有的两种版本),我可以运行这样的程序:
wayne@myhost$ ssh wayne@otherhost.local
Run Code Online (Sandbox Code Playgroud)
并且该名称会自动解析为我本地网络上其他主机的任何 IP。
我决定开始扩展到其他发行版,并且我的笔记本电脑上运行了 Arch - 但是如果我尝试使用之前的命令,我会得到 Could not resolve hostname otherhost.local: Name or service not known
获得这种自动名称解析(?)需要什么?
小智 17
韦恩自己的答案现在已经很老了。Arch 已经改用 systemd 而不是 init 脚本。Arch wiki 的Avahi页面已更新,其中包含有关为什么需要以下步骤的详细信息。简而言之:Avahi 是一个 zeroconf 工具,这意味着一旦安装在 LAN 的所有机器上,它本身不需要配置即可工作,但您必须配置软件的其余部分,以便它实际向 Avahi 询问信息。
以 root 身份运行这些,或者sudo在适当的地方在终端中添加前缀并替换nano为您选择的编辑器。
pacman -S avahi nss-mdns 安装 Avahi 服务守护进程和多播 DNS 解析器。nano /etc/nsswitch.conf 该文件告诉 C 库如何获取名称服务信息。hosts: files dns myhostname为hosts: files mdns_minimal [NOTFOUND=return] dns myhostname,保存并退出。systemctl start avahi-daemon 手动启动 Avahi 服务,因为我们已经启动。查找错误)systemctl enable avahi-daemon 在启动时启用 Avahi 服务。我只是在 Arch 笔记本电脑上执行了这些步骤,不需要重新启动任何其他服务或 wifi 接口,让我的其他机器在几秒钟内发现它,让我的笔记本电脑发现它们的服务。
由于我还不能对 ggg 的回答发表评论,我只想在这里指出,没有必要在启动脚本中执行此操作——这就是在 systemd 中启用服务的目的。做一次就忘掉它。
Way*_*ner 11
感谢Ulrich Dangel 关于 Avahi的Arch Wiki文章的指针,这就是我所做的:
$ sudo pacman -S avahi nss-mdns/etc/rc.d/avahi-daemon start到末尾rc.localdhcpcd,因此/etc/dhcpcd.conf我注释掉了该noipv4ll行。$ sudo /usr/sbin/avahi-autopid -D wlan0。由于我不喜欢重新启动,因此我不确定是否需要执行第 3 步。/etc/nsswitch.conf我将行设置为 read hosts: files mdns4_minimal dns mdns4。$ sudo /etc/rc.d/dbus restart重启dbus。之后,简单地做ssh wayne@other.local就行了。
| 归档时间: |
|
| 查看次数: |
19453 次 |
| 最近记录: |