Можно ли использовать Back To My Mac DNS или информацию о маршрутизации из командной строки?

8

Я часто хочу подключиться к Mac по ssh и хотел бы использовать iCloud для поиска информации о маршрутизации IP / DNS. Можно ли это сделать, не подписываясь на службу динамического DNS и не настраивая ее на каждом Mac в дополнение к iCloud?

Давайте предположим, что мой постоянный компьютер Mac на дому называется «maui», и на нем работает Snow Leopard. Когда я на своем ноутбуке подключен к домашней сети, я могу ssh maui.local. Конечно, было бы неплохо иметь возможность ssh maui.whatever.icloud.comили что-то, что сработало бы. Я предполагаю, что мне понадобится "maui" и мое имя iCloud, чтобы сообщить, какая машина под моей учетной записью нуждается в доступе.

Кто-нибудь знает, возможно ли это через API или командную строку? Я просматривал информацию для публичного разработчика несколько раз, но не вижу ничего перспективного. Любые указатели или примеры кода будут приветствоваться.

PS Пожалуйста, не предлагайте бесплатные учетные записи DNS, так как я действительно заинтересован в MobileMe исключительно для этого вопроса. Я знаю, что они будут работать, но я стараюсь не устанавливать что-либо еще или другую учетную запись / внешнюю зависимость на этих компьютерах Mac.

bmike
источник
Классная идея, +1, и я надеюсь, что вы получите ответ.
КонстантинК
Я вижу, как Apple не хочет подвергать пользователей этой угрозе, так как это создает угрозу конфиденциальности, но было бы здорово иметь API для этого.
bmike
1
Смотрите также: та же проблема для OS X 10.7 Lion (это немного по-другому). apple.stackexchange.com/questions/53719/…
drfrogsplat

Ответы:

9

Это немного изменилось с 10.7, и вы должны заметить, что он использует IPv6 почти полностью, так что тестируйте ping6и traceroute6отлаживайте вещи.

Это больше не сделано через @computername.mobilemename.members.mac.com, это теперь сделано через members.btmm.icloud.com, и это больше не так просто, как ваша mobilemename.

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

Любая из этих команд предоставит ваш домен BTMM:

# dns-sd -E
# mDNS -E

Выходные данные отформатированы немного по-другому, но вам нужен числовой идентификатор, это будет что-то вроде 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 в какой-то момент позже ...

drfrogsplat
источник
Brilliant! Я не знаю, нужно ли отредактировать вопрос так, чтобы он подходил Льву, или задать другой. Я добавлю ссылку на новый вопрос, чтобы вы могли «ответить» на вопрос Lion - этот ответ очень полезен.
bmike
3

Я прочитал несколько статей о поддержке Back To My Mac и, возможно, некоторые люди эффективно подключились через ssh, ознакомьтесь с обсуждением, содержащимся в этом сообщении Macworld .

Лучший пост в ветке выглядит следующим образом:

Используйте следующий формат для подключения в качестве другого имени пользователя:

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

Если вы делаете это регулярно и хотите избавиться от необходимости постоянно использовать имя пользователя для ssh и scp, то создайте файл ~ / .ssh / config с содержимым, подобным следующему:

Хост hostname.username.members.mac.com. Пользователь user.name

Хост host2.some.domain.com. Имя пользователя user2 Порт 2222 LocalForward 3389 internal-pc: 3389

Второй хост в этом файле также включает использование порта, отличного от 22, и предоставление доступа к компьютеру с ОС Windows, который называется внутренним ПК с удаленным рабочим столом, путем подключения к локальному узлу с помощью клиента удаленного рабочего стола.

Теперь, очевидно, Apple переключила .mac на MobileMe, поэтому я не знаю, перешел ли он на .me.com, и, честно говоря, у меня нет учетной записи MobileMe для тестирования.

Редактировать: еще один интересный пост, который вы можете попробовать, находится в самом низу

Оказывается, это еще проще! :П

просто откройте терминал перейдите в Shell> Новое удаленное соединение ...

затем выберите ssh и там у вас есть ваш компьютер BackToMyMac (если ОС его видит).

введите свое имя пользователя и нажмите подключиться.

Вуаля, вы даже можете увидеть используемую строку подключения. И вы также можете использовать ftp / sftp ... из этого диалога на вашем удаленном Mac.

Это намного проще, чем вводить какую-либо команду оболочки, как это было предложено в оригинальной подсказке.

ConstantineK
источник
К сожалению, это не работает для меня. Я могу отлично использовать Finder и общий доступ к экрану, чтобы знать, что учетные записи и машины работают. Последние Time Capsules с новейшей прошивкой являются маршрутизаторами для обоих компьютеров. У кого-нибудь была эта работа для них за последние две недели?
bmike
Горячий черт! последний совет был этим. ping и host не работают, но ssh работает. Этот наконечник терминала УДИВИТЕЛЬНЫЙ.
bmike
Сладкий! Рад помочь.
КонстантинК
3

Вы можете подключиться к вашей машине по протоколу ssh, на котором включен «Bac to my Mac»:

ssh -p 22 username@computername.mobilemename.members.mac.com
ghoppe
источник
1
Вы действительно должны сказать ему использовать порт по умолчанию?
КонстантинК
ping, host и ssh на три разных имени компьютера с тремя разными мобильными именами не работают. Я получаю host yy.xx.members.mac.com not found: 3(NXDOMAIN)ошибки от попыток хоста, и ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownвсе три работают с моим общим доступом к экрану Mac до и после неудачных попыток ping, host и ssh. Какой IP-адрес DNS-сервера вы используете, чтобы заставить это работать?
bmike
Хотя хост и ping не работают - ssh начал работать на меня. Я немного поиграю и отмечу ответ, как только пойму, что лучше.
bmike
И нет - мне, кажется, не нужно называть номера портов для sftp или ssh - но их не сильно беспокоит ;-)
bmike
hostне работает, потому что использует DNS-преобразователь, а не системный. pingне работает, потому что BTTM использует IPv6. Попробуйте ping6вместо этого, и вы увидите, что он отвечает.
Багамат
2

Это потому, что IP-адреса для разрешения версии 6.

Если вы используете ping6 или traceroute6, вы также можете связаться с вашим хостом.

Тихоокеанское стандартное время
источник
Это действительно круто. Большое спасибо за добавление этого. Вы не возражаете, если я добавлю вашу информацию в мой ответ выше, как только у меня будет возможность посмотреть, работает ли он для меня? +2 к @pst
bmike
2

Большое спасибо конфорок и ghoppe которые оба были работоспособные решения. Основная проблема заключается в том, что MobileMe Back To My Mac использует адресацию IPv6, если она доступна и, возможно, исключительно, поэтому я не думал использовать ping6 или traceroute6, а ssh, по-видимому, достаточно умен, чтобы разрешать IPv4 или IPv6.

ssh -p 22 username@computername.mobilemename.members.mac.com. у меня сегодня очень надежно работает в тестировании.

Так как это споткнулся меня , как я ожидал , pingи hostи nslookupк работе, я полагаю , что я потерплю хороший обзор того , что работал для меня. (с картинками! - мне очень нравятся картинки)

Подводя итог sftp, ssh, ping6и traceroute6должны работать с этой схемой именования.

Встроенный терминал Apple (и iTerm ) отлично подходит для того, чтобы убедиться, что ваше имя пользователя и удаленное краткое имя верны. Имя - это короткое имя хоста (которое hostnameвыводится на печать) и не обязательно более длинное разделяемое имя, которое Finder покажет для удаленного Mac).

короткое имя хоста

Вот что показывает Терминал, когда обнаруживает работающие машины Back To My Mac. Пункт меню - Новое удаленное соединение ... и ярлык - Shift+ Command+ K. Он показывает, как имя поиска "Mac Mikey" может отличаться от короткого имени хоста mi

введите описание изображения здесь

bmike
источник
1
Хороший исчерпывающий ответ с экранами +1
ConstantineK
у коней есть один b: p
ConstantineK