¿Es posible usar Volver a mi Mac DNS o información de enrutamiento desde la línea de comandos?


8

A menudo quiero usar ssh para Mac y me encantaría usar iCloud para buscar información de enrutamiento IP / DNS. ¿Se puede hacer esto sin suscribirse a un servicio DNS dinámico y configurarlo en cada Mac además de iCloud?

Supongamos que el nombre de host de mi Mac en casa siempre es "maui" y está ejecutando Snow Leopard. Cuando estoy en mi computadora portátil conectada a la red doméstica, puedo ssh maui.local. Seguro que sería bueno poder hacerlo ssh maui.whatever.icloud.como lo que sea que funcione. Supongo que necesitaría "maui" y mi nombre de iCloud para hacerle saber a qué máquina de mi cuenta necesita llegar.

¿Alguien sabe si esto es posible a través de API o línea de comando? He examinado la información pública del desarrollador varias veces, pero no veo nada prometedor. Cualquier puntero o ejemplo de código sería bienvenido.

PD : No sugiera cuentas DNS gratuitas ya que estoy realmente interesado en MobileMe exclusivamente para esta pregunta. Sé que funcionarán, pero estoy buscando evitar instalar cualquier otra cosa u otra cuenta / dependencia externa en estos Mac.


Buena idea, +1 y espero que obtengas una respuesta.
ConstantineK

Puedo ver cómo Apple no querría exponer a los usuarios a esto ya que es un riesgo de privacidad, pero seguro que sería genial tener una API para esto.
bmike

1
Ver también: El mismo problema para OS X 10.7 Lion (es un poco diferente). apple.stackexchange.com/questions/53719/…
drfrogsplat

Respuestas:


9

Esto ha cambiado un poco con 10.7 y querrás tener en cuenta que usa IPv6 casi por completo, así que prueba ping6y traceroute6depura las cosas.

Ya no se hace a través de @computername.mobilemename.members.mac.com, ahora se hace a través de members.btmm.icloud.com, y ya no es tan simple como tu mobilemename.

Paso 1: descubre tu dominio de iCloud BTMM

Cualquiera de estos comandos proporcionará su dominio BTMM:

# dns-sd -E
# mDNS -E

La salida tiene un formato ligeramente diferente, pero lo que buscas es la ID numérica, será algo así 12345678.members.btmm.icloud.com.

Paso 2: Lista de computadoras

Puede usar estas herramientas para buscar servicios en ese dominio, por ejemplo, para servidores ssh:

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

O si ya conoce el nombre de host, simplemente acceda directamente como computer-name.12345678.members.btmm.icloud.com. (Los espacios en el nombre de su computadora serán guiones en este dominio).

Puede solamente acceder a ella desde un equipo que también está configurado para BTMM en la misma cuenta, porque esto va a resolver el nombre de host a una dirección IPv6 que es realmente el final de un túnel de red cifrada entre sus ordenadores BTMM.

Si desea ver la dirección IPv6 de un host específico, puede escribir

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

Y generará algo como:

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

Paso 3: conectar

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

Nota

No estoy seguro de si ese número cambiará alguna vez, por lo que es posible que deba repetir el Paso 1 en algún momento más adelante ...


¡Brillante! No estoy seguro de si editar la pregunta para que se ajuste a Lion o hacer otra. Voy a vincular a la nueva pregunta para que pueda "responder" la pregunta del León. Esta respuesta es muy útil.
bmike


3

Leí algunos artículos sobre la base de Back To My Mac y supuestamente algunas personas se han conectado de manera efectiva a través de ssh, consulte la discusión contenida en esta publicación de Macworld .

La mejor publicación en el hilo es la siguiente:

Use el siguiente formato para conectarse como un nombre de usuario diferente:

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

Si hace esto regularmente y desea ahorrar tener que usar el nombre de usuario todo el tiempo para ssh y scp, cree un archivo llamado ~ / .ssh / config con contenido como el siguiente:

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

Host host2.some.domain.com. Nombre de usuario 2 Puerto 2222 LocalForward 3389 internal-pc: 3389

El segundo host en este archivo también incluye el uso de un puerto que no sea el 22 y permitir el acceso a una computadora con Windows llamada internal-pc con Remote Desktop conectándose a localhost con Remote Desktop Client.

Ahora, obviamente, Apple ha cambiado .mac a MobileMe, así que no sé si eso se ha cambiado a .me.com, y francamente no tengo una cuenta de MobileMe para probarlo.

Editar: Otra publicación interesante que quizás quieras probar está en la parte inferior

Resulta que es aún más fácil! :PAGS

simplemente abra la Terminal, vaya a Shell> Nueva conexión remota ...

luego elija ssh y allí tendrá su computadora BackToMyMac en la lista (si el SO lo ve).

escriba su nombre de usuario y haga clic en conectar.

voila, incluso puedes ver la cadena de conexión utilizada. Y también puede usar ftp / sftp ... desde este diálogo en su Mac remoto.

Mucho más fácil que escribir algún comando de shell como se sugiere en la sugerencia original.


Lamentablemente esto no está funcionando para mí. Puedo usar el buscador y el uso compartido de pantalla perfectamente, así que sé que las cuentas y las máquinas están en funcionamiento. Las Time Capsules recientes con firmware actualizado son enrutadores para ambos Mac. ¿Alguien ha tenido este trabajo para ellos en las últimas dos semanas?
bmike

¡Dang caliente! El último consejo fue. ping y host no funcionan, pero ssh sí. Ese consejo de terminal es IMPRESIONANTE.
bmike

¡Dulce! Encantado de ayudar.
ConstantineK

3

Puede enviar ssh a su máquina que tiene "Bac to my Mac" habilitado así:

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

1
¿Realmente tienes que decirle que use el puerto predeterminado?
ConstantineK

ping, host y ssh a tres nombres de computadora separados con tres nombres de dispositivos móviles diferentes fallan. Recibo host yy.xx.members.mac.com not found: 3(NXDOMAIN)errores de los intentos de host y ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownlos tres funcionan con el uso compartido de la pantalla de mi Mac antes y después de que los intentos de ping, host y ssh fallan. ¿Qué IP de servidor DNS está utilizando para que esto funcione?
bmike

Aunque host y ping no funcionan, ssh comenzó a funcionar para mí. Jugaré un poco y marcaré una respuesta una vez que calcule cuál es mejor.
bmike

Y no, parece que no necesito llamar a los números de puerto para sftp o ssh , pero no duele mucho tenerlos ;-)
bmike

hostno funciona porque está utilizando la resolución DNS, no la resolución del sistema. pingno funciona porque BTTM usa IPv6. Intente en su ping6lugar y verá que responde.
bahamat

2

Esto se debe a que las direcciones IP para la resolución son la versión 6.

Si usa ping6 o traceroute6, también puede comunicarse con su host.


Eso es realmente genial. Muchas gracias por agregar esto. ¿Le importa si agrego su información a mi respuesta anterior una vez que tenga la oportunidad de ver si funciona para mí? +2 a @pst
bmike

2

Muchas gracias a placas y ghoppe que ambos tenían soluciones viables. El principal problema es que MobileMe Back To My Mac usa el direccionamiento IPv6 si está disponible y tal vez exclusivamente, por lo que no pensé en usar ping6 o traceroute6 y aparentemente ssh es lo suficientemente inteligente como para resolver IPv4 o IPv6.

ssh -p 22 username@computername.mobilemename.members.mac.com. funciona muy confiable para mí en las pruebas de hoy.

Dado que esto me hizo tropezar ya que estaba esperando pingy hosty nslookupal trabajo, supongo que voy a poner un buen resumen de lo que ha funcionado para mí. (con fotos! - Realmente me gustan las fotos)

Para resumir sftp, ssh, ping6, y traceroute6debería funcionar con este esquema de nombres.

El terminal incorporado de Apple (y iTerm ) es excelente para asegurarse de que su nombre de usuario y nombre corto remoto sean correctos. El nombre es el nombre de host corto (que se hostnameimprime) y no necesariamente el nombre compartido más largo que Finder mostrará para la Mac remota).

nombre de host corto

Esto es lo que muestra la Terminal cuando descubre que las máquinas Back To My Mac se están ejecutando. El elemento del menú es Nueva conexión remota ... y el acceso directo es Shift+ Command+ K. Muestra cómo el nombre del buscador "Mikey's Mac" puede ser diferente del nombre de host corto mi

ingrese la descripción de la imagen aquí


1
Buena respuesta integral con screenies +1
ConstantineK

hobs tiene una b: p
ConstantineK
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.