Acordar um computador pela Internet usando outro computador na mesma rede local

2

Eu tenho dois computadores com o Arch Linux, 'A' e 'B', conectados à Internet através do mesmo roteador. Eu configurei e testei o Wake-on-WAN em ambos. Ambos os computadores estão desligados a maior parte do tempo.

Gostaria de me conectar a eles sem enviar pacotes mágicos de fora. A placa de rede do computador 'A' suporta a ativação da atividade de unicast, então eu a habilitei. O problema é que este não é o caso do computador 'B' - ele só pode ser despertado pelo pacote mágico.

Posso fazer com que o computador 'A' acorde o computador 'B' automaticamente quando houver uma tentativa de conexão TCP / UDP para o último? Estou pensando em uma solução como essa:

  1. Configure o roteador e o computador 'B' para que todo o tráfego 'B' (em portas específicas) passe pelo computador 'A'.
  2. Configure um script em 'A' que dispara em uma conexão com 'B' de alguma forma, verifica o estado 'B' e envia um pacote mágico.

Talvez haja uma maneira mais simples?

EDITAR:

Seria bom se fosse possível reencaminhar tudo para que nenhum tráfego 'B' passasse por 'A' após o despertar do primeiro, permitindo assim que o último desligasse automaticamente.

    
por ivanp7 12.09.2018 / 01:09

2 respostas

0

Você pode criar um script bash no computador A que gera e envia um pacote mágico para o computador B pela rede local.

Quando você ativar o computador A pelo tráfego de unicast, o script poderá ser acionado automaticamente ou você poderá fazer SSH no computador A e executá-lo.

Esta resposta no StackOverflow descreve como criar esse script.

    
por 12.09.2018 / 01:56
0

Can I make the computer 'A' to wake the computer 'B' automatically when there is TCP/UDP connection attempt to the latter?

Você precisaria fazer proxy das solicitações ARP para B enquanto B estiver dormindo, depois ouvir as tentativas de conexão para o IP de B e enviar o pacote de ativação.

Isso é factível, mas é difícil escrever um pequeno programa em C usando soquetes de pacotes para o proxy ARP inicial e a tentativa de conexão de rastreamento. Também precisaria gerenciar o estado sobre B dizendo se B está dormindo ou não, por exemplo, examinando se B envia alguma coisa e responde a solicitações ARP.

Você precisará entender um pouco dos protocolos de rede para escrever isso (ou observar as capturas do wireshark por tempo suficiente até entender o que está acontecendo.

    
por 12.09.2018 / 08:08