Pular para o conteúdo

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.
Thiago Nobrega thiagonobrega
Hits: 116.520 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Imagine a seguinte situação

Trabalhando em uma empresa de biotecnologia seu chefe precisa fazer um sequenciamento de alguma coisa muito complicada, que requer muito processamento e a melhor máquina da empresa levaria para processar toda a tarefa cerca de 3 meses.

E agora? Simples, vamos utilizar um solução de grid para usar todos os PCs da empresa para fazer o processamento utilizando um ferramenta GRID ourgrid.

Legal, mas os funcionários desligam as suas máquinas ao sair. É aí que o WoL entra em ação, basta colocar um script simples no servidor para iniciar todos os PCs da sua rede.

   1. Imagine a seguinte situação
   2. Mão na Massa

SysLog: Sistema de log do Linux

Easter Eggs em Linux

Clip no Slackware (compilador Clipper)

Editor de textos / IDE Geany

Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop

Instalando Metaframe Citrix Client numa estação Linux

#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

Entre na sua conta para comentar.