Могу ли я использовать mDNS-адрес Back To My Mac, а также ssh и другую маршрутизацию трафика?


24

В Lion и iCloud прежнее именование mDNS MobileMe и Snow Leopard изменилось и больше не работает.

Мне интересно, как использовать инструменты командной строки, чтобы узнать DNS-имя, которое Apple присвоила моему Mac. Я хочу использовать это DNS-имя на других устройствах, не поддерживающих OSX (например, Prompt на моем iPad / iPhone), чтобы ssh вернуться к моему Mac, когда я в пути.

Ответы:


36

Обновить

Существует очень простой способ подключить SSH к компьютеру BTMM / iCloud:

В терминале в меню « Shell» выберите « Новое удаленное соединение ...» (cmd + shift + K). Отсюда вы можете просматривать хосты ssh / sftp / ftp / telnet в локальной сети или в сети BTMM.

Это, очевидно, намного проще для отдельных приложений, которые поддерживают поиск iCloud / BTMM (например, вы также увидите общие папки на боковой панели Finder и удаленные устройства Airport в Airport Utility), но я оставлю полные инструкции ниже для более произвольных вариантов использования.


Для инструментов командной строки Apple заменила старую <computer-name>.<mobileme-name>.members.mac.comна <computer-name>.<numeric-id>.members.btmm.icloud.com(где <numeric_id>поле представляет собой число, автоматически сгенерированное для вашего Apple ID).

Шаг 1: Узнайте свой домен iCloud BTMM

Сначала найдите свой домен с помощью инструмента обнаружения служб DNS:

# dns-sd -E

Вывод отформатирован немного неловко, но вам нужен числовой идентификатор, который должен быть в последней строке. Вы после полного домена, что-то вроде 12345678.members.btmm.icloud.com, однако dns-sdбудет отображать (вроде) в обратном порядке, в отдельных строках:

23:41:33.309  Added                          icloud.com
                                             - > btmm
                                             - - > members
                                             - - - > 12345678

Вам также нужно нажать ctrl+ Cпосле того, как он отобразит информацию, которую вы ищете (она предназначена для продолжения прослушивания и обновления). Это относится к каждому использованию dns-sd, здесь и ниже.

Шаг 2: Список компьютеров

Вы можете использовать эти инструменты для просмотра этого домена для сервисов, например, для ssh-серверов:

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

Или, если вы уже знаете имя хоста, просто обратитесь к нему напрямую computer-name.12345678.members.btmm.icloud.com. (Любые пробелы в имени вашего компьютера будут дефисами в этом домене).

Вы можете получить к нему доступ только с компьютера, который также настроен для BTMM в той же учетной записи Apple ID, поскольку это имя хоста преобразуется в адрес IPv6, который действительно является концом зашифрованного сетевого туннеля между компьютерами BTMM вашего Apple ID.

Если вы хотите увидеть адрес 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 в какой-то момент позже ... у меня статическое состояние уже несколько лет.


13

Это не мой предпочтительный метод, но приложение Terminal также опрашивает вашу учетную запись iCloud для всех компьютеров Back To My Mac, на которых она имеет текущую регистрацию.

Под меню Shell - Новое удаленное соединение ... + +K

Это очень удобно для установки нового домашнего подключения ssh / sftp, когда вы не находитесь в локальном Интернете, или ваш DNS-сервер не будет искать записи AAAA, которые соответствуют вашему текущему host.12346789.members.btmm.icloud.com. резервирование домена.


Что если в имени компьютера есть пробелы? Это, кажется, все испортило D:
Александр - Восстановить Монику

1
заменить пробелы тире. Пример: «Work iMac» будет «Work-iMac»
Майкл Ирей

Это полезно Terminal.app даже дает вам результирующую sshкоманду, которую вы затем можете вставить в iTerm или что-то еще, что вы фактически используете.
Йоглоран

10

Вот ответ на ваш вопрос ...

Я только что узнал отличный способ найти ваше доменное имя BTMM

echo show Setup:/Network/BackToMyMac | scutil | sed -n 's/.* : *\(.*\).$/\1/p'

источник: https://gist.github.com/1856804 от skyisle

Но вот почему это все еще не помогает вам ...

Однако обратите внимание, что даже если вы знаете домен BackToMyMac, вы можете использовать его, только если вы подключаетесь с подключенного компьютера, который также вошел в систему BackToMyMac. Он не будет работать напрямую через Prompt.

(Я считаю, что Apple считает, что это связано с безопасностью. В противном случае любой пользователь в Интернете может попытаться получить доступ к вашим компьютерам Mac, если он знает доменное имя BTMM.)

В Интернете есть другие сайты, которые сделают для вас динамический DNS-хостинг. Я использовал DynDNS в течение многих лет, но они стали все более и более ориентированными на коммерцию (раньше можно было получить 5 бесплатных динамических имен хостов, теперь это 1, и вы можете получить это только путем присвоения им номера кредитной карты и опробования один из их услуг премиум-класса, а затем отменить его).

Я не использовал http://www.no-ip.com/, но у них также есть клиент обновления Mac (который будет автоматически обновляться при изменении IP-адреса вашего Mac), и они дадут вам три бесплатных имени хоста, если вы создадите бесплатную учетную запись (информация о кредитной карте не требуется).

Обратите внимание, что это не так легко работает, как BTMM, потому что вам все равно нужно убедиться, что у вас есть открытые порты на маршрутизаторе и т. Д. Однако он будет работать с Prompt и с других хостов.


Вы прибили гвоздь к голове с условием, что в настоящее время Mac требуется использовать BTMM на обоих концах.
bmike

Причины безопасности в порядке. Тогда было бы замечательно иметь возможность подключиться к моему Mac дома с моего iPhone, где угодно ... Только через iCloud и без сторонних систем.
Джонни
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.