Wake On Lan: differenze tra le versioni

(Aggiunto template autori)
Riga 90: Riga 90:


== Ultimi ritocchi ==
== Ultimi ritocchi ==
Ora, se il PC è partito, noterete che lanciando nuovamente <pre>ethtool eth0</pre> il metodo di wake-on è tornato a <code>d</code>.
Ora, se il PC è partito, potrebbe capitare che, lanciando nuovamente <pre>ethtool eth0</pre>, il metodo di wake-on è tornato a <code>d</code>.<br/>
Per far si che ogni volta che accendete il computer il metodo usato sia <code>g</code> ci sono varie strade; di seguito spiegherò quella che ho scelto ovvero
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:
la modifica del file di avvio della rete.
 
Aprite il file <code>'''/etc/init.d/networking'''</code> e modificatelo come segue:
<pre>
<pre>
#!/bin/sh
ethtool -s eth0 wol g
#
# manage network interfaces and configure some networking options
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
if ! [ -x /sbin/ifup ]; then
    exit 0
fi
 
spoofprotect_rp_filter () {
    # This is the best method: turn on Source Address Verification and get
    # 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 () {
    echo -n "Setting up IP spoofing protection: "
    if spoofprotect_rp_filter; then
        echo "rp_filter."
    else
        echo "FAILED."
    fi
}
 
ip_forward () {
    if [ -e /proc/sys/net/ipv4/ip_forward ]; then
        echo -n "Enabling packet forwarding..."
        echo 1 > /proc/sys/net/ipv4/ip_forward
        echo "done."
    fi
}
 
syncookies () {
    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>
 
Le uniche due modifiche che ho fatto sono le due aggiunte del comando <code>'''ethtool -s eth0 wol g'''</code> 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.
 
{{ Warningbox | gli utenti k/ubuntu hanno una versione leggermente diversa; il comando sopracitato va messo dopo il blocco "if" }}
 
'''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>
</pre>


'''Metodo alternativo'''
'''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  
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 tirata su. Per fare questo si può inserire l'istruzione <code>'''ethtool -s eth0 wol g'''</code> direttamente in <code>'''/etc/network/interfaces'''</code>. Ad esempio:
di rete viene tirata su. Per fare questo si può inserire l'istruzione <code>'''ethtool -s eth0 wol g'''</code> direttamente in <code>'''/etc/network/interfaces'''</code>. Ad esempio:


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


6 999

contributi