当我尝试 ping 到本地网络中的另一台 Linux 机器时,当我在 ping 命令中插入主机名时,我没有工作。
sudo ping Raspberry2
仅当我在命令中插入 IP 地址时它才有效
sudo ping 192.168.1.15
有没有人有办法解决吗?
答案1
长话短说
如果您无法控制网络的 DHCP 服务器和名称查找服务,那么您能做的事情就会受到限制。典型的选项是 /etc/hosts 和动态 DNS 服务,但如果您在这两个机器上都没有 root 权限,那么您只需直接使用 IP 地址即可。
解析名称
您无法通过名称查找主机,除非您能够解决它。这Debian手册解释:
8.3.1.名称解析 Linux 中的名称解析机制是模块化的,可以使用 /etc/nsswitch.conf 文件中声明的各种信息源。涉及主机名解析的条目是hosts。默认情况下,它包含
files dns
,这意味着系统首先查询 /etc/hosts 文件,然后查询 DNS 服务器。 NIS/NIS+ 或 LDAP 服务器是其他可能的来源。
自从你的评论表示目标主机有一个动态 IP 地址,如果 Raspberry2 在获取其 IP 地址时不更新 DNS(或其他数据源之一),那么您必须通过 /etc/hosts 文件中的静态条目来解析它或者像您已经做的那样简单地传递一个 IP 地址。
如果您的 Raspberry Pi 设备位于专用网络内,并且您可以在其上安装必要的软件,动态域名解析服务如果客户端支持查找分配给主机网络接口的 IP,而不仅仅是可公开解析的 IP 地址,则可能仍然有帮助。您使用动态 DNS 的效果肯定会有所不同。
答案2
您需要将适当的条目添加到您的主机文件中。否则,您需要将正确的 A 记录添加到您的 DNS。
答案3
如果您使用公共 DNS,则不需要 A 记录或主机文件条目,您可能会发现看不到内部网络上的主机名,但是如果您没有更改计算机以及路由器或内部 dns 的 DNS 设置服务器是主要或辅助 DNS 查找服务器,那么您不应该遇到此问题。
我建议检查您的 DNS 设置,并且 a) 如果您使用公共 DNS,则添加主机条目,或者如果您使用路由器 DNS,请确保它允许通过网络解析本地主机名
答案4
您的 DNS 服务器似乎没有 Raspberry2 的记录。如果您没有 DNS 服务器,请将以下行添加到 /etc/hosts 文件中
192.168.1.15 树莓2