Implementando Wake Up on Lan (WoL) no Linux

Nesse artigo veremos como usar WoL (Wake on Lan) no Linux. Em outras palavras, WoL é a capacidade de literalmente ligarmos máquinas da rede enviando alguns pacotes "mágicos" através de sua placa de rede.

[ Hits: 114.315 ]

Por: Thiago Nobrega em 02/11/2005


Mão na Massa



Sistemas utilizados:
  • Servidor: Slackware, kernel 2.6.13;
  • Cliente: Slackware, kernel 2.6.11.

No cliente:

1. Ative o WoL no setup (BIOS).

2. Como root, configure sua placa de rede:

# ethtool -s ethX wol g

Utilize o "man" para ver qual argumento você utilizará, por exemplo: "g Wake on MagicPacket".

PS: Com o comando ethtool é possível colocar senha no wake.

No servidor:

Baixe e compile o ether-wake.c: $ wget ftp://ftp.scyld.com/pub/diag/ether-wake.c
$ gcc ether-wake.c

Renomeie o binário gerado de a.out para wakeup:

$ mv a.out wakeup

Pronto, para testar basta recuperar o MAC da placa de rede do cliente com o comando:

$ /sbin/ifconfig

Com o cliente desligado, basta fazer:

$ wake xx:yy:zz:aa:bb:cc

Claro, substituindo xx:ya... pelo MAC da placa de rede do cliente.

Depois disso seu cliente irá iniciar.

[]'s
Thiago Nóbrega

Página anterior    

Páginas do artigo
   1. Imagine a seguinte situação
   2. Mão na Massa
Outros artigos deste autor

SysLog: Sistema de log do Linux

Leitura recomendada

Ripando DVDs com Ubuntu Dapper Drake (AcidRip + MEncoder + Xvid)

Curiosidades e mitos sobre Slackware

ArchLinux, uma distro de expressão aqui no VOL

Montando um mirror de atualização do anti-vírus AVG

Instalando codecs, plugins e drivers NVidia e ATI com o EasyUbuntu

  
Comentários
[1] Comentário enviado por moskito em 02/11/2005 - 14:24h

"$ gcc ether-wake.c
Renomeie o binário gerado de a.out para wakeup:
$ mv a.out wakeup"

$ gcc ether-wake.c -o wakeup
já faz isso.

[2] Comentário enviado por cotonet em 03/11/2005 - 08:32h

Muito legal mas, se o meu cliente for Ruindows? Tem como?

[3] Comentário enviado por thiagonobrega em 03/11/2005 - 18:55h

Opa cotonet

Vamos la antes de tudo não tenho muita intimidade com o windows , mas na teoria basta compilar o programa ( ether-wale.c ) no windows, que ira funcionar.
Caso contrario procura algum programa que gere o MagicPacket.

flw

[4] Comentário enviado por dvj em 15/08/2006 - 11:07h

Parabéns pelo artigo.
Implementei em minha rede e funcionou perfeitamente. Fico grato pela
publicação, que agilizou bastante a tarefa de ligar as máquinas onde
trabalho.
Respondendo a pergunta do cotonet, é possível ligar máquinas Windows
remotamente. Basta pegar o mac address da máquina em questão para
que o servidor possa inicializá-la através do aplicativo compilado e ainda ativar na BIOS o recurso de wake up lan.

[5] Comentário enviado por debian-festival em 23/10/2006 - 19:00h

gostei do artigo. parabéns

[6] Comentário enviado por balani em 28/10/2006 - 23:41h

Muito bom seu artigo, mesmo a placa-de-rede sendo off-board, irá ter esse recurso na bios?

[7] Comentário enviado por nissieloin em 07/11/2006 - 11:51h

Provavelmente a placa de rede terá bios própria se tiver suporte wake on lan.

[8] Comentário enviado por welingtond em 09/12/2006 - 10:16h

Thiago,
Perguntar não ofende: Funciona com rede wireless ?

Parabéns e obrigado,
Welington

[9] Comentário enviado por ferreiralinux em 29/12/2006 - 15:43h

Boa Tarde

Galera quando digitei o comando ethtool -s eth0 wol g deu o seguinte erro:

'Cannot get current wake-on-lan settings: Operation nto supported not setting wol"

Alguem poderia mim ajudar.

Marcelo

[10] Comentário enviado por agoliveira em 02/01/2007 - 19:21h

ferreiralinux, você não deve ter permissões para executar o comando, como oartigo diz, tem que ser como superusuário (root).

[11] Comentário enviado por mylossindrino em 03/01/2007 - 08:01h

Show de bola esse artigo eim :)
Parabens !

[12] Comentário enviado por soro em 04/01/2007 - 00:54h

uma pergunta besta:

e se os estabilizadores das máquinas cliente estiverem desligados?

[13] Comentário enviado por removido em 06/01/2007 - 12:51h

Mais uma pergunta, não encontro nenhuma referência ao WoL no setup da minha BIOS, colocando a placa de rede como primeiro dispositivo de boot resolve?

[14] Comentário enviado por wendelhp em 18/01/2007 - 22:04h

Eu também não encontrei, o que faço?

[15] Comentário enviado por andypaes em 20/01/2007 - 02:34h

Parabéns pelo artigo....
Mas estou com um pequeno problema....
"Cannot get current wake-on-lan settings: Operation not supported
not setting wol"
Estou logado como root mas naum da certo de jeito nenhum...
Agradeço...

[16] Comentário enviado por brunokino em 26/03/2007 - 10:59h

Uauu....
mto interessante!
;-)

[17] Comentário enviado por carlosraniery em 06/05/2007 - 20:08h

Pessoal, alguém sabe se tem como utilizar um esquema de WOL por wireless?

[18] Comentário enviado por randra em 23/05/2007 - 12:50h

Comentário enviado por soro em 04/01/2007 - 00:54h:

uma pergunta besta:

e se os estabilizadores das máquinas cliente estiverem desligados?
-----------------------------------------------------------------

QUE TU ACHA? ;]

[19] Comentário enviado por neo2710 em 28/05/2007 - 16:17h

para fazer esse esquema é preciso que a placa de rede tenha suporte a wol?
precisa também do cabinho ligando a placa de rede na placa mãe?

[20] Comentário enviado por leonardo.ls em 09/06/2007 - 10:56h

Tem como eu ligar o PC estando em outra rede ?
ou seja ligar o PC atraves do IP no lugar do MAC ou junto com o MAC?

Obrigado pela Atenção...

[21] Comentário enviado por juno em 23/07/2007 - 18:16h

Cara Parabéns !!! Muito l]bom seu artigo, estava precisando dele ...
Valeu!!!

[22] Comentário enviado por msscesario em 31/07/2007 - 10:19h

Muito bom...

issu ajuda muito pois se preciso ligar meu pc da empresa eu ligo,
ja o tinha funcionando..

parabens !!!

[23] Comentário enviado por removido em 02/08/2007 - 22:18h

As placas mãe em geral, mais recentes evidentemente ficam em standby, pode se perceber um led em algumas placas que permanecem acesos mesmo depois de desligado o PC que possuem o power on... fontes atx. Por isso é evidente que a fonte de alimentação externa tem que estar ligada. Mouses opticos ficam acesos e até teclados mantem a o led acesso (não todos) e muita das vezes pode se ver a placa ethernet piscando....
O amigo aí que falou sobre o IP, não eh provável pois o IP soh eh declarado depois que o sistema operacional jah entrou em atividade...
Já o MAC vem ate mesmo de frabrica gravado....

Por aí, dá para tirar suas próprias conclusões...

[24] Comentário enviado por nunesvictor em 04/09/2007 - 14:31h

funciona com kernel 2.4.X???

abrass

[25] Comentário enviado por fabioarnoni em 15/10/2007 - 12:34h

Ótimo o artigo , gostei muito mas deixa eu fazer uma pergunta: Tem algum comando par aque eu possa ligar todas as maquinas de uma rede de uma só vez ? Abraços Fábio

[26] Comentário enviado por gabrielsp em 15/10/2007 - 18:02h

òtimo Artigo!

realmente... show de bola!! =D

[27] Comentário enviado por ciberglo em 22/10/2007 - 18:56h

Ih cara
Simples, enxuto, e bem explicado.
Muita hutilidade em LANs. Parabéns.

[28] Comentário enviado por valterrezendeeng em 02/11/2007 - 15:12h

Muito bom, parabens

Valeu!!

[29] Comentário enviado por erickson em 21/11/2007 - 22:39h

Parabéns!

Bom msm...

[30] Comentário enviado por pedrorissato em 22/11/2007 - 23:10h

Putz... esse é um dos implementos de hardware de melhor valia na minha opnião. O Wake-On-Lan vai muito além do termo LAN, pode ser feito por WAN, Celular, Wake-on-Ring, Pocket PC... infinitas as possibilidades.

Dêem uma olhada no site: http://www.depicus.com/wake-on-lan/
Acho um dos mais completos no assunto.

Respondendo às perguntas acima:
- O estabilizador tem que estar ligado, deve haver energia rodando na maquina, mesmo ela desligada, em fontes atx ainda há energia na placa.
- Em placas mais modernas com PCI 2.2, não precisa ligar cabo na placa de rede e na placa mãe, o próprio slot solta uma descarga elétrica que liga o pc. Nas placas mais antigas, que suportam WOL, liga-se um cabo de energia (igual do FAN 3 pinos) na placa de rede e mãe pra soltar a descarga.

- Quanto a ligar vários micros de uma vez eh complicado, pq mesmo o pc estando atrás de um hub/switch/roteador, todos irão interpretar o sinal como sendo enviado ao MAC X e não aos demais. Mas creio que dê pra fazer uma regra pra quando o sinal UDP chegar na porta B para o MAC ADDRESS X, redistribuir o sinal para os MAC ADDRESS Y,Z,A... determinando quais são todos MAC que devam ser acionados... quem entende de roteamento e tem micro atráz da rede poderia testar para nós xD...

Abraços... ótimo post Thiago xD



[31] Comentário enviado por removido em 28/01/2008 - 08:54h

muito bom seu artigo, parabéns.

[32] Comentário enviado por JhoniVieceli em 23/02/2008 - 11:36h

Muito bom parabens!

[33] Comentário enviado por removido em 02/03/2008 - 21:06h

Parabéns..Realmente muito simples e direto. Funciona muito bem.
Artigo muito Bom ! A Cara do VOL.

[34] Comentário enviado por ericlesrs em 16/03/2008 - 01:20h

Galera..... eu procurava uma alternativa nesse sentido, fiquei muito contente ao encontrar essa ferramente, realmente nao a conhecia! Show de bola!

Mas uma pergunta, isso funcionaria para ligarmos maquina que estao atras de um NAT? E ainda da para rodar isso em Broadcast?

Abraços!

[35] Comentário enviado por psychokill3r em 26/03/2008 - 21:01h

para ligar tudo pode se fazer um script sh

$vim ligatudo.sh
adicione isso

#!/bin/bash
wake xx:yy:zz:aa:bb:cc
wake xx:yy:zz:aa:bb:c1
wake xx:yy:zz:aa:bb:c2

e assim pro diante com todos os macs q vc quer ligar
$chmod +x ligatudo.sh
$sh ligatudo.sh
e tudo vai ligar

[36] Comentário enviado por removido em 11/06/2008 - 15:43h

No meu caso eu acesso de minha casa um dos servidores da prefeitura que é um Linux.
Evidentemente via SSH, dou o comando e ligo a máquina onde preciso descarregar uns arquivos. Dá para perceber que posso estar em qualquer lugar do mundo. Basta ter acesso à internet, pois o servidor roda 24 hs todos os dias. E as maquinas na maioria com nobreak que sempre ficam ligados.

Bom interessante a pergunta sobre wireless, que são em sua maioria offboard. E aí???
Vou estudar isto...
Apesar que uso aqui roteadores pppoe wireless que ficam sempre ligados e as maquinas ligadas a ele usam placa ethernet onboard.
Deste jeito funciona tranqüilo.

[37] Comentário enviado por grandmaster em 13/07/2008 - 18:59h

é um recurso super útil, principalmente quando se quer fazer atualização no OS e o usuário desligou a maquina :D

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[38] Comentário enviado por danilopenin em 24/07/2008 - 14:27h

Minha placa mãe não tem a opção na bios de Wake-on-lan para ligar remotamente, é uma Asus M2N-SLI Deluxe, gostaria de saber se tem alguma forma de ligar o pc remotamente sem essa opção, se existe alguma placa de rede ou modem que faça isso ou de alguma outra forma?

[39] Comentário enviado por hugoalvarez em 17/04/2009 - 09:38h

Onde eu encontro esses caras? Vlw.

ether-wake.c:63:20: error: unistd.h: No such file or directory
ether-wake.c:64:20: error: stdlib.h: No such file or directory
ether-wake.c:65:19: error: stdio.h: No such file or directory
ether-wake.c:66:19: error: errno.h: No such file or directory
ether-wake.c:67:19: error: ctype.h: No such file or directory
ether-wake.c:68:20: error: string.h: No such file or directory
ether-wake.c:74:24: error: sys/socket.h: No such file or directory
ether-wake.c:76:23: error: sys/types.h: No such file or directory
ether-wake.c:77:23: error: sys/ioctl.h: No such file or directory
ether-wake.c:78:22: error: linux/if.h: No such file or directory
ether-wake.c:80:22: error: features.h: No such file or directory
ether-wake.c:85:23: error: asm/types.h: No such file or directory
ether-wake.c:86:29: error: linux/if_packet.h: No such file or directory
ether-wake.c:87:28: error: linux/if_ether.h: No such file or directory
ether-wake.c:89:19: error: netdb.h: No such file or directory
ether-wake.c:90:27: error: netinet/ether.h: No such file or directory

--

Resolvido. Vlw.

[40] Comentário enviado por pedrorawan em 03/07/2010 - 12:01h

Pessoal,

Ta dando o seguinte erro ao compilar o programa:

In file included from ether-wake.c:90:
busybox.h:27:20: error: Config.h: Arquivo ou diretório não encontrado
ether-wake.c: In function ‘etherwake_main’:
ether-wake.c:149: error: ‘bb_msg_can_not_create_raw_socket’ undeclared (first use in this function)
ether-wake.c:149: error: (Each undeclared identifier is reported only once
ether-wake.c:149: error: for each function it appears in.)
ether-wake.c:222: error: ‘bb_msg_write_error’ undeclared (first use in this function)

O que eu faço para resolver ?

[41] Comentário enviado por zehdias em 21/07/2010 - 14:58h

Caro Thiago,
Vc escreveu as seguintes linhas
-------------------------------------------------------------
No cliente:
1. Ative o WoL no setup (BIOS).
2. Como root, configure sua placa de rede:
# ethtool -s ethX wol g
-------------------------------------------------------------
no meu caso meu server é linux mas meu cliente é winxp, como posso configurar a placa de rede da maquina ruindows para que aceite o comando WoL?
Obrigado,
Guilherme Dias.

[42] Comentário enviado por ggalmeida em 10/11/2010 - 14:13h

Mto bom! Vou implementar agora mesmo!

[43] Comentário enviado por heltonaufla em 30/10/2011 - 02:00h

Tenho um roteador belkin e ele não aceita colocar o virtual server em broadcast...tem como burlar isso de outro jeito...pois a WOL só está funcionando local...obrigado

[44] Comentário enviado por rhind em 14/10/2013 - 10:28h

Cara, eu ligo minha máquina a primeira vez tranquilamente.

Em seguida desligo com um shutdown -h now, ai quando vou ligar novamente não funciona mais.

Ai se eu tiro o cabo da fonte, conecto e mando o pacote magico ela liga.

Alguém sabe porque isso está acontecendo?

[45] Comentário enviado por pauloidef em 24/05/2018 - 08:36h

Alguem sabe dizer se existe um log para o Wake on lan. Pergunto isso porque tenho um servidor que liga 8 maquinas as seis horas da manhã e tem uma maquina que só liga dia sim dia não, e não sei o que está acontecendo, já verifiquei todas as configurações, e aparentemente não existe nenhum problema.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts