É possível usar o DNS do Back To My Mac ou informações de roteamento na linha de comando?


8

Muitas vezes, quero ssh para um Mac e gostaria de usar o iCloud para procurar informações de roteamento IP / DNS. Isso pode ser feito sem a inscrição em um serviço DNS dinâmico e a configuração em cada Mac, além do iCloud?

Vamos supor que o nome de host do meu Mac sempre em casa seja "maui" e esteja executando o Snow Leopard. Quando estou no meu laptop conectado à rede doméstica, posso ssh maui.local. Seria bom poder ssh maui.whatever.icloud.comou o que funcionaria. Suponho que precisaria de "maui" e do meu nome do iCloud para informar qual máquina na minha conta precisa ser alcançada.

Alguém sabe se isso é possível através da API ou da linha de comando? Eu procurei as informações públicas do desenvolvedor várias vezes, mas não vejo nada promissor. Qualquer ponteiro ou exemplo de código seria bem-vindo.

PS Por favor, não sugira contas DNS gratuitas, pois estou realmente interessado no MobileMe exclusivamente para esta pergunta. Sei que eles funcionarão, mas pretendo evitar a instalação de qualquer outra coisa ou outra conta / dependência externa nesses Macs.


Idéia legal, +1 e espero que você obtenha uma resposta.
ConstantineK

Posso ver como a Apple não gostaria de expor os usuários a isso, pois é um risco à privacidade, mas com certeza seria legal ter uma API para isso.
bmike

11
Veja também: O mesmo problema para o OS X 10.7 Lion (é um pouco diferente). apple.stackexchange.com/questions/53719/…
drfrogsplat

Respostas:


9

Isso mudou um pouco com a versão 10.7 e você deve observar que isso usa o IPv6 quase inteiramente, portanto, teste ping6e traceroute6depure as coisas.

Não é mais feito via @computername.mobilemename.members.mac.com, agora é feito via members.btmm.icloud.com, e não é mais tão simples quanto o seu mobilemename.

Etapa 1: descubra seu domínio do iCloud BTMM

Qualquer um destes comandos fornecerá seu domínio BTMM:

# dns-sd -E
# mDNS -E

A saída é formatada de maneira um pouco diferente, mas o que você procura é o ID numérico, será algo parecido 12345678.members.btmm.icloud.com.

Etapa 2: Listar computadores

Você pode usar estas ferramentas para procurar serviços nesse domínio, por exemplo, para servidores ssh:

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

Ou, se você já conhece o nome do host, acesse-o diretamente como computer-name.12345678.members.btmm.icloud.com. (Quaisquer espaços no nome do seu computador serão hífens neste domínio).

Você pode acessar isso em um computador que também esteja configurado para BTMM na mesma conta, porque esse nome de host será resolvido para um endereço IPv6 que é realmente o fim de um túnel de rede criptografado entre os computadores BTMM.

Se você quiser ver o endereço IPv6 para um host específico, digite

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

E vai produzir 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

Etapa 3: conectar

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

Nota

Não tenho certeza se esse número será alterado, então você pode ou não precisar repetir a Etapa 1 em algum momento mais tarde ...


Brilhante! Não sei se devo editar a pergunta para caber no Lion ou fazer outra. Vou vincular a nova pergunta para que você possa "responder" à pergunta do Leão - essa resposta é muito útil.
bmike


3

Li alguns artigos sobre os fundamentos do Back To My Mac e, supostamente, algumas pessoas se conectaram efetivamente via ssh, confira a discussão contida neste post da Macworld .

A melhor postagem no segmento é a seguinte:

Use o seguinte formato para conectar-se como um nome de usuário diferente:

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

Se você fizer isso regularmente e desejar evitar ter que usar o nome de usuário o tempo todo para ssh e scp, crie um arquivo chamado ~ / .ssh / config com conteúdo como o seguinte:

Host hostname.username.members.mac.com. Usuário user.name

Host host2.some.domain.com. Nome de usuário do usuário2 Porta 2222 LocalForward 3389 internal-pc: 3389

O segundo host deste arquivo também inclui o uso de uma porta diferente de 22 e o acesso a um computador Windows chamado pc interno com a Área de Trabalho Remota, conectando-se ao host local com o Cliente da Área de Trabalho Remota.

Agora, obviamente, a Apple mudou .mac para MobileMe, por isso não sei se isso mudou para .me.com e, francamente, não tenho uma conta do MobileMe para testá-lo.

Edit: Outro post interessante que você pode querer experimentar é na parte inferior do veery

Acontece que é ainda mais fácil! : P

basta abrir o terminal, vá para Shell> Nova conexão remota ...

em seguida, escolha ssh e o seu computador BackToMyMac está listado (se o sistema operacional o vir).

digite seu nome de usuário e clique em conectar.

voila, você pode até ver a string de conexão usada. E você também pode usar ftp / sftp ... dessa caixa de diálogo para o seu Mac remoto.

Muito mais fácil do que digitar algum comando shell, como sugerido na dica original.


Infelizmente isso não está funcionando para mim. Posso usar perfeitamente o compartilhamento de localizador e tela, para que eu saiba que as contas e as máquinas estão funcionando. Time Capsules recentes com firmware atualizado são roteadores para ambos os macs. Alguém teve esse trabalho para eles nas últimas duas semanas?
bmike

Dang quente! a última dica foi essa. ping e host não funcionam, mas o ssh funciona. Essa dica do terminal é INCRÍVEL.
bmike

Doce! Feliz em ajudar.
ConstantineK

3

Você pode ssh na sua máquina com o "Bac to my Mac" ativado desta maneira:

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

11
Você realmente precisa dizer para usar a porta padrão?
ConstantineK

ping, host e ssh para três nomedocomputador separado com três diferentes nomes de dispositivos está falhando. Eu recebo host yy.xx.members.mac.com not found: 3(NXDOMAIN)erros das tentativas de host e ssh: Could not resolve hostname yy.xx.members.mac.com: nodename nor servname provided, or not knownos três trabalham com o compartilhamento de tela do mac antes e depois das tentativas de ping, host e ssh. Qual IP do servidor DNS você está usando para que isso funcione?
bmike

Mesmo que host e ping não funcionem - o ssh começou a trabalhar para mim. Vou tocar um pouco e marcar uma resposta quando descobrir qual é o melhor.
bmike

E não - eu não parecem necessidade de chamar números de porta para sftp ou ssh - mas não faz mal tanto para tê-los ;-)
bmike

hostnão funciona porque está usando o resolvedor DNS, não o resolvedor do sistema. pingnão funciona porque o BTTM usa IPv6. Tente em ping6vez disso e você verá que ele responde.
bahamat

2

Isso ocorre porque os endereços IP para resolução são a versão 6.

Se você usa ping6 ou traceroute6, também pode acessar seu host.


Isso é muito legal. Muito obrigado por adicionar isso. Você se importa se eu adicionar suas informações à minha resposta acima assim que tiver a chance de ver se funciona para mim? +2 para @pst
bmike

2

Muito obrigado a hobs e ghoppe, que tinham soluções viáveis. O principal problema é que o MobileMe Back To My Mac usa endereçamento IPv6, se disponível e talvez exclusivamente, por isso não pensei em usar ping6 ou traceroute6 e o ​​ssh é aparentemente inteligente o suficiente para resolver o IPv4 ou o IPv6.

ssh -p 22 username@computername.mobilemename.members.mac.com. funciona muito confiável para mim nos testes hoje.

Uma vez que este me tropeçar como eu estava esperando pinge hoste nslookuppara o trabalho, eu acho que eu vou colocar um bom resumo do que funcionou para mim. (com fotos! - eu realmente gosto de fotos)

Para resumir sftp, ssh, ping6, e traceroute6deve trabalhar com esse esquema de nomeação.

O terminal interno da Apple (e o iTerm ) é ótimo para garantir que seu nome de usuário e nome abreviado remoto estejam corretos. O nome é o nome abreviado do host (o que é hostnameimpresso) e não necessariamente o nome de compartilhamento mais longo que o Finder mostrará no Mac remoto.

nome de host curto

Aqui está o que o Terminal mostra quando descobre que as máquinas Back To My Mac estão em execução. O item de menu é Nova conexão remota ... e o atalho é Shift+ Command+ K. Mostra como o nome do localizador "Mikey's Mac" pode ser diferente do nome abreviado do host mi

insira a descrição da imagem aqui


11
Boa resposta abrangente com screenies +1
ConstantineK

hobs tem um b: p
ConstantineK
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.