Marcio Cunha

Como configurar Wake-on-LAN no Linux para ligar o PC

Aprenda a configurar o Wake-on-LAN no Linux passo a passo. Ajuste o ethtool, mapeie o endereço MAC e ligue computadores remotamente via rede local.

Marcio Cunha•7 min
Também disponível em:EnglishEspañol
Resumo
  • O Wake-on-LAN depende de um sinal elétrico enviado pela placa de rede para despertar a placa-mãe.
  • A BIOS ou UEFI precisa ter o recurso de inicialização remota ativado para manter a placa energizada.
  • O comando ethtool verifica e altera o estado do modo de suspensão mágico na interface de rede.
  • O pacote mágico trafega pela camada de enlace por meio do endereço físico MAC da máquina.
  • O monitoramento de tráfego com ferramentas como o tcpdump ajuda a diagnosticar falhas no envio do pacote.

O que é o Wake-on-LAN e como ele funciona na prática

Já imaginou poder ligar um computador que está em outro cômodo ou até mesmo debaixo da mesa sem precisar apertar o botão físico de energia? É exatamente isso que o Wake-on-LAN, muitas vezes abreviado como WoS ou WoL, faz. Na prática, trata-se de um protocolo que permite acionar um computador desligado ou em modo de baixo consumo através de um sinal enviado pela própria rede local. O segredo por trás dessa mágica é que a placa de rede do seu computador continua parcialmente energizada mesmo após o sistema operacional ser desligado, aguardando pacientemente por uma instrução específica.

Essa instrução tem um nome curioso: pacote mágico ou magic packet. Trata-se de um bloco de dados especial enviado pela rede que contém uma sequência de bytes repetidos, seguida pelo endereço MAC, que é o identificador único e inalterável da placa de rede de destino. Quando a placa de rede capta esse pacote na rede local, ela própria emite um sinal elétrico direto para a placa-mãe, ordenando que a fonte de alimentação ligue o computador completo. Antes de iniciar qualquer configuração por software no sistema operacional, é fundamental garantir que o hardware suporte a tecnologia e que ajustes preliminares sejam feitos na placa-mãe.

Preparando a BIOS e a UEFI para aceitar o sinal remoto

Nenhuma configuração no sistema operacional Linux funcionará se a placa-mãe do seu computador ignorar os sinais de rede enquanto o equipamento estiver desligado. Por isso, o primeiro passo real acontece antes mesmo do boot do sistema, entrando na tela de configuração da BIOS ou UEFI da sua máquina. Cada fabricante de placa-mãe organiza os menus de forma diferente, mas geralmente você encontrará a opção de despertar a máquina nas abas voltadas para gerenciamento de energia, recursos avançados ou configurações de rede integrada.

Procure por termos como 'Wake on LAN', 'Power On by PCIe', 'PME Event WakeUp' ou 'Resume on LAN' e altere o estado para 'Enabled' ou ativado. Em muitas placas-mãe modernas equipadas com controladoras de rede integradas da Intel ou Realtek, também pode haver uma opção relacionada ao estado de economia de energia em conexões de rede, conhecida como Energy Efficient Ethernet, que por vezes precisa ser desativada para evitar que a placa desligue completamente o circuito de escuta. Salve as alterações na BIOS e reinicie o computador normalmente para carregar o seu sistema operacional Linux favorito.

Verificando e configurando o ethtool na interface de rede

Com o sistema operacional carregado, precisamos verificar se o kernel do Linux e o driver da placa de rede estão enxergando os recursos de gerenciamento de energia de forma correta. Para isso, utilizamos o ethtool, que é uma ferramenta de linha de comando padrão para consultar e modificar parâmetros de placas de rede e drivers. Na prática, ele funciona como um painel de controle detalhado para o seu adaptador de rede, permitindo verificar a velocidade de conexão, o modo duplex e, claro, o suporte a pacotes mágicos de despertar.

Abra o terminal do seu Linux e descubra o nome da sua interface de rede com o comando ip link ou ifconfig. Digamos que a sua interface principal seja chamada de eth0 ou enp3s0. Para consultar o estado atual do Wake-on-LAN, execute o comando com privilégios administrativos. Se preferir monitorar o tráfego da rede para entender se os pacotes estão chegando corretamente, você pode consultar nosso guia prático sobre como usar o tcpdump para capturar pacotes de rede no Linux antes de prosseguir com os ajustes do ethtool.

sudo ethtool enp3s0

O resultado exibido na tela trará uma seção específica chamada 'Wake-on'. Se ao lado dela aparecer a letra 'd', significa que o recurso está desativado (disabled). Para alterá-lo e permitir que a placa aceite pacotes mágicos, usamos o ethtool passando o parâmetro 'g', que instrui a interface a habilitar a escuta de WoL. Caso queira aplicar uma camada extra de segurança na sua máquina enquanto ajusta as interfaces, vale a pena conferir as recomendações de como configurar o UFW no Linux para blindar seu servidor contra acessos indesejados.

sudo ethtool -s enp3s0 wol g

Tornando a configuração persistente após reiniciar o sistema

O grande detalhe que pega muitos usuários de surpresa é que as alterações feitas diretamente pelo ethtool na linha de comando têm efeito temporário. Isso significa que, assim que você reiniciar ou desligar completamente o computador, o driver da placa de rede voltará ao seu estado padrão de fábrica, desativando o recurso de Wake-on-LAN. Para garantir que o comando seja executado automaticamente toda vez que o sistema iniciar, precisamos criar uma regra persistente usando o systemd ou scripts de inicialização do NetworkManager.

A forma mais elegante e moderna no Linux é criar um serviço customizado do systemd que execute o comando do ethtool logo após a interface de rede estar ativa. Para fazer isso, crie um arquivo de serviço com o seu editor de texto favorito no diretório de serviços do sistema, inserindo as instruções necessárias para disparar o comando ethtool de forma automatizada durante o processo de boot do sistema operacional.

[Unit]
Description=Habilita Wake-on-LAN na interface de rede
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s enp3s0 wol g

[Install]
WantedBy=multi-user.target

Salve o arquivo com o nome wol.service no diretório /etc/systemd/system/ e ative-o com os comandos systemctl enable wol.service e systemctl start wol.service. Dessa forma, você garante que o sistema estará sempre preparado para receber o sinal de despertar, mesmo após quedas de energia ou manutenções programadas que exijam reinicializações completas do servidor ou estação de trabalho.

Enviando o pacote mágico a partir de outro dispositivo da rede

Agora que a máquina alvo está devidamente configurada na BIOS, no ethtool e com persistência via systemd, chegou o momento de testar a funcionalidade na prática. Para enviar o pacote mágico, você precisará de outro dispositivo conectado à mesma rede local, que pode ser um notebook, um Raspberry Pi, outro servidor Linux ou até mesmo um smartphone Android através de aplicativos dedicados. O envio exige apenas duas informações cruciais: o endereço MAC da placa de rede da máquina alvo e o endereço IP de broadcast da sua rede local.

Se você estiver usando um sistema Linux no computador remetente, o utilitário mais comum para essa tarefa é o pacote etherwake ou wakeonlan. Instale a ferramenta usando o gerenciador de pacotes da sua distribuição e execute o comando informando o endereço físico da máquina que você deseja ligar. Na prática, esse comando criará o pacote com os bytes de sincronização e o transmitirá para todos os equipamentos da rede local através do endereço de transmissão.

sudo apt install etherwake
sudo etherwake -i wlan0 AA:BB:CC:DD:EE:FF

Substitua AA:BB:CC:DD:EE:FF pelo endereço MAC real da placa de rede do seu computador de destino, e wlan0 pela interface de rede do dispositivo que está enviando o comando. Caso a máquina alvo ligue imediatamente após a execução do comando, parabéns: sua configuração foi bem-sucedida de ponta a ponta, permitindo o gerenciamento energético totalmente remoto. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como testar diodo Schottky na placa com multímetro digital.

Considerações finais sobre redes locais e troubleshooting

Configurar o Wake-on-LAN no Linux é um processo extremamente útil para administradores de sistemas e entusiastas de homelabs que desejam economizar energia elétrica mantendo servidores e estações de trabalho desligados quando não estão em uso ativo. No entanto, vale ressaltar que o protocolo tradicional foi desenhado para operar estritamente dentro da mesma rede local (LAN), pois pacotes de broadcast geralmente não atravessam roteadores de borda sem configurações avançadas de encaminhamento de pacotes UDP na porta 7 ou 9.

Se porventura o computador se recusar a ligar após todos os passos, verifique se a placa de rede permanece com os LEDs acesos ou piscando levemente quando a máquina está desligada, o que indica que há energia de prontidão fornecida pela placa-mãe. Caso os LEDs estejam apagados, o problema certamente reside na configuração da BIOS ou em restrições de economia de energia impostas pela fonte de alimentação. Com paciência e validação passo a passo, você elimina gargalos e conquista um ambiente totalmente automatizado e eficiente.