Debian - WAKE ON LAN
K (→Saubere Debian Lösung) |
|||
| Zeile 4: | Zeile 4: | ||
Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. | Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. | ||
| − | Falls es noch Fragen gibt könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de | + | Falls es noch Fragen gibt, könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de |
| − | Bei [[Debian]] sieht das dann z.B. so aus: (einfach | + | Bei [[Debian]] sieht das dann z. B. so aus: (einfach nach ethool suchen, um die passenden Stellen zu finden): |
<pre> | <pre> | ||
#!/bin/sh | #!/bin/sh | ||
| Zeile 117: | Zeile 117: | ||
</pre> | </pre> | ||
| − | === Saubere Debian Lösung === | + | === Saubere Debian-Lösung === |
| − | Besser als das Ändern von vorhandenen Dateien ist es einen extra Mechanismus einzubauen. In Debian (Sarge) wird der runlevel 0 zum Abschalten des Systems benutzt. Daher wird ein link in /etc/rc0.d erzeugt der auf | + | Besser als das Ändern von vorhandenen Dateien ist es. einen extra Mechanismus einzubauen. In Debian (Sarge) wird der runlevel 0 zum Abschalten des Systems benutzt. Daher wird ein link in /etc/rc0.d erzeugt der auf das Skript in /etc/init.d/wake_on_lan zeigt. (Erst das Skript erzeugen!) |
<pre> | <pre> | ||
cd /etc/rc0.d | cd /etc/rc0.d | ||
| Zeile 124: | Zeile 124: | ||
</pre> | </pre> | ||
| − | Und hier | + | Und hier das Skript wake_on_lan. Er muß nach /etc/init.d gespeichert werden und ausführbar sein. Dies geht mit "chmod +x wake_on_lan", wenn man im Verzeichnis ist. |
<pre> | <pre> | ||
#! /bin/sh | #! /bin/sh | ||
# | # | ||
| − | # Ensures that | + | # Ensures that Wake on Lan works |
# | # | ||
| Zeile 152: | Zeile 152: | ||
</pre> | </pre> | ||
| − | Falls ethtool noch nicht installiert ist muß man dies jetzt nachholen: | + | Falls ethtool noch nicht installiert ist, muß man dies jetzt nachholen: |
<pre> | <pre> | ||
apt-get install ethtool | apt-get install ethtool | ||
Version vom 14. Mai 2006, 00:12 Uhr
Beschreibung
Für Debian gibt es die Pakete etherwake und wakeonlan. Etherwake kann nur vom root ausgeführt werden, wakeonlan von allen Benutzern.
Ich habe diese Zeile einfach in meine /etc/init.d/networking an entsprechender Stelle nach dem Aktivieren des Netzwerks gesetzt. Falls es noch Fragen gibt, könnt Ihr mich auch direkt anmailen: Thorsten at Gehrig.de
Bei Debian sieht das dann z. B. so aus: (einfach nach ethool suchen, um die passenden Stellen zu finden):
#!/bin/sh
#
# 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
Saubere Debian-Lösung
Besser als das Ändern von vorhandenen Dateien ist es. einen extra Mechanismus einzubauen. In Debian (Sarge) wird der runlevel 0 zum Abschalten des Systems benutzt. Daher wird ein link in /etc/rc0.d erzeugt der auf das Skript in /etc/init.d/wake_on_lan zeigt. (Erst das Skript erzeugen!)
cd /etc/rc0.d ln -s /etc/init.d/wake_on_lan S80wake_on_lan
Und hier das Skript wake_on_lan. Er muß nach /etc/init.d gespeichert werden und ausführbar sein. Dies geht mit "chmod +x wake_on_lan", wenn man im Verzeichnis ist.
#! /bin/sh
#
# Ensures that Wake on Lan works
#
#PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
set -e
case "$1" in
stop|start|restart|force-reload|reload)
echo -n "Turn on: Wake on Magic Packet"
/usr/sbin/ethtool -s eth0 wol g
echo
;;
*)
# N=/etc/init.d/hwtools
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
;;
esac
exit 0
Falls ethtool noch nicht installiert ist, muß man dies jetzt nachholen:
apt-get install ethtool