È possibile utilizzare il ritorno al mio Mac DNS o le informazioni di routing dalla riga di comando?


8

Spesso voglio fare un ssh su un Mac e mi piacerebbe usare iCloud per cercare informazioni sul routing IP / DNS. È possibile farlo senza registrarsi a un servizio DNS dinamico e configurarlo su ciascun Mac oltre a iCloud?

Supponiamo che il mio host-on-the-time Mac sul nome host di casa sia "maui" e stia eseguendo Snow Leopard. Quando sono sul mio laptop collegato alla rete domestica, posso ssh maui.local. Sarebbe bello poterlo fare ssh maui.whatever.icloud.como qualunque cosa funzioni. Immagino che avrei bisogno di "maui" e del mio nome iCloud per far sapere quale macchina sotto il mio account deve raggiungere.

Qualcuno sa se questo è possibile tramite API o riga di comando? Ho consultato più volte le informazioni dello sviluppatore pubblico ma non vedo nulla di promettente. Qualsiasi puntatore o esempio di codice sarebbe il benvenuto.

PS Per favore, non suggerire account DNS gratuiti poiché sono davvero interessato a MobileMe esclusivamente per questa domanda. So che funzioneranno, ma sto cercando di evitare di installare qualcos'altro o un altro account / dipendenza esterna su questi Mac.


Bella idea, +1 e spero che tu abbia una risposta.
ConstantineK,

Posso vedere come Apple non vorrebbe esporre gli utenti a questo poiché è un rischio per la privacy, ma sarebbe sicuramente bello avere un'API per questo.
bmike

1
Vedi anche: Lo stesso problema per OS X 10.7 Lion (è un po 'diverso). apple.stackexchange.com/questions/53719/…
drfrogsplat

Risposte:


9

Questo è cambiato un po 'con 10.7 e vorrai notare che utilizza IPv6 quasi interamente, quindi testa ping6e traceroute6debug le cose.

Non viene più eseguito tramite @computername.mobilemename.members.mac.com, ora viene eseguito tramite members.btmm.icloud.come non è più semplice come il tuo mobilemename.

Passaggio 1: scopri il tuo dominio iCloud BTMM

Uno di questi comandi fornirà il tuo dominio BTMM:

# dns-sd -E
# mDNS -E

L'output è formattato in modo leggermente diverso, ma quello che stai cercando è l'ID numerico, sarà qualcosa di simile 12345678.members.btmm.icloud.com.

Passaggio 2: elenco dei computer

Puoi usare questi strumenti per cercare quel dominio in cerca di servizi, ad es. Per server ssh:

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

O se conosci già il nome host, accedilo direttamente come computer-name.12345678.members.btmm.icloud.com. (Tutti gli spazi nel nome del tuo computer saranno trattini in questo dominio).

Puoi accedervi solo da un computer configurato anche per BTMM sullo stesso account, poiché questo nome host si risolverà in un indirizzo IPv6 che è in realtà la fine di un tunnel di rete crittografato tra i tuoi computer BTMM.

Se si desidera visualizzare l'indirizzo IPv6 per un host specifico, è possibile digitare

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

E produrrà qualcosa di simile:

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

Passaggio 3: Connetti

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

Nota

Non sono sicuro se quel numero cambierà mai, quindi potrebbe essere necessario o meno ripetere il passaggio 1 in un momento successivo ...


Brillante! Sono indeciso se modificare la domanda per adattarla a Lion o chiederne un'altra. Collegherò alla nuova domanda in modo da poter "rispondere" alla domanda Lion - questa risposta è così utile.
bmike


3

Ho letto alcuni articoli alla base di Back To My Mac e presumibilmente alcune persone si sono effettivamente collegate tramite ssh, dai un'occhiata alla discussione contenuta in questo post di Macworld .

Il miglior post nel thread è il seguente:

Utilizzare il seguente formato per la connessione come nome utente diverso:

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

Se lo fai regolarmente e desideri risparmiare dover usare sempre il nome utente per ssh e scp, crea un file chiamato ~ / .ssh / config con contenuti come il seguente:

Host hostname.username.members.mac.com. Nome utente utente

Host host2.some.domain.com. Nome utente utente2 Porta 2222 LocalForward 3389 PC interno: 3389

Il secondo host in questo file include anche l'uso di una porta diversa da 22 e consentire l'accesso a un computer Windows chiamato internal-pc con Desktop remoto connettendosi a localhost con il client Desktop remoto.

Ora ovviamente Apple ha cambiato .mac in MobileMe, quindi non so se è passato a .me.com, e francamente non ho un account MobileMe per testarlo.

Modifica: un altro post interessante che potresti voler provare è in fondo veery

Si scopre che è ancora più facile! : P

basta aprire il Terminale vai su Shell> Nuova connessione remota ...

quindi scegli ssh e lì hai elencato il tuo computer BackToMyMac (se il sistema operativo lo vede).

digita il tuo nome utente e fai clic su Connetti.

voilà, puoi persino vedere la stringa di connessione utilizzata. E puoi anche usare ftp / sftp ... da questa finestra di dialogo sul tuo Mac remoto.

Molto più semplice che digitare un comando shell come suggerito nel suggerimento originale.


Purtroppo questo non funziona per me. Riesco a utilizzare Finder e la condivisione dello schermo perfettamente, quindi so che gli account e le macchine sono attivi. Le Time Capsule recenti con firmware aggiornato sono router per entrambi i Mac. Qualcuno ha avuto questo lavoro per loro nelle ultime due settimane?
bmike

Hot dang! l'ultimo consiglio è stato. ping e host non funzionano, ma ssh funziona. Quel terminale è FANTASTICO.
bmike

Dolce! Felice di aiutare.
ConstantineK,

3

Puoi ssh sul tuo computer che ha "Bac to my Mac" abilitato in questo modo:

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

1
Devi davvero dirgli di usare la porta predefinita?
ConstantineK,

ping, host e ssh su tre nomecomputer separati con tre diversi nomi di dispositivi mobili non funzionano. Ricevo host yy.xx.members.mac.com not found: 3(NXDOMAIN)errori dai tentativi dell'host e ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownTutti e tre funzionano con la condivisione dello schermo del mio Mac prima e dopo i tentativi di ping, host e ssh falliti. Quale IP del server DNS stai usando per farlo funzionare?
bmike

Anche se host e ping non funzionano - ssh ha iniziato a funzionare per me. Giocherò un po 'e segnerò una risposta una volta capito che è meglio.
bmike

E no - non mi sembra necessario chiamare i numeri di porta per sftp o ssh - ma non fa molto male averli ;-)
bmike

hostnon funziona perché utilizza il risolutore DNS, non il risolutore di sistema. pingnon funziona perché BTTM utilizza IPv6. Prova ping6invece e vedrai che risponde.
bahamat,

2

Questo perché gli indirizzi IP per la risoluzione sono la versione 6.

Se usi ping6 o traceroute6 puoi raggiungere anche il tuo host.


È davvero fantastico. Grazie mille per averlo aggiunto. Ti dispiace se aggiungo le tue informazioni alla mia risposta sopra una volta che ho la possibilità di vedere se funziona per me? +2 a @pst
bmike

2

Grazie mille a piani cottura e ghoppe che hanno avuto entrambe soluzioni realizzabili. Il problema principale è che MobileMe Back To My Mac utilizza l'indirizzamento IPv6 se disponibile e forse esclusivamente, quindi non pensavo di usare ping6 o traceroute6 e ssh è apparentemente abbastanza intelligente da risolvere IPv4 o IPv6.

ssh -p 22 username@computername.mobilemename.members.mac.com. oggi funziona in modo molto affidabile per me.

Dal momento che questo mi ha inciampato mentre mi aspettavo pinge hoste nslookupal lavoro, immagino che farò un bel riassunto di ciò che ha funzionato per me. (con foto! - Mi piacciono molto le foto)

Per riassumere sftp, ssh, ping6, e traceroute6dovrebbe funzionare con questo schema di denominazione.

Il terminale integrato di Apple (e iTerm ) è ottimo per assicurarsi che il nome utente e il nome breve remoto siano corretti. Il nome è il nome host breve (cosa viene hostnamestampato) e non necessariamente il nome di condivisione più lungo che Finder mostrerà per il Mac remoto).

nome host breve

Ecco cosa mostra il Terminale quando scopre i computer Torna al mio Mac in esecuzione. La voce di menu è Nuova connessione remota ... e il collegamento è Shift+ Command+ K. Mostra come il nome del cercatore "Mikey's Mac" potrebbe essere diverso dal nome host breve mi

inserisci qui la descrizione dell'immagine


1
Buona risposta completa con le schermate +1
ConstantineK,

hobs has one b: p
ConstantineK
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.