Wake On Lan: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
mNessun oggetto della modifica
 
(27 versioni intermedie di 12 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{Versioni compatibili|Jessie|Stretch|Buster}}
== Introduzione ==
Il Wake On Lan è una funzione molto utile che permette di accendere il proprio computer a distanza dall'interno della propria rete locale. Molte schede di rete, soprattutto gli ultimi chip integrati, supportano questa caratteristica che in alcuni casi si può rivelare davvero molto utile. Immaginate ad esempio di avere due PC in due stanze o uffici diverse dello stesso piano o perché no, proprio in due piani diversi e di essere impegnati sulla prima postazione. Vi ricordate però che avete bisogno di andare a controllare un documento che sta sull'altro computer e pensate di aprire VNC ma purtroppo la seconda postazione è ancora spenta e quindi non vi potete collegare. A questo punto solo una cosa vi può aiutare: il '''MagicPacket™'''!


Il Wake On Lan � una funzione molto utile che permette di accendere il proprio computer a distanza dall'interno della propria rete locale. Molte schede
== Preparazione ==
di rete, soprattutto gli ultimi chip integrati, supportano questa caratteristica che in alcuni casi si pu� rivelare davvero molto utile. Immaginate ad esempio di avere due pc in due stanze/uffici diverse dello stesso piano o perch� no, proprio in due piani diversi e di essere impegnati sulla prima postazione.. vi ricordate per� che avete bisogno di andare a controllare un documento che sta sull'altro computer e pensate di aprire vnc ma purtroppo la seconda postazione e' ancora spenta quindi non vi potete collegare.. a questo punto solo una cosa vi pu� aiutare: il '''MagicPacket(tm)'''!


La prima cosa da fare è assicurarsi che il proprio BIOS sia configurato per accettare il wake on lan. Ogni produttore di schede madri fa storia a se, quindi il lettore dovrà autonomamente controllare che la o le impostazioni necessarie siano attivate.


==Software necessario==
Fatto questo è necessario installare due/tre programmi:
 
Avremmo bisogno di due programmi:
* ethtool
* ethtool
* etherwake
* etherwake e/o wakeonlan


Per installarli sufficiente un:
Per installarli è sufficiente, con [[privilegi di amministrazione]], sulla macchina che deve essere avviata da remoto:
<pre>
# apt install ethtool
</pre>


E sulle macchine utilizzate per inviare il messaggio "wake on lan":
<pre>
<pre>
# apt-get install ethtool etherwake
# apt install etherwake wakeonlan
</pre>
</pre>


 
== Utilizzo di ethtool ==
==Utilizzo di ethtool==
All'avvio del computer entrate nel BIOS e attivate il Wake-On-Lan; solitamente trovate l'impostazione sotto la voce
 
<code>Power Management Setup</code>.
All'avvio del computer entrate nel BIOS e assicuratevi che il Wake-On-Lan sia attivato; lo trovate sotto la voce
"Power Management Setup".


Una volta avviato Linux lanciate:
Una volta avviato Linux lanciate:
Riga 28: Riga 30:
</pre>
</pre>


{{ Warningbox | in questo e nei futuri esempi, sostituite eth0 con il nome corrispondente alla scheda di rete che state usando! }}
{{ Box | Nome dell'interfaccia di rete | In questo e nei futuri esempi, sostituite '''eth0''' con il nome corrispondente alla scheda di rete che state usando! }}
 


A questo punto dovreste vedere una serie di informazioni tra cui qualcosa di simile a questo:
A questo punto dovreste vedere una serie di informazioni tra cui qualcosa di simile a questo:
Riga 37: Riga 38:
</pre>
</pre>


La voce "Supports Wake-on" specifica i metodi di wake-on supportati dalla vostra scheda di rete; se non la vedete un brutto segno!
La voce <code>Supports Wake-on</code> specifica i metodi di wake-on supportati dalla vostra scheda di rete; se non la vedete è un brutto segno!
La voce "Wake-on" specifica il metodo in uso; d sta per disabled mentre g quello che andremo ad usare (Wake on MagicPacket(tm)). ''Se per qualche motivo avete gi� la voce "Wake-on" impostata a "g" potete terminare qui la lettura di questa pagina ;)''
La voce <code>Wake-on</code> specifica il metodo in uso; <code>d</code> sta per ''disabled'' mentre <code>g</code> è quello che andremo ad usare (Wake on MagicPacket&trade;). ''Se per qualche motivo avete già la voce <code>Wake-on</code> impostata a <code>g</code> potete terminare qui la lettura di questa pagina ;)''
 


Per impostare il metodo a "g" assicuratevi di avere la lettera "g" tra quelle che seguono la voce "Supports Wake-on" e poi digitate:
Per impostare il metodo a <code>g</code> assicuratevi di avere la lettera <code>g</code> tra quelle che seguono la voce <code>Supports Wake-on</code> e poi digitate:
<pre>
<pre>
# ethtool -s eth0 wol g
# ethtool -s eth0 wol g
</pre>
</pre>


Se rilanciate
Se rilanciate:
<pre>
<pre>
# ethtool eth0
# ethtool eth0
</pre>
</pre>


dovreste avere "'''Wake-on: g'''".
dovreste avere <code>'''Wake-on: g'''</code>.


A questo punto spegnendo il computer lo potrete accendere da un'altra postazione usando o etherwake o wakeonlan.


A questo punto spegnendo il computer lo potrete accendere da un'altra postazione usando etherwake.
== Risveglio del computer remoto ==


==Utilizzo di etherwake==
Sia etherwake che wakeonlan permettono di inviare un MagicPacket&trade; alla scheda di rete del PC che volete avviare, accendendolo. Poiché per ipotesi il PC obiettivo è spento non sarà possibile contattarlo tramite un indirizzo IP, ma sarà invece necessario usare il suo indirizzo fisico (MAC Address).


etherwake serve per inviare il MagicPacket(tm) alla scheda di rete del pc che volete accendere, accendendolo.
Il MAC Address del PC di destinazione è ottenibile solo quando questo è acceso (a meno che per una qualche ragione esso non sia già noto), quindi sarà necessario poter accendere manualmente tale computer almeno una volta. Da terminale digitare allora:
Ovviamente, dal momento che il pc � spento non vi potete basare sul indirizzo IP; dovrete usare il MAC Address.
 
Per trovare il MAC Address del pc di destinazione lanciate da quest'ultimo il comando:
<pre>
<pre>
# ifconfig
$ ip link
</pre>
</pre>


ed individuate la riga:
ed individuate la riga:
<pre>
1: '''eth0''': <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu ... '''link/ether 00:50:6d:ea:a2:dc''' brd ff:ff:ff:ff:ff:ff
eth0      Link encap:Ethernet  '''HWaddr 00:50:6D:EA:A2:DC'''
 
</pre>
Il MAC Address è la parte che segue la dicitura <code>HWaddr</code> ovvero, nel nostro esempio, <code>00:50:6D:EA:A2:DC</code>.


Il MAC Address e' la parte che segue la dicitura "HWaddr" ovvero, nel nostro esempio, "00:50:6D:EA:A2:DC" (senza virgolette).
Segnatevi il MAC Address e dopo aver impostato il metodo di wake-on a <code>g</code> sul PC di destinazione, spegnetelo e recatevi sull'altra postazione.


=== Etherwake ===


Segnatevi il MAC Address e dopo aver impostato il metodo di wake-on a "g" sul pc di destinazione, spegnetelo e recatevi sull'altra postazione.
Questo applicativo richiede i permessi di root per essere eseguito. Da terminale digitare:
A questo punto lanciate:


<pre>
<pre>
Riga 84: Riga 82:
</pre>
</pre>


L'opzione -D serve solo ad avere in ouput qualche informazione in pi� sull'operazione.
L'opzione <code>-D</code> serve solo ad avere in output qualche informazione in più sull'operazione.
Se tutto � andato per il verso giusto, il secondo pc dovrebbe essersi acceso..


{{ Cautionbox | se il PC da accendere ha una scheda madre con chipset nForce ed è collegato alla rete con la scheda di rete integrata allora dovrete invertire il MAC Address quando usate etherwake. Il driver forcedeth che controlla le schede di rete delle schede madri basate su nForce infatti, allo spegnimento del PC, scrive il MAC Address dentro alla scheda di rete, rovesciandolo. Non dovrete quindi digitare:


==Ultimi ritocchi==
<pre>
# etherwake 00:50:6D:EA:A2:DC -D
</pre>


Ora, se il pc � partito, noterete che lanciando nuovamente "ethtool eth0" il metodo di wake-on � tornato a "d".
ma piuttosto:
Per far si che ogni volta che accendete il computer il metodo usato sia "g" ci sono varie strade; di seguito spiegher� quella che ho scelto ovvero
la modifica del file di avvio della rete.


Aprite il file '''/etc/init.d/networking''' e modificatelo come segue:
<pre>
<pre>
#!/bin/sh
# etherwake DC:A2:EA:6D:50:00 -D
#
</pre> }}
# manage network interfaces and configure some networking options
=== Wake On Lan ===


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Questo applicativo può essere usato anche con i privilegi dell'utente normale. Digitare allora:
<pre>$ wakeonlan <macaddress></pre>
per esempio
<pre>$ wakeonlan 00:50:6D:EA:A2:DC</pre>


if ! [ -x /sbin/ifup ]; then
== Ultimi ritocchi ==
    exit 0
Se tutto è andato per il verso giusto, il secondo PC dovrebbe essersi acceso.
fi
Ora, se il PC è partito, potrebbe capitare che, lanciando nuovamente:
<pre>
# ethtool eth0
</pre>
il metodo di wake-on ritorni a <code>d</code>.<br/>
Per far si che ogni volta che accendete il computer il metodo usato sia <code>g</code> , è sufficiente modificare il file <code>/etc/rc.local</code> inserendo, subito prima dell'istruzione "exit 0", la riga:
<pre>
ethtool -s eth0 wol g
</pre>


spoofprotect_rp_filter () {
=== Metodo alternativo ===
    # This is the best method: turn on Source Address Verification and get
Un metodo alternativo che non richiede la modifica dello script di avvio è quello di inserire l'abilitazione della funzione wake quando l'interfaccia di rete viene avviata. Per fare questo si può inserire una specifica direttiva in <code>'''/etc/network/interfaces'''</code>, ad esempio:
    # spoof protection on all current and future interfaces.
   
    if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
        for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
            echo 1 > $f
        done
        return 0
    else
        return 1
    fi
}


spoofprotect () {
==== Da Squeeze in avanti ====
    echo -n "Setting up IP spoofing protection: "
    if spoofprotect_rp_filter; then
        echo "rp_filter."
    else
        echo "FAILED."
    fi
}


ip_forward () {
<pre>
    if [ -e /proc/sys/net/ipv4/ip_forward ]; then
auto eth0
        echo -n "Enabling packet forwarding..."
iface eth0 inet static
        echo 1 > /proc/sys/net/ipv4/ip_forward
      address 192.168.1.2
        echo "done."
      netmask 255.255.255.0
    fi
      gateway 192.168.1.1
}
      ethernet-wol g
</pre>
Notare l'aggiunta della direttiva <code>'''ethernet-wol'''</code>.


syncookies () {
==== Prima di Squeeze ====
    if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then
        echo -n "Enabling TCP/IP SYN cookies..."
        echo 1 > /proc/sys/net/ipv4/tcp_syncookies
        echo "done."
    fi
}
 
doopt () {
    optname=$1
    default=$2
    opt=`grep "^$optname=" /etc/network/options`
    if [ -z "$opt" ]; then
        opt="$optname=$default"
    fi
    optval=${opt#$optname=}
    if [ "$optval" = "yes" ]; then
        eval $optname
    fi
}
 
case "$1" in
    start)
doopt spoofprotect yes
        doopt syncookies no
        doopt ip_forward no
 
        echo -n "Configuring network interfaces..."
        ifup -a
ethtool -s eth0 wol g
echo "done."
;;
    stop)
        if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts |
          grep -q "^/ nfs$"; then
            echo "NOT deconfiguring network interfaces: / is an NFS mount"
        elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | 
          grep -q "^/ smbfs$"; then
            echo "NOT deconfiguring network interfaces: / is an SMB mount"
elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts |
          grep -qE '^(nfs[1234]?|smbfs|ncp|ncpfs|coda|cifs)$'; then
            echo "NOT deconfiguring network interfaces: network shares still mounted."
        else
            echo -n "Deconfiguring network interfaces..."
            ifdown -a --exclude=lo
    echo "done."
        fi
;;
    force-reload|restart)
doopt spoofprotect yes
        doopt syncookies no
        doopt ip_forward no
        echo -n "Reconfiguring network interfaces..."
        ifdown -a --exclude=lo
        ifup -a
ethtool -s eth0 wol g
echo "done."
;;
    *)
echo "Usage: /etc/init.d/networking {start|stop|restart|force-reload}"
exit 1
;;
esac
 
exit 0


<pre>
auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      gateway 192.168.1.1
      up ethtool -s eth0 wol g
</pre>
</pre>
Notare l'aggiunta della direttiva <code>'''up'''</code>.


Le uniche due modifiche che ho fatto sono le due aggiunte del comando '''ethtool -s eth0 wol g''' nella sezione di start e restart delle interfacce di rete. Copiate solo quel comando nel vostro file nel punto corrispondente; evitate di fare il copia e incolla dell'intero file.
=== Alcune note finali ===


{{ Warningbox | gli utenti k/ubuntu hanno una versione leggermente diversa; il comando sopracitato va messo dopo il blocco "if" }}
* Preferire le schede di rete integrate e quelle PCI a quelle PCIExpress. Nell'esperienza di chi scrive è risultato impossibile risvegliare un PC quando il cavo di rete era collegato alle schede di rete PCIExpress (detto PC era dotato di una scheda integrata, di una PCI e due PCIExpress).
 
* Se il wol non funziona provare a collegare direttamente il PC risvegliante a quello risvegliando, quindi ripetere l'invio del magic packet. A chi scrive è capitato che risultasse impossibile, almeno inizialmente, risvegliare il PC bersaglio poiché entrambe le macchine erano collegate ad un hub ethernet. Una volta staccato il cavo del PC risvegliando dall'hub e collegatolo direttamente al PC risvegliante, il primo si è acceso con successo. Ricollegato normalmente il cavo all'hub di rete il PC risvegliando ha continuato ad accendersi correttamente.
'''Esempio estratto dal file networking di kubuntu:'''
<pre>
        if [ "$VERBOSE" != no ]; then
            ifup -a
        else
            ifup -a >/dev/null 2>&1
        fi
ethtool -s eth0 wol g
</pre>


== Conclusioni ==
La tecnologia Wake-On-Lan si può rendere utile solo nei rari casi in cui si disponga di una LAN con postazioni molto distanti tra loro, tuttavia in tali situazioni si rivela una risorsa davvero preziosa che può aiutare tra le altre cose a risparmiare energia, spegnendo i computer non usati "perché tanto poi ...".


{{Autori
|Autore = [[Utente:Virtual DarKness|Virtual DarKness]] 16:58, Giu 23, 2005 (EDT)
|Verificata_da =
: [[Utente:Wtf|Wtf]] 00:18, 15 set 2015 (CEST)
: [[Utente:HAL 9000|HAL 9000]] 18:15, 26 ott 2019 (CEST)
|Numero_revisori = 2
}}


---- [[Utente:Virtual DarKness|Virtual DarKness]] 16:58, Giu 23, 2005 (EDT)
[[Categoria:Servizi di sistema]][[Categoria:Configurazione ethernet]]

Versione attuale delle 16:16, 26 ott 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

Il Wake On Lan è una funzione molto utile che permette di accendere il proprio computer a distanza dall'interno della propria rete locale. Molte schede di rete, soprattutto gli ultimi chip integrati, supportano questa caratteristica che in alcuni casi si può rivelare davvero molto utile. Immaginate ad esempio di avere due PC in due stanze o uffici diverse dello stesso piano o perché no, proprio in due piani diversi e di essere impegnati sulla prima postazione. Vi ricordate però che avete bisogno di andare a controllare un documento che sta sull'altro computer e pensate di aprire VNC ma purtroppo la seconda postazione è ancora spenta e quindi non vi potete collegare. A questo punto solo una cosa vi può aiutare: il MagicPacket™!

Preparazione

La prima cosa da fare è assicurarsi che il proprio BIOS sia configurato per accettare il wake on lan. Ogni produttore di schede madri fa storia a se, quindi il lettore dovrà autonomamente controllare che la o le impostazioni necessarie siano attivate.

Fatto questo è necessario installare due/tre programmi:

  • ethtool
  • etherwake e/o wakeonlan

Per installarli è sufficiente, con privilegi di amministrazione, sulla macchina che deve essere avviata da remoto:

# apt install ethtool

E sulle macchine utilizzate per inviare il messaggio "wake on lan":

# apt install etherwake wakeonlan

Utilizzo di ethtool

All'avvio del computer entrate nel BIOS e attivate il Wake-On-Lan; solitamente trovate l'impostazione sotto la voce Power Management Setup.

Una volta avviato Linux lanciate:

# ethtool eth0
Info.png Nome dell'interfaccia di rete
In questo e nei futuri esempi, sostituite eth0 con il nome corrispondente alla scheda di rete che state usando!


A questo punto dovreste vedere una serie di informazioni tra cui qualcosa di simile a questo:

        Supports Wake-on: g
        Wake-on: d

La voce Supports Wake-on specifica i metodi di wake-on supportati dalla vostra scheda di rete; se non la vedete è un brutto segno! La voce Wake-on specifica il metodo in uso; d sta per disabled mentre g è quello che andremo ad usare (Wake on MagicPacket™). Se per qualche motivo avete già la voce Wake-on impostata a g potete terminare qui la lettura di questa pagina ;)

Per impostare il metodo a g assicuratevi di avere la lettera g tra quelle che seguono la voce Supports Wake-on e poi digitate:

# ethtool -s eth0 wol g

Se rilanciate:

# ethtool eth0

dovreste avere Wake-on: g.

A questo punto spegnendo il computer lo potrete accendere da un'altra postazione usando o etherwake o wakeonlan.

Risveglio del computer remoto

Sia etherwake che wakeonlan permettono di inviare un MagicPacket™ alla scheda di rete del PC che volete avviare, accendendolo. Poiché per ipotesi il PC obiettivo è spento non sarà possibile contattarlo tramite un indirizzo IP, ma sarà invece necessario usare il suo indirizzo fisico (MAC Address).

Il MAC Address del PC di destinazione è ottenibile solo quando questo è acceso (a meno che per una qualche ragione esso non sia già noto), quindi sarà necessario poter accendere manualmente tale computer almeno una volta. Da terminale digitare allora:

$ ip link

ed individuate la riga:

1: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu ... link/ether 00:50:6d:ea:a2:dc brd ff:ff:ff:ff:ff:ff

Il MAC Address è la parte che segue la dicitura HWaddr ovvero, nel nostro esempio, 00:50:6D:EA:A2:DC.

Segnatevi il MAC Address e dopo aver impostato il metodo di wake-on a g sul PC di destinazione, spegnetelo e recatevi sull'altra postazione.

Etherwake

Questo applicativo richiede i permessi di root per essere eseguito. Da terminale digitare:

# etherwake <mac address> -D

esempio:
# etherwake 00:50:6D:EA:A2:DC -D

L'opzione -D serve solo ad avere in output qualche informazione in più sull'operazione.

Attention.png Avvertimento
se il PC da accendere ha una scheda madre con chipset nForce ed è collegato alla rete con la scheda di rete integrata allora dovrete invertire il MAC Address quando usate etherwake. Il driver forcedeth che controlla le schede di rete delle schede madri basate su nForce infatti, allo spegnimento del PC, scrive il MAC Address dentro alla scheda di rete, rovesciandolo. Non dovrete quindi digitare:
# etherwake 00:50:6D:EA:A2:DC -D

ma piuttosto:

# etherwake DC:A2:EA:6D:50:00 -D

Wake On Lan

Questo applicativo può essere usato anche con i privilegi dell'utente normale. Digitare allora:

$ wakeonlan <macaddress>

per esempio

$ wakeonlan 00:50:6D:EA:A2:DC

Ultimi ritocchi

Se tutto è andato per il verso giusto, il secondo PC dovrebbe essersi acceso. Ora, se il PC è partito, potrebbe capitare che, lanciando nuovamente:

# ethtool eth0

il metodo di wake-on ritorni a d.
Per far si che ogni volta che accendete il computer il metodo usato sia g , è sufficiente modificare il file /etc/rc.local inserendo, subito prima dell'istruzione "exit 0", la riga:

ethtool -s eth0 wol g

Metodo alternativo

Un metodo alternativo che non richiede la modifica dello script di avvio è quello di inserire l'abilitazione della funzione wake quando l'interfaccia di rete viene avviata. Per fare questo si può inserire una specifica direttiva in /etc/network/interfaces, ad esempio:

Da Squeeze in avanti

auto eth0
iface eth0 inet static
       address 192.168.1.2
       netmask 255.255.255.0
       gateway 192.168.1.1
       ethernet-wol g

Notare l'aggiunta della direttiva ethernet-wol.

Prima di Squeeze

auto eth0
iface eth0 inet static
       address 192.168.1.2
       netmask 255.255.255.0
       gateway 192.168.1.1
       up ethtool -s eth0 wol g

Notare l'aggiunta della direttiva up.

Alcune note finali

  • Preferire le schede di rete integrate e quelle PCI a quelle PCIExpress. Nell'esperienza di chi scrive è risultato impossibile risvegliare un PC quando il cavo di rete era collegato alle schede di rete PCIExpress (detto PC era dotato di una scheda integrata, di una PCI e due PCIExpress).
  • Se il wol non funziona provare a collegare direttamente il PC risvegliante a quello risvegliando, quindi ripetere l'invio del magic packet. A chi scrive è capitato che risultasse impossibile, almeno inizialmente, risvegliare il PC bersaglio poiché entrambe le macchine erano collegate ad un hub ethernet. Una volta staccato il cavo del PC risvegliando dall'hub e collegatolo direttamente al PC risvegliante, il primo si è acceso con successo. Ricollegato normalmente il cavo all'hub di rete il PC risvegliando ha continuato ad accendersi correttamente.

Conclusioni

La tecnologia Wake-On-Lan si può rendere utile solo nei rari casi in cui si disponga di una LAN con postazioni molto distanti tra loro, tuttavia in tali situazioni si rivela una risorsa davvero preziosa che può aiutare tra le altre cose a risparmiare energia, spegnendo i computer non usati "perché tanto poi ...".




Guida scritta da: Virtual DarKness 16:58, Giu 23, 2005 (EDT) Swirl-auth60.png Debianized 60%
Estesa da:
Verificata da:
Wtf 00:18, 15 set 2015 (CEST)
HAL 9000 18:15, 26 ott 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized