Wake-on-LAN over internet é praticamente impossível

2

Eu tenho um novo MacBook Pro que eu quero ser capaz de logar através do ssh ou vnc, mas não importa a combinação de coisas que eu tentei nada parece funcionar. Até tentei o LogMeIn

Como faço para configurar meu MacBook para que eu possa me conectar remotamente, mesmo que esteja dormindo?

JoeCortopassi
fonte
2
Deveria haver maneiras de configurar seu roteador para encaminhar o pacote mágico. Eu simplesmente não consigo fazer isso funcionar
JoeCortopassi
1
A internet não é uma LAN.
Dave Sherohman

Respostas:

9

Você não pode encaminhar o pacote mágico. Ele funciona na camada 2 do Modelo OSI e é endereçado ao endereço MAC (ethernet ID) do computador de destino, que não sabe nada sobre a Camada 3 (IP, ou seja, a Internet). É por isso que é chamado de Wake-on- LAN .

O que você posso O que você faz é instalar software no seu roteador que pode enviar um pacote mágico para você na máquina em questão depois de fazer o login no roteador. Eu faço isso com um WRT54GL executando o Firmware de Tomate . Tenho certeza que também poderia ser realizado com DD-WRT .

Para responder ao resto da sua pergunta, a maioria das pessoas que usa o software de login remoto simplesmente não se incomoda com o sono em primeiro lugar. Mas, independentemente disso, eu uso rotineiramente o Compartilhamento de Tela integrado do OS X, que é basicamente VNC com autenticação aprimorada. Outros geralmente usam clientes e servidores VNC de terceiros, como Servidor Vine (Ou, eles apenas abrem o servidor Screen Sharing / Remote Desktop para conexões VNC menos seguras). Todos estes exigem que as portas apropriadas sejam encaminhadas do seu roteador.

Uma abordagem mais amigável é a terceira parte TeamViewer , que é bastante polido, livre para uso pessoal e não requer encaminhamento de porta, pois o computador "servidor" efetua login em um dos servidores do TeamViewer de trás de sua rede para aguardar uma conexão "cliente".

NReilingh
fonte
1
Você posso Encaminhar o pacote mágico, uma vez que o protocolo não importa - pode também ser UDP padrão em uma porta aleatória. O único requisito é que o pacote conteúdo tem o endereço do computador de destino. (Fontes: pesquisa original; Wikipedia .)
grawity
@grawity Você pode me mostrar uma prova de conceito? Lembre-se de que, quando uma máquina entra no modo de suspensão, sua interface Ethernet não está necessariamente ativa na camada de rede. Você precisaria de um firmware de roteador personalizado projetado especificamente para procurar esse pacote mágico personalizado encapsulado em IP, remover o encapsulamento e depois encaminhá-lo na camada de enlace de dados da sub-rede. Francamente, eu acho que é muito mais eficiente e simples usar recursos de sub-rede perpétua (como o firmware do roteador que eu descrevi, ou computadores sempre ativos que estão visíveis na Internet) para fazer isso normalmente.
NReilingh
@grawity Ah, eu vejo sua referência; Transmissões Direcionadas Subnet, na verdade. Eu questiono se essa tecnologia é prática em roteadores de consumidor (desde que você essencialmente precise encaminhar para frente tudo na máscara de sub-rede). As discussões do DD-WRT não são indicativas de muito sucesso.
NReilingh
1
Esta é uma boa resposta, exceto para o primeiro parágrafo. O que faz a mágica do pacote mágico não é seus cabeçalhos, mas seu conteúdo. Absolutamente qualquer pacote contendo o padrão mágico (algo como 0xFFFFFFFFFFFF seguido por 16 cópias do endereço MAC de destino, se bem me lembro) vai acordar a máquina. Ajuste esse padrão em qualquer pacote roteável e você poderá ativar remotamente uma máquina com ele. É claro que você deve saber o endereço MAC do destino com antecedência e o roteador da sub-rede deve ter um mapeamento ARP não expirado para esse cliente (se o pacote roteável for IPv4).
Spiff
5

Se você tem um TimeCapsule, então você pode fazer isso em teoria. Quando um Mac vai dormir, envia uma mensagem para um "Sleep Proxy" anunciando quais serviços ele pode oferecer, é acordado. O Time Capsule, em seguida, cuida de acordar o MacBook, mesmo sem fio.

Vejo: http://support.apple.com/kb/HT3774 que também diz que isso funciona para o Back To My Mac.

John Carr
fonte
5

Eu comecei a trabalhar:

  1. Meu roteador encaminha a porta UDP 9 para a máquina que deve acordar
  2. A máquina ativou o WOL e está conectada ao roteador usando ethernet.
  3. eu uso http://www.dslreports.com/wakeup para ativar a máquina (especificando meu IP WAN e o endereço MAC da máquina)

Depois de alguns segundos, a máquina está funcionando e eu posso, por exemplo. faça o login usando o SSH.

Eu tenho um roteador Zyxel P-2602HW-D1A e um Macbook rodando OS X 10.7 (Lion).

Eu ainda tenho que encontrar uma ferramenta de linha de comando para Mac / Unix que pode fazer WOL pela internet (ou seja, especificando endereço MAC e IP), mas há uma ferramenta para o Windows aqui: http://www.matcode.com/wol.htm

Grav
fonte
netcat vai fazer e está disponível para muitas plataformas diferentes, como Linux , janelas , Mac OS , HP-UX , Haiku , amiga , Android , iOS , FreeDOS . Apenas requer personalizado configuração Arquivo. O que faz com que funcione é que você pode envolver qualquer coisa no pacote TCP / IP com dados netcat, WOL, por exemplo. No entanto, se acontecer de você ter ReactOS então pode não funcionar ainda.
Sampo Sarrala
2

Por que não apenas encaminhar uma porta no roteador que você provavelmente tem? Nessa configuração, seu roteador teria o IP externo estático (ou usaria algum serviço DNS dinâmico), o roteador encaminharia qualquer tráfego para uma de suas portas para o servidor (que deveria ter um IP estático dentro de sua LAN) ou poderia encaminhar para um endereço de broadcast da sua LAN.

Agora enviando o pacote WOL para seus roteadores IP & amp; a porta encaminhada específica deve iniciar seu servidor (porque dentro do pacote WOL está o MAC do seu servidor).

O encaminhamento de portas é uma característica bastante comum em roteadores, portanto não deve haver necessidade de roteadores sofisticados de firmware / WOL.

Estes parecem apoiar minha ideia:

karniemi
fonte