Ist es möglich, Back To My Mac DNS oder Routing-Informationen über die Befehlszeile zu verwenden?


8

Ich möchte oft auf einen Mac ssh und würde gerne iCloud verwenden, um IP / DNS-Routing-Informationen nachzuschlagen. Kann dies durchgeführt werden, ohne sich für einen dynamischen DNS-Dienst anzumelden und diesen zusätzlich zu iCloud auf jedem Mac zu konfigurieren?

Nehmen wir an, mein Host-Name zu Hause ist "maui" und es läuft Snow Leopard. Wenn ich auf meinem Laptop mit dem Heimnetzwerk verbunden bin, kann ich ssh maui.local. Es wäre sicher schön, in der Lage zu sein ssh maui.whatever.icloud.comoder was auch immer funktionieren würde. Ich schätze, ich würde "maui" und meinen iCloud-Namen benötigen, um zu erfahren, welcher Computer unter meinem Konto erreicht werden muss.

Weiß jemand, ob dies über API oder Kommandozeile möglich ist? Ich habe die öffentlichen Entwicklerinformationen mehrmals durchsucht, sehe aber nichts Vielversprechendes. Hinweise oder Codebeispiele sind willkommen.

PS Bitte schlagen Sie keine kostenlosen DNS-Konten vor, da ich mich ausschließlich für diese Frage für MobileMe interessiere. Ich weiß, dass diese funktionieren werden, aber ich möchte vermeiden, dass auf diesen Macs etwas anderes oder ein anderes Konto oder eine externe Abhängigkeit installiert wird.


Coole Idee, +1 und ich hoffe du bekommst eine Antwort.
ConstantineK

Ich kann sehen, dass Apple Benutzer nicht davon aussetzen möchte, da dies ein Datenschutzrisiko darstellt, aber es wäre sicher cool, eine API dafür zu haben.
bmike

1
Siehe auch: Das gleiche Problem für OS X 10.7 Lion (etwas anders). apple.stackexchange.com/questions/53719/…
drfrogsplat

Antworten:


9

Dies hat sich mit 10.7 ein wenig geändert, und Sie sollten beachten, dass IPv6 fast ausschließlich verwendet wird. Testen Sie also ping6und traceroute6debuggen Sie Dinge.

Es wird nicht mehr über erledigt @computername.mobilemename.members.mac.com, es wird jetzt über erledigt members.btmm.icloud.comund es ist nicht mehr so ​​einfach wie bei Ihnen mobilemename.

Schritt 1: Finden Sie Ihre iCloud BTMM-Domain heraus

Mit einem dieser Befehle wird Ihre BTMM-Domäne bereitgestellt:

# dns-sd -E
# mDNS -E

Die Ausgabe ist etwas anders formatiert, aber was Sie suchen, ist die numerische ID, es wird so etwas wie sein 12345678.members.btmm.icloud.com.

Schritt 2: Computer auflisten

Mit diesen Tools können Sie diese Domäne nach Diensten durchsuchen, z. B. nach SSH-Servern:

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

Oder wenn Sie den Hostnamen bereits kennen, greifen Sie einfach direkt darauf zu computer-name.12345678.members.btmm.icloud.com. (Alle Leerzeichen in Ihrem Computernamen sind Bindestriche in dieser Domäne.)

Sie können nur von einem Computer aus darauf zugreifen, der für dasselbe Konto auch für BTMM eingerichtet ist, da dieser Hostname in eine IPv6-Adresse aufgelöst wird, die tatsächlich das Ende eines verschlüsselten Netzwerktunnels zwischen Ihren BTMM-Computern darstellt.

Wenn Sie die IPv6-Adresse für einen bestimmten Host anzeigen möchten, können Sie Folgendes eingeben

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

Und es wird etwas ausgeben wie:

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

Schritt 3: Verbinden

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

Hinweis

Ich bin mir nicht sicher, ob sich diese Zahl jemals ändern wird, daher müssen Sie möglicherweise Schritt 1 später wiederholen oder nicht ...


Brillant! Ich bin mir nicht sicher, ob ich die Frage an Lion anpassen oder eine andere stellen soll. Ich werde auf die neue Frage verlinken, damit Sie die Lion-Frage "beantworten" können - diese Antwort ist so nützlich.
bmike


3

Ich habe ein paar Artikel über die Grundlagen von Back To My Mac gelesen und angeblich haben sich einige Leute effektiv über ssh verbunden. Schauen Sie sich die Diskussion in diesem Macworld-Beitrag an .

Der beste Beitrag im Thread lautet wie folgt:

Verwenden Sie das folgende Format für die Verbindung als unterschiedlichen Benutzernamen:

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

Wenn Sie dies regelmäßig tun und nicht ständig den Benutzernamen für ssh und scp verwenden müssen, erstellen Sie eine Datei mit dem Namen ~ / .ssh / config mit Inhalten wie den folgenden:

Host hostname.username.members.mac.com. Benutzer user.name

Host host2.some.domain.com. Benutzer Benutzername2 Port 2222 LocalForward 3389 internal-pc: 3389

Der zweite Host in dieser Datei umfasst auch die Verwendung eines anderen Ports als 22 und die Ermöglichung des Zugriffs auf einen Windows-Computer namens internal-pc mit Remotedesktop durch Herstellen einer Verbindung zu localhost mit dem Remotedesktopclient.

Jetzt hat Apple offensichtlich .mac auf MobileMe umgestellt, daher weiß ich nicht, ob das auf .me.com umgestellt wurde, und ehrlich gesagt habe ich kein MobileMe-Konto, um es zu testen.

Bearbeiten: Ein weiterer interessanter Beitrag, den Sie vielleicht ausprobieren möchten, befindet sich ganz unten

Es stellt sich heraus, dass es noch einfacher ist! : P.

Öffnen Sie einfach das Terminal und gehen Sie zu Shell> Neue Remoteverbindung ...

Wählen Sie dann ssh und dort ist Ihr BackToMyMac-Computer aufgelistet (sofern das Betriebssystem dies sieht).

Geben Sie Ihren Benutzernamen ein und klicken Sie auf Verbinden.

voila, du kannst sogar die verwendete Verbindungszeichenfolge sehen. In diesem Dialogfeld können Sie auch ftp / sftp ... auf Ihrem Remote-Mac verwenden.

Viel einfacher als die Eingabe eines Shell-Befehls, wie im ursprünglichen Tipp vorgeschlagen.


Leider funktioniert das bei mir nicht. Ich kann Finder und Bildschirmfreigabe perfekt verwenden, damit ich weiß, dass die Konten und Computer in Betrieb sind. Aktuelle Time Capsules mit aktueller Firmware sind Router für beide Macs. Hat jemand diese Arbeit in den letzten zwei Wochen für sie gehabt?
bmike

Heiß, Mist! Der letzte Tipp war es. Ping und Host funktionieren nicht, aber ssh. Diese Terminal-Spitze ist super.
bmike

Süss! Froh, dass ich Helfen kann.
ConstantineK

3

Sie können auf Ihren Computer ssh, auf dem "Bac to my Mac" wie folgt aktiviert ist:

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

1
Müssen Sie ihm wirklich sagen, dass er den Standardport verwenden soll?
ConstantineK

Ping, Host und SSH an drei separate Computernamen mit drei verschiedenen Mobilfunknamen schlagen fehl. Ich erhalte host yy.xx.members.mac.com not found: 3(NXDOMAIN)Fehler bei Hostversuchen und ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownalle drei arbeiten mit der Freigabe meines Mac-Bildschirms vor und nach dem Fehlschlagen der Ping-, Host- und SSH-Versuche. Welche DNS-Server-IP verwenden Sie, um dies zum Laufen zu bringen?
bmike

Obwohl Host und Ping nicht funktionieren, hat ssh angefangen, für mich zu arbeiten. Ich werde ein bisschen spielen und eine Antwort markieren, sobald ich herausgefunden habe, was besser ist.
bmike

Und nein - ich muss anscheinend keine Portnummern für sftp oder ssh anrufen - aber es tut nicht viel weh, sie zu haben
;-)

hostfunktioniert nicht, weil der DNS-Resolver verwendet wird, nicht der System-Resolver. pingfunktioniert nicht, da BTTM IPv6 verwendet. Versuchen Sie es ping6stattdessen und Sie werden sehen, dass es reagiert.
Bahamat

2

Dies liegt daran, dass die IP-Adressen für die Auflösung Version 6 sind.

Wenn Sie ping6 oder traceroute6 verwenden, können Sie auch Ihren Host erreichen.


Das ist echt cool. Vielen Dank für das Hinzufügen. Stört es Sie, wenn ich Ihre Daten zu meiner obigen Antwort hinzufüge, sobald ich die Möglichkeit habe, zu sehen, ob sie für mich funktionieren? +2 bis @pst
bmike

2

Ein großes Dankeschön an Kochfelder und Ghoppe, die beide praktikable Lösungen hatten. Das Hauptproblem ist, dass MobileMe Back To My Mac die IPv6-Adressierung verwendet, sofern verfügbar und möglicherweise ausschließlich. Daher habe ich nicht daran gedacht, ping6 oder traceroute6 zu verwenden, und ssh ist anscheinend intelligent genug, um entweder IPv4 oder IPv6 aufzulösen.

ssh -p 22 username@computername.mobilemename.members.mac.com. arbeitet heute sehr zuverlässig für mich beim Testen.

Da dies mich gestolpert als ich es erwartet hatte pingund hostund nslookupan die Arbeit, ich meine , werde ich eine nette Zusammenfassung von Aufmachungen , was für mich gearbeitet. (mit Bildern! - Ich mag Bilder wirklich)

Um es zusammenzufassen sftp, ssh, ping6, und traceroute6sollten mit diesem Namensschema arbeiten.

Das integrierte Terminal (und iTerm ) von Apple ist ideal , um sicherzustellen, dass Ihr Benutzername und Ihr Remote-Kurzname korrekt sind. Der Name ist der kurze Hostname (was hostnameausgedruckt wird) und nicht unbedingt der längere Freigabename, den Finder für den Remote-Mac anzeigt.

kurzer Hostname

Folgendes wird vom Terminal angezeigt, wenn festgestellt wird, dass Back To My Mac-Computer ausgeführt werden. Der Menüpunkt ist Neue Fernverbindung ... und die Verknüpfung ist Shift+ Command+ K. Es zeigt, wie sich der Findername "Mikey's Mac" vom kurzen Hostnamen mi unterscheiden kann

Geben Sie hier die Bildbeschreibung ein


1
Gute umfassende Antwort mit Screenies +1
ConstantineK

Kochfelder hat eine b: p
ConstantineK
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.