我经常想向Mac ssh,并且很想利用iCloud查找IP/DNS路由信息。可以在不注册动态DNS服务的情况下完成此操作并在iCloud之外在每个Mac上配置它?

让我们假设我在家中的Mac在主机名称为“ Maui”,它正在运行Snow Leopard。当我在笔记本电脑上连接到家庭网络时,我可以 ssh maui.local. 。能够很高兴 ssh maui.whatever.icloud.com 或任何有效的工作。我猜想我需要“毛伊岛”和我的iCloud名称才能知道我帐户所需的哪台机器达到了。

有人知道是否可以通过API或命令行?我已经多次浏览了公共开发人员信息,但看不到任何有希望的东西。欢迎任何指针或代码示例。

PS 请不要建议免费的DNS帐户,因为我对这个问题非常感兴趣。我知道这些会起作用,但我希望避免安装其他任何内容或其他帐户/外部依赖性。

有帮助吗?

解决方案

这已经改变了10.7的变化,您需要注意,这几乎完全使用IPv6,因此可以进行测试。 ping6traceroute6 调试事物。

不再通过 @computername.mobilemename.members.mac.com, ,现在通过 members.btmm.icloud.com, ,它不再像您那样简单 mobilemename.

步骤1:找出您的iCloud BTMM域

这些命令中的任何一个都将提供您的BTMM域:

# dns-sd -E
# mDNS -E

输出格式的格式略有不同,但是您追求的是数字ID,它将是类似的 12345678.members.btmm.icloud.com.

步骤2:列出计算机

您可以使用这些工具来浏览该域的服务,例如SSH服务器:

# dns-sd -B _ssh 12345678.members.btmm.icloud.com

或者,如果您已经知道主机名直接访问它 computer-name.12345678.members.btmm.icloud.com. 。 (您的计算机名称中的任何空间都将是此域中的连字符)。

你可以 只要 从同一帐户上也为BTMM设置的计算机访问此功能,因为此主机名将解析为IPv6地址,该地址实际上是BTMM计算机之间加密网络隧道的终结。

如果您想查看特定主机的IPv6地址,则可以输入

# dns-sd -G v6 computer-name.12345678.members.btmm.icloud.com

它将输出类似的东西:

17:37:47.504  Add     2  0 computer-name.12345678.members.btmm.icloud.com. FD11:993E:64AE:4DEA:011F:FBD1:F444:11A1%<0>  152

步骤3:连接

# ssh username@computer-name.12345678.members.btmm.icloud.com

笔记

我不确定该数字是否会更改,因此您可能需要或不需要在以后在某个时候重复步骤1 ...

其他提示

我阅读了有关Back Retto Mac的基础的几篇文章,据说有些人通过SSH有效地联系了 这个MacWorld帖子.

线程中最好的帖子如下:

使用以下格式将连接作为不同的用户名:

ssh user.name@hostname.username.members.mac.com。

如果您定期执行此操作,并希望保存必须一直使用SSH和SCP的用户名,请创建一个名为〜/.ssh/config的文件,其中内容如下:

主机hostName.username.members.mac.com。用户用户。名称

主机host2.some.domain.com。用户username2端口2222 localforward 3389 Internal-PC:3389

该文件中的第二个主机还包括使用22以外的端口,并通过使用远程桌面客户端连接到Localhost,允许使用远程桌面的Windows计算机访问Windows计算机。

现在显然,苹果已将.MAC切换到Mobileme,所以我不知道这是否已切换到.me.com,坦率地说,我没有Mobileme帐户来测试它。

编辑:您可能想尝试的另一篇有趣的帖子是在Veery底部

事实证明,这甚至更容易! :p

只需打开终端GO到Shell>新远程连接...

然后选择SSH,然后在那里列出了backtomymac计算机(如果OS看到)。

输入您的用户名,然后单击“连接”。

瞧,您甚至可以看到使用的连接字符串。您还可以使用FTP/SFTP ...从此对话框到远程Mac。

比在原始提示中建议的某个壳命令要容易。

您可以启用具有“ BAC到我的Mac”的计算机:这样:

ssh -p 22 username@computername.mobilemename.members.mac.com

那是因为分辨率的IP地址是版本6。

如果您使用Ping6或Traceroute6,则也可以到达主机。

非常感谢 霍斯Ghoppe 他们都有可行的解决方案。主要的问题是,Mobileme返回我的Mac使用IPv6地址(如果可用),也许只能使用IPv6地址,因此我认为使用Ping6或Traceroute6,而SSH显然足够聪明,可以解决IPv4或IPv6。

ssh -p 22 username@computername.mobilemename.members.mac.com. 今天的测试对我来说非常可靠。

因为这使我想到了 pinghostnslookup 为了工作,我认为我将对对我有用的东西进行很好的摘要。 (带有图片! - 我真的很喜欢图片)

总结 sftp, ssh, ping6, , 和 traceroute6 应该使用这个命名计划。

苹果内置的终端(和 iterm)非常适合确保您的用户名和远程短名称正确。名称是简短的主机名(什么 hostname 打印出来),不一定会显示远程Mac的共享名称查找器)。

short hostname

这是终端发现回到我的Mac机器运行时所显示的。菜单项是 新的远程连接... 快捷方式是 转移+命令+k. 。它显示了查找器名称 “ Mikey的Mac” 可能与简短的主机名不同 mi

enter image description here

许可以下: CC-BY-SA归因
不隶属于 apple.stackexchange
scroll top