无法通过主机名连接到同一网络上的Macintosh计算机。使用IP地址


0

我正在尝试使用SSH通过其主机名连接两台Machintosh计算机。两台计算机都运行Mac OS X Yosemite 10.10.2。两台计算机通过Telus品牌连接 Actiontec T1200H ADSL Wi-Fi路由器 (手册的PDF 可以在这里 )。

使用计算机主机名运行此SSH命令时:

ssh macbookpro.local

我收到以下消息:

ssh: Could not resolve hostname macbookpro.local: nodename nor servname provided, or not known

但是,如果我使用计算机的IP地址运行SSH命令:

ssh 10.10.1.12

有用。

到目前为止我发现这是一个防火墙问题;如果我在两台计算机上关闭防火墙SSH连接正常工作。但是如何在启用防火墙的同时使用计算机主机名建立SSH连接?它有可能吗?

Answers:


1

这两台Macintosh电脑是如何连接的?通过路由器?主机名的样子 macbookpro.local 工作是通过网络广播 你好 这只是Apple广播/多播网络服务的奇特名称:

Bonjour,也称为零配置网络,支持   使用自动发现本地网络上的设备和服务   行业标准IP协议。

因此,如果这两台Macintosh计算机在同一网络上共享同一台路由器,如果该路由器阻止广播/多播网络服务,那么主机名 macbookpro.local 将无法找到,因为它将被阻止从路由器。

我首先想到的是你登录到你的路由器 - 它可能是什么型号 - 并且菜单周围的工具可以看到广播/多播选项被设置为过滤或阻止广播/多播流量。但是看看路由器上的细节 - Actiontec T1200H ADSL Wi-Fi路由器 (手册的PDF 可以在这里 ) - 似乎甚至没有办法阻止广播/多播网络流量。所以我的下一个想法是看看Macintosh中是否有防火墙设置本身阻碍了Bonjour无法正常工作?可能值得禁用防火墙至少测试理论。

查看我在Mac OS X 10.9.5(Mavericks)安装中的防火墙选项,似乎在防火墙启用时取消选中“阻止所有传入连接”复选框将允许防火墙处于活动状态,同时仍允许Bonjour服务被传递到系统。

当防火墙打开时,单击“防火墙选项...”按钮,您将看到此屏幕显示“阻止所有传入连接”复选框:

enter image description here

在相关的说明中,您可以调试这些东西 - 如解释的那样 在这个答案我发布在这里 - 通过测试网络 arpdns-sd 来自Mac OS X“终端”就像这样。例如,要使用 arp 要查看网络上的设备,只需输入此命令并点击即可 返回

arp -a

如果将广播/多播流量发送到您的计算机,则返回输出,如下所示:

computer-name.local (123.456.789.0) at 00:aa:bb:cc:dd:ee on en0 ifscope [ethernet]
? (192.168.2.2) at bb:88:99:cc:77:aa on bridge100 ifscope [bridge]

这告诉我 computer-name.local 的IP地址是 123.456.789.0 以及我通过Wi-Fi共享以太网连接的ad-hoc网络使用的桥接连接 192.168.2.2

你也可以使用 dns-sd (来自“终端”的多播DNS(mDNS)和DNS服务发现(DNS-SD)测试工具),以查看您的计算机是否正在获取另一台计算机的主机名:

dns-sd -q [name of computer].local

这假设您已经知道计算机的名称并且广播/多播正在工作;更换 [name of computer].local 用那个电脑名称。然后输出将是这样的;请注意 123.456.789.0 是一个虚假的IP地址,例如:

    Timestamp     A/R Flags if Name                          Type  Class   Rdata
19:56:22.856  Add     2  4 [name of computer].local.               Addr   IN     123.456.789.0

嗨!非常感谢您的回复!计算机通过Wi-Fi路由器连接,也给了我互联网(如果我理解正确))) arp -a 没有给我任何计算机名称 - 只?和IP ..和 dns-sd -q macbookpro.local 给我 : DATE: ---Fri 27 Feb 2015--- 20:28:58.319 ...STARTING... 所以我认为你是对的!但有点不清楚路由器设置有什么问题
Drew

@Andrew路由器的品牌/型号是什么?请再次阅读我的回答: “所以我建议你登录你的路由器 - 它可能是什么型号 - 并且菜单周围的工具可以看到广播/多播选项被设置为过滤或阻止广播/多播流量。” 这意味着路由器上可能存在阻止导致主机名的广播/多播流量的设置 macbookpro.local 不能解析为IP地址。
JakeGould

我从Telus获得的路由器。 Actiontec型号:T1200H。我已登录,但没有“广播/多播流量”选项。
Drew

@Andrew您是否在路由器菜单中的“防火墙”或“高级设置”下进行了检查?
JakeGould

1
好吧 - 我试图在两台机器上禁用防火墙,现在它可以正常工作!但等等 - 是吗?即使打开防火墙,它也能运行!我想在使用ssh之前随时禁用它吗?这不正常..
Drew

0

macbookpro.local 可能是你的LocalHostName; Mac OS X使用的3个计算机名称中的1个( HostNameLocalHostNameComputerName )。如果我没记错的话,它可以用于Bonjour或AFP。

ssh 另一方面,它使用IP协议,而不是特定于Mac OS X.它将尝试使用DNS解析您的“主机名”。您可以使用以下命令找到您的hostame:

scutil --get HostName

或者干脆:

hostname

相反,你也可以使用 localhost 如果你要连接回自己的电脑。


macbookpro.local 可能是你的LocalHostName“ 不清楚这将如何帮助调试此问题。据我们所知,原始海报已经开启 macmini.local 并正在尝试连接 macbookpro.local
JakeGould

谢谢你的回复,但它有点无用......我知道这个: ComputerName - 系统的用户友好名称(在系统偏好设置 - >共享 - >计算机名称中) LocalHostName - 本地(Bonjour)主机名(在系统偏好设置 - >分享 - >按'编辑') HostName - 可以在终端提示符(\ h或\ H)中看到它与主机名和gethostname相关联。你错了 - 本地主机名是你需要与ssh一起使用的
Drew
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.