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: 112.988 ]

Por: Thiago Nobrega em 02/11/2005


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.

    Próxima página

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

Fazendo uma conexão bridge no VirtualBox

Criando um banco de dados para obter ajuda do sistema

Utilizando ferramentas de virtualização para testar distros

Transmissão de áudio e vídeo via Multicast

Instalando o XGL no Kurumin 6.0 e 6.1

  
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