无法 ping 或 DNS 解析 EndeavourOS 计算机

无法 ping 或 DNS 解析 EndeavourOS 计算机

我刚刚安装了 EndeavourOS。我使用命令设置主机名sudo hostnamectl set-hostname shuttle。当我尝试shuttle从其他计算机执行 ping 操作时,它无法解析 IP 地址。我有另一台安装了 Kubuntu 的机器,并且我能够 ping 通 Kubuntu 盒子。所以这意味着我的路由器没有问题。我需要启用某些功能才能允许 EndeavourOS 将主机名发送到我的路由器吗?

答案1

仅设置系统的主机名并不足以让网络中的其他系统知道它。

即使您的路由器实际上具有可以识别本地网络上的主机的 DNS 服务(这无论如何都不确定),您的 DHCP 客户端也必须 1.) 实际上将本地配置的主机名传递给 DHCP 服务器路由器,以及 2.) 实际上请求 DHCP 服务器执行 DNS 更新。这两项都是可配置的,并且不一定默认启用。通常,路由器的“DNS 服务器”本质上只是 ISP DNS 服务的代理,它根本不关心本地网络中的主机。

如果您的本地网络中的主机名解析之前“刚刚起作用”,则它更有可能使用替代机制而不是普通 DNS。对于 Linux 和 macOS 系统,此机制是多播 DNS (mDNS),它是 Avahi/Bonjour/Zeroconf 服务的一部分。 Windows 以前使用 NetBIOS(由于 WannaCry 蠕虫利用了其中不可修复的设计缺陷,现在已被弃用)和 LLMNR(另一种链接本地主机名解析协议),但显然现在也添加了 mDNS 支持。

在Linux中,mDNS的工作原理是avahi-daemon定期向本地网段公布您的系统的身份,并在本地系统上的任何人发出对该系统名称的查询时回答相关信息。这样可以保证其他主机能够找到该主机;另一部分是名称服务器交换模块,允许Linux系统除了常规DNS之外无缝使用mDNS。在 Debian 和相关发行版中,它被打包为libnss-mdns;如果文件hosts:的行包含诸如,或 之/etc/nsswitch.conf类的关键字,则应该正在使用它。mdnsmdns4mdns6

还有关键字mdns4_minimal, mdns_minimal,它将仅对符合特殊域名资格的主机名启用 mDNS .local。所以尝试ping shuttle.local可能会得到与仅仅不同的结果ping shuttle

或者,如果您用作systemd-resolvedDNS 解析器(通过使用关键字resolve而不是dns在您的 中,或者在 中/etc/nsswitch.conf存在),除了经典 DNS 之外,它还可以使用 mDNS 和 LLMNR 来解析其他主机的名称。检查输出以查看 mDNS 是否实际启用。nameserver 127.0.0.53/etc/resolv.confresolvectl

如果您的 EndeavourOS 已安装并配置了 mDNS 解析器组件systemd-resolved,但没有avahi-daemon向其他主机宣布其身份,则可以解释为什么 EndeavourOS 可以解析 Kubuntu 系统,但反之则不然。 Kubuntu 包含avahi-daemon在其默认配置中;我对 EndeavourOS 不太熟悉。

答案2

如果您的两台计算机使用相同的 DNS 服务器,也许您需要检查您的 DNS 服务器,但如果您的服务器场上没有​​ DNS 服务器,则需要在 kubuntu /etc/hosts 文件中添加主机名。

[root@kubuntu ~]#vim /etc/hosts
add this line on the file -> 192.168.2.xxx shuttle

相关内容