无法使用 OSX hostname.local ssh 连接到笔记本电脑,但可以通过 ip 连接

无法使用 OSX hostname.local ssh 连接到笔记本电脑,但可以通过 ip 连接

我正在尝试通过 ssh 从我的服务器连接到我的 MacBook,但我在网络上找不到它的主机名。我启用了远程登录系统偏好设置 > 共享我的 Mac 声称:

Computers on your local network can access your computer at: macbook.local

然而,当我尝试通过它连接时告诉我:ssh [email protected]

ssh: Could not resolve hostname macbook.local: Name or service not known

但是当我输入给定的 IP 地址(即 )时,我可以通过 ssh 进入。问题是这个 IP 地址发生了变化,我想通过 ssh 添加远程 git 存储库,所以这行不通。我遗漏了什么?ssh [email protected]

答案1

您的服务器是什么操作系统?如果不是 Mac OS X,则需要安装 Avahi 并在/etc/nsswitch.conf

hosts:    files dns mdns

或者

hosts:    files mdns_minimal [NOTFOUND=return] dns mdns 

答案2

您的服务器运行的是哪种操作系统?它需要支持 Bonjour 又名 mDNS,这是支持 .local 主机名的技术。您可以了解有关 mDNS 的更多信息这里。UNIX、Linux 和 Windows 有多种 mDNS 实现。我推荐 Apple 的 mDNSResponder 和用于类 Unix 系统的开源 Avahi 守护进程。

如果您的服务器上已经有 mDNS,那么我建议您查看您的网络设置。mDNS 不能在某些 VPN 系统(包括 L2TP/IPsec)中使用,也不能在不同子网中使用。mDNS 主页有设置广域 mDNS 的配置说明,这需要使用名称服务器,但我没有成功。

更简单、更方便的方法可能是为 MacBook 分配一个静态 IP 地址。大多数路由器允许您使用 DHCP 客户端 ID 或接口的 MAC 地址分配静态 IP。

我最近一直在处理一些 mDNS 问题。

相关内容