Czy mogę używać adresu mDNS Back To My Mac oraz ssh i innego routingu ruchu?

24

W Lion i iCloud stare nazewnictwo mDNS MobileMe i Snow Leopard zmieniło się i już nie działa.

Zastanawiam się, jak korzystać z narzędzi wiersza polecenia, aby znaleźć nazwę DNS przypisaną przez Apple do mojego komputera Mac. Chcę używać tej nazwy dns na innych urządzeniach, które nie są OSX (jak Monituj na moim iPadzie / iPhonie), aby ssh wracać na komputer Mac, gdy jestem poza domem.

bmike
źródło

Odpowiedzi:

36

Aktualizacja

Istnieje bardzo prosty sposób na proste połączenie SSH z komputerem BTMM / iCloud:

W Terminalu w menu Shell wybierz Nowe połączenie zdalne ... (cmd + shift + K). Stąd możesz przeglądać hosty ssh / sftp / ftp / telnet w sieci lokalnej lub BTMM.

Jest to oczywiście znacznie łatwiejsze dla poszczególnych aplikacji, które obsługują wyszukiwanie iCloud / BTMM (np. Zobaczysz również udziały plików na pasku bocznym Findera i zdalne urządzenia lotniska w Airport Utility), ale zostawię pełne instrukcje poniżej dla bardziej dowolnych przypadków użycia.


Dla narzędzi wiersza polecenia, Apple zastąpiły stare <computer-name>.<mobileme-name>.members.mac.com, z <computer-name>.<numeric-id>.members.btmm.icloud.com(gdzie <numeric_id>pole jest numer automatycznie generowany dla Apple ID).

Krok 1: Sprawdź swoją domenę iCloud BTMM

Najpierw wyszukaj swoją domenę za pomocą narzędzia DNS Service Discovery:

# dns-sd -E

Dane wyjściowe są sformatowane nieco niezręcznie, ale szukasz identyfikatora numerycznego, który powinien znajdować się w ostatnim wierszu. Masz pełną domenę, coś w rodzaju 12345678.members.btmm.icloud.com, jednak dns-sdwyświetli ją (w pewnym sensie) w odwrotnej kolejności, w osobnych wierszach:

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

Będziesz także musiał nacisnąć ctrl+ Cpo wyświetleniu informacji, których szukasz (jest zaprojektowany, aby kontynuować słuchanie i aktualizację). Dotyczy to każdego użycia dns-sd, tutaj i poniżej.

Krok 2: Wyświetl komputery

Możesz użyć tych narzędzi do przeglądania tej domeny w poszukiwaniu usług, np. Serwerów ssh:

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

Lub jeśli znasz już nazwę hosta, po prostu uzyskaj do niej bezpośredni dostęp jako computer-name.12345678.members.btmm.icloud.com. (Wszelkie spacje w nazwie komputera będą łącznikami w tej domenie).

Możesz uzyskać do niego dostęp tylko z komputera skonfigurowanego dla BTMM na tym samym koncie Apple ID, ponieważ ta nazwa hosta zostanie przekształcona na adres IPv6, który tak naprawdę jest końcem zaszyfrowanego tunelu sieciowego między komputerami BTMM Twojego Apple ID.

Jeśli chcesz zobaczyć adres IPv6 dla konkretnego hosta, możesz wpisać

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

I wyświetli coś takiego:

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

Krok 3: Połącz

# ssh [email protected]

Uwaga

Nie jestem pewien, czy ta liczba kiedykolwiek się zmieni, więc być może będziesz musiał powtórzyć krok 1 w pewnym momencie później ... mój jest niezmienny od kilku lat.

drfrogsplat
źródło
13

To nie jest moja preferowana metoda, ale aplikacja Terminal sprawdza również twoje konto iCloud na wszystkich komputerach Back To My Mac, które mają bieżącą rejestrację.

W menu Shell - Nowe połączenie zdalne ... + +K

Jest to dość przydatne do skonfigurowania nowego połączenia domowego ssh / sftp, gdy nie ma się w lokalnym Internecie lub twój serwer dns nie będzie szukał rekordów AAAA pasujących do twojego aktualnego hosta. 12346789.members.btmm.icloud.com. rezerwacja domen.

bmike
źródło
Co jeśli nazwa komputera ma spacje? Wydaje się, że wszystko to zepsuło D:
Alexander - Przywróć Monikę
1
zamień spacje na myślniki. Przykład: „Work iMac” to „Work-iMac”
Michael Irey,
To jest przydatne. Terminal.app daje nawet wynikowe sshpolecenie, które możesz następnie wkleić do iTerm lub cokolwiek, czego faktycznie używasz.
jogloran
10

Oto odpowiedź na twoje pytanie…

Właśnie nauczyłem się sprytnego sposobu na znalezienie twojej nazwy domeny BTMM

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

źródło: https://gist.github.com/1856804 przez skyisle

Ale oto dlaczego wciąż ci to nie pomaga…

Pamiętaj jednak, że nawet jeśli znasz domenę BackToMyMac, możesz z niej korzystać tylko wtedy, gdy łączysz się z komputera, który jest podłączony również zalogowany do „BackToMyMac”. To będzie nie działa bezpośrednio poprzez Prompt.

(Uważam, że Apple uważa tę funkcję za związaną z bezpieczeństwem. W przeciwnym razie każdy w Internecie może spróbować uzyskać dostęp do komputerów Mac, jeśli zna nazwę domeny BTMM).

Istnieją inne witryny w Internecie, które wykonają dla Ciebie dynamiczny hosting DNS. Korzystam z DynDNS od lat, ale stały się one coraz bardziej komercyjne (kiedyś były w stanie uzyskać 5 darmowych dynamicznych nazw hostów, teraz jest to 1, i możesz uzyskać tylko jeden, podając im numer karty kredytowej i wypróbowując jedną z ich usług premium, a następnie ją anulować).

Nie korzystałem z http://www.no-ip.com/ witryny ale mają one również klienta aktualizacji dla komputerów Mac (który będzie aktualizował się automatycznie po zmianie adresu IP komputera Mac) i dadzą ci trzy darmowe nazwy hostów, jeśli utworzysz darmowe konto (nie wymaga podania danych karty kredytowej).

Zauważ, że to nie działa tak łatwo jak BTMM, ponieważ nadal musisz upewnić się, że masz otwarte porty na routerze itp. Będzie to jednak działać z Monitem i innymi hostami.

TJ Luoma
źródło
Przybiłeś gwóźdź do głowy pod warunkiem, że obecnie Mac wymaga użycia BTMM na obu końcach.
bmike
Względy bezpieczeństwa są w porządku. Byłoby wspaniale móc ssh na moim Macu w domu z iPhone'a, gdziekolwiek ... Po prostu przez iCloud i żadnych systemów innych firm.
Jonny,