Wake on LAN
Jak uruchomić zdalnie maszynę która posiada kartę sieciową obsługującą wake on LAN? Jak skonfigurować maszynę tak, aby reagowała na specjalne pakiety? Wszystkiego dowiesz się w tym artykule.
Zdalne uruchomienie
Jak uruchomić zdalnie maszynę która posiada kartę sieciową obsługującą wake on LAN? Pod systemami opartymi na Debianie używasz do tego komendy wakeonlan. Jeśli nie posiadasz tego narzędzia w systemie to zainstalujesz je komendą:
sudo apt install wakeonlan
Aby uruchomić maszynę zdalnie potrzebujesz wiedzieć jaki adres MAC posiada jego karta sieciowa. Jeśli chcesz uruchomić maszynę o adresie 00:00:00:00:00:00 to wydajesz komendę:
wakeonlan 00:00:00:00:00:00
Konfiguracja WOL
Konfigurację wake on LAN w systemach opartych na Debianie wykonujemy za pomocą narzędzia ethtool. Aby je zainstalować wykonujemy polecenie:
sudo apt install ethtool
Do konfiguracji potrzebujemy także nazwy naszego intefejsu sieciowego. Znajdziesz go wydając komendę:
ip a
Wynik będzie wyglądał podobnie do poniższego:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 70:85:c2:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global dynamic enp4s0
valid_lft 388sec preferred_lft 388sec
U mnie interfejs sieciowy nazywa się enp4s0. Dodatkowo wyświetla się mac adres karty sieciowej który będzie ci potrzebny przy wydawaniu komendy wybudzającej maszynę, u mnie to jest 70:85:c2:00:00:00.
Czas na konfigurację. Po wydaniu komendy:
sudo ethtool enp4s0
pojawia się taka informacja:
Settings for enp4s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: d
Link detected: yes
Interesuje nas linia Wake-on, jak widać znajduje się tam litera d. Według opisu polecenia ethtool opcja ta może przyjmować poniższe wartości:
p | Wake on PHY activity |
---|---|
u | Wake on unicast messages |
m | Wake on multicast messages |
b | Wake on broadcast messages |
a | Wake on ARP |
g | Wake on MagicPacket™ |
f | Wake on filter(s) |
d | Disable (wake on nothing). This option clears all previous options. |
Nas interesuje przestawienie opcji na g - Wake on MagicPacket™. Dokładne wyjaśnienie powyższych opcji znajdziecie w sieci. Znając już nazwę naszego interfejsu oraz opcję jaką chcemy ustawić wydajemy polecenie:
sudo ethtool -s enp4s0 wol g
Następnie komendą
sudo ethtool enp4s0
Sprawdzamy czy opcja się zmieniła. Jeśli tak, to możemy korzystać z dobrodziejstw uruchamiania maszyny za pomocą magic packet.