无法从 Mac 通过主机名访问网络设备

无法从 Mac 通过主机名访问网络设备

我有一台 Mac 连接到我自己的路由器,该路由器连接到我的 ISP 的路由器/调制解调器,配置如下:

ISP 路由器/调制解调器配置

自己的路由器配置

Mac 使用 DHCP 连接到路由器 192.168.1.1。Mac
DNS 设置为 192.168.1.1

在我自己的路由器上,我可以看到许多连接的设备:

树莓派-节点-4 192.168.1.4
树莓派-节点-1 192.168.1.5

我可以通过 IP ssh 到 192.168.1.4,但如果我通过主机名尝试,它无法识别:

ssh:无法解析主机名 rpi-node-4:未提供节点名或服务名,或者未知

由于路由器知道主机名,并且 Mac 被告知使用 192.168.1.1(路由器)作为 DNS,我预计 Mac 能够解析主机名,但它不起作用。

请注意,我不想/etc/hosts在 Mac 上手动编辑该文件(因为我有多台机器,并且我使用动态 IP,所以我不想每次重新分配 IP 时都必须更新 3-4 个主机文件)。

有人能告诉我我哪里搞砸了吗?

答案1

您的路由器可能只知道那些 RPi 的名称,因为这些是它们在发出 DHCP 请求时使用的名称,并且您的路由器可能是您网络的 DHCP 服务器。

一些家庭网关路由器可以让你为每个 LAN 私有 IP 地址输入主机名,路由器将充当 DNS内容服务器,而不仅仅是 DNS 中继。查看您的服务器是否具有此功能,如果有,请进行设置。

如果没有该功能,您可以使用 mDNS 和 DNS-SD(又名 IETF ZeroConf、Apple Bonjour)建立域,.local以便按名称连接到您的 RPi。我相信 Raspbian 默认情况下不会启用 mDNS 实现,因此您可能需要执行类似操作sudo apt-get install avahi-daemon来获取 Avahi,这是一种流行的开源 mDNS 实现。

答案2

在设置路由器 DHCP 设置时,您的搜索域可能被遗漏。现在您的 Mac 电脑不知道在哪里查找本地主机名和 IP。

修复这个问题:

  1. 进入系统偏好设置->网络
  2. 从左栏中选择您的活动网络适配器
  3. 点击右下角的“高级”
  4. 选择顶部的 DNS 选项卡
  5. 在搜索域下输入您的搜索域(我的搜索域是 attlocal.net,因为我使用 AT&T。您可能需要进行搜索才能找到您的搜索域)
  6. 单击应用。您现在应该可以访问 {hostname}.local

相关内容