Est-il possible d'utiliser le DNS Retour à mon Mac ou les informations de routage à partir de la ligne de commande?


8

Je veux souvent passer à un Mac et j'aimerais utiliser iCloud pour rechercher des informations de routage IP / DNS. Peut-on le faire sans s'inscrire à un service DNS dynamique et le configurer sur chaque Mac en plus d'iCloud?

Supposons que le nom d'hôte de mon Mac à la maison est "maui" et qu'il exécute Snow Leopard. Lorsque je suis sur mon ordinateur portable connecté au réseau domestique, je le peux ssh maui.local. Ce serait certainement bien de pouvoir ssh maui.whatever.icloud.comou quoi que ce soit fonctionner. Je suppose que j'aurais besoin de "maui" et de mon nom iCloud pour lui faire savoir quelle machine sous mon compte doit être atteinte.

Est-ce que quelqu'un sait si cela est possible via l'API ou la ligne de commande? J'ai parcouru les informations publiques sur les développeurs à plusieurs reprises, mais je ne vois rien de prometteur. Tous les pointeurs ou exemples de code seraient les bienvenus.

PS Veuillez ne pas suggérer de comptes DNS gratuits car je suis vraiment intéressé par MobileMe exclusivement pour cette question. Je sais que cela fonctionnera, mais je cherche à éviter d'installer quoi que ce soit d'autre ou un autre compte / dépendance externe sur ces Mac.


Idée sympa, +1 et j'espère que vous obtiendrez une réponse.
ConstantineK

Je peux voir comment Apple ne voudrait pas exposer les utilisateurs à cela, car c'est un risque pour la vie privée, mais ce serait certainement cool d'avoir une API pour cela.
bmike

1
Voir aussi: Le même problème pour OS X 10.7 Lion (c'est un peu différent). apple.stackexchange.com/questions/53719/…
drfrogsplat

Réponses:


9

Cela a un peu changé avec 10.7 et vous voudrez noter que cela utilise IPv6 presque entièrement, alors testez ping6et traceroute6déboguez.

Ce n'est plus fait via @computername.mobilemename.members.mac.com, c'est maintenant fait via members.btmm.icloud.com, et ce n'est plus aussi simple que le vôtre mobilemename.

Étape 1: Découvrez votre domaine iCloud BTMM

L'une ou l'autre de ces commandes fournira votre domaine BTMM:

# dns-sd -E
# mDNS -E

La sortie est formatée légèrement différemment, mais ce que vous recherchez est l'ID numérique, ce sera quelque chose comme 12345678.members.btmm.icloud.com.

Étape 2: répertorier les ordinateurs

Vous pouvez utiliser ces outils pour parcourir ce domaine pour les services, par exemple pour les serveurs ssh:

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

Ou si vous connaissez déjà le nom d'hôte, accédez-y directement en tant que computer-name.12345678.members.btmm.icloud.com. (Tous les espaces dans le nom de votre ordinateur seront des tirets dans ce domaine).

Vous ne pouvez y accéder qu'à partir d'un ordinateur qui est également configuré pour BTMM sur le même compte, car ce nom d'hôte se résoudra en une adresse IPv6 qui est vraiment la fin d'un tunnel réseau crypté entre vos ordinateurs BTMM.

Si vous souhaitez voir l'adresse IPv6 pour un hôte spécifique, vous pouvez taper

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

Et cela produira quelque chose comme:

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

Étape 3: se connecter

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

Remarque

Je ne sais pas si ce nombre changera jamais, donc vous devrez peut-être répéter l'étape 1 à un moment donné plus tard ...


Brillant! Je ne sais pas s'il faut modifier la question pour l'adapter à Lion ou en poser une autre. Je vais créer un lien vers la nouvelle question afin que vous puissiez «répondre» à la question du Lion - cette réponse est si utile.
bmike


3

J'ai lu quelques articles sur les fondements de Back To My Mac et soi-disant que certaines personnes se sont effectivement connectées via ssh, consultez la discussion contenue dans ce billet Macworld .

Le meilleur article du fil est le suivant:

Utilisez le format suivant pour vous connecter en tant que nom d'utilisateur différent:

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

Si vous faites cela régulièrement et que vous souhaitez éviter d'avoir à utiliser le nom d'utilisateur tout le temps pour ssh et scp, créez un fichier appelé ~ / .ssh / config avec un contenu comme celui-ci:

Hôte hostname.username.members.mac.com. Utilisateur nom.utilisateur

Hôte host2.some.domain.com. Nom d'utilisateur 2 Port 2222 LocalForward 3389 pc interne: 3389

Le deuxième hôte de ce fichier inclut également l'utilisation d'un port autre que 22 et l'accès à un ordinateur Windows appelé internal-pc avec Remote Desktop en se connectant à localhost avec Remote Desktop Client.

Maintenant, évidemment, Apple a changé .mac en MobileMe, donc je ne sais pas si cela est passé en .me.com, et franchement je n'ai pas de compte MobileMe pour le tester.

Edit: Un autre post intéressant que vous voudrez peut-être essayer est en bas

Il s'avère que c'est encore plus facile! : P

ouvrez simplement le terminal, allez dans Shell> Nouvelle connexion à distance ...

puis choisissez ssh et là vous avez votre ordinateur BackToMyMac répertorié (si le système d'exploitation le voit).

saisissez votre nom d'utilisateur et cliquez sur se connecter.

voila, vous pouvez même voir la chaîne de connexion utilisée. Et vous pouvez également utiliser ftp / sftp ... depuis cette boîte de dialogue vers votre Mac distant.

Beaucoup plus facile que de taper une commande shell comme suggéré dans l'astuce d'origine.


Malheureusement, cela ne fonctionne pas pour moi. Je peux parfaitement utiliser le Finder et le partage d'écran pour que je sache que les comptes et les machines sont opérationnels. Les capsules temporelles récentes avec un firmware à jour sont des routeurs pour les deux Mac. Quelqu'un a-t-il eu ce travail pour eux au cours des deux dernières semaines?
bmike

Hot dang! la dernière astuce était-ce. ping et host ne fonctionnent pas, mais ssh le fait. Cette astuce terminale est IMPRESSIONNANTE.
bmike

Doux! Heureux de vous aider.
ConstantineK

3

Vous pouvez utiliser ssh sur votre machine sur laquelle "Bac vers mon Mac" est activé comme ceci:

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

1
Devez-vous vraiment lui dire d'utiliser le port par défaut?
ConstantineK

ping, host et ssh à trois nom d'ordinateur séparé avec trois nom d'utilisateur différent échouent. Je reçois des host yy.xx.members.mac.com not found: 3(NXDOMAIN)erreurs de tentatives d'hôte et ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownles trois fonctionnent avec le retour à mon partage d'écran Mac avant et après l'échec des tentatives ping, hôte et ssh. Quelle adresse IP de serveur DNS utilisez-vous pour que cela fonctionne?
bmike

Même si l'hôte et le ping ne fonctionnent pas - ssh a commencé à travailler pour moi. Je vais jouer un peu et marquer une réponse une fois que je trouverai ce qui est mieux.
bmike

Et non - je ne semble pas avoir besoin d'appeler les numéros de port pour sftp ou ssh - mais ça ne fait pas grand-chose de les avoir ;-)
bmike

hostne fonctionne pas car il utilise le résolveur DNS, pas le résolveur système. pingne fonctionne pas car BTTM utilise IPv6. Essayez ping6plutôt et vous verrez qu'il répond.
bahamat

2

C'est parce que les adresses IP pour la résolution sont la version 6.

Si vous utilisez ping6 ou traceroute6, vous pouvez également joindre votre hôte.


C'est vraiment cool. Merci beaucoup d'avoir ajouté ceci. Cela vous dérange si j'ajoute vos informations à ma réponse ci-dessus une fois que j'ai la chance de voir si cela fonctionne pour moi? +2 à @pst
bmike

2

Un grand merci aux plaques de cuisson et aux ghoppes qui avaient tous deux des solutions viables. Le principal problème est que MobileMe Back To My Mac utilise l'adressage IPv6 s'il est disponible et peut-être exclusivement, donc je ne pensais pas utiliser ping6 ou traceroute6 et ssh est apparemment assez intelligent pour résoudre IPv4 ou IPv6.

ssh -p 22 username@computername.mobilemename.members.mac.com. fonctionne de manière très fiable pour moi dans les tests d'aujourd'hui.

Depuis que cela m'a fait trébucher comme je m'y attendais pinget hostet nslookuppour travailler, je pense que je vais mettre en place un joli résumé de ce qui a fonctionné pour moi. (avec des photos! - J'aime vraiment les photos)

En résumé sftp, ssh, ping6et traceroute6devrait fonctionner avec ce schéma de nommage.

Le terminal intégré d'Apple (et iTerm ) est idéal pour vous assurer que votre nom d'utilisateur et votre nom abrégé à distance sont corrects. Le nom est le nom d'hôte court (ce qui hostnames'imprime) et pas nécessairement le nom de partage plus long que le Finder affichera pour le Mac distant).

nom d'hôte court

Voici ce que le terminal affiche lorsqu'il découvre que les machines Back To My Mac fonctionnent. L'élément de menu est Nouvelle connexion à distance ... et le raccourci est Shift+ Command+ K. Il montre comment le nom du chercheur "Mikey's Mac" peut être différent du nom d'hôte court mi

entrez la description de l'image ici


1
Bonne réponse complète avec screenies +1
ConstantineK

hobs has one b: p
ConstantineK
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.