Skrypt Wake-on-LAN - Jak zdalnie uruchomić komputer jedną komendą?
Mam stację roboczą, która jest wyłączona przez większość dnia. Kiedy jej potrzebuję — loguję się na La Potato przez SSH i odpalam jeden skrypt. Po kilku sekundach maszyna działa. Jak to zrobić?
Homelab
WakeOnLan
VPN
Sieci
Hardware
Author
De. Os.
Published
May 6, 2026
Skrypt Wake-on-LAN — jak zdalnie uruchomić komputer jedną komendą
Mam stację roboczą, która jest wyłączona przez większość dnia. Kiedy jej potrzebuję — loguję się na La Potato przez SSH i odpalam jeden skrypt. Po kilku sekundach maszyna działa. Jak to zrobić?
Wake-on-LAN (WoL) to funkcja, która pozwala uruchomić komputer zdalnie przez sieć. Komputer jest wyłączony, ale karta sieciowa nadal nasłuchuje. Kiedy dostanie specjalny pakiet (tzw. magic packet) z odpowiednim adresem MAC — uruchamia maszynę.
Żeby to działało, potrzebujesz dwóch rzeczy: włączonego WoL w BIOS-ie stacji roboczej i drugiego urządzenia w tej samej sieci, które wyśle magic packet. U mnie tym urządzeniem jest La Potato.
Skrypt
%%bash#!/bin/bash# Wake Ubuntu server/desktopHOMELAB_MAC="14:4A:66:87:95:8A"HOMELAB_IP="192.168.0.5"echo "Waking HomeLab ..."$wakeonlan HOMELAB_MAC# Wait for IronBlazefor i in {1..12}; doif ping -c 1 $HOMELAB_IP >/dev/null 2>&1; then#echo "Iron is awake!" echo "HomeLab is awake!"break fi echo "Waiting... ($i/12)" sleep 10done
Waking HomeLab ...
HomeLab is awake!
Jak to działa?
Skrypt robi dwie rzeczy. Najpierw wysyła magic packet na adres MAC stacji roboczej za pomocą wakeonlan. Potem w pętli sprawdza co 10 sekund, czy maszyna już odpowiada na ping. Maksymalnie czeka 2 minuty (12 prób × 10 sekund). Kiedy stacja odpowie — wyświetla “HomeLab is awake!” i kończy.
>/dev/null 2>&1 to przekierowanie outputu — nie chcę widzieć komunikatów z pinga, interesuje mnie tylko czy przeszedł, czy nie.
Wymagania
Na La Potato (lub innym urządzeniu wysyłającym) musisz mieć zainstalowany pakiet wakeonlan:
sudo apt install wakeonlan
Na stacji roboczej — WoL musi być włączony w BIOS-ie (szukaj “Wake on LAN” albo “Power on by PCI-E”) i w systemie:
sudo ethtool -s eth0 wol g
Żeby ustawienie przetrwało restart, dodaj to do /etc/network/interfaces albo stwórz serwis systemd.
Warto wiedzieć
MAC adres to adres fizyczny karty sieciowej — nie zmienia się. IP w moim przypadku to adres Tailscale (100.x.x.x), ale magic packet działa na warstwie L2, więc oba urządzenia muszą być w tej samej sieci lokalnej. Dlatego La Potato stoi fizycznie obok stacji roboczej, podłączone do tego samego routera.
Ping na adres Tailscale służy tylko do sprawdzenia, czy maszyna się obudziła i dołączyła do sieci — sam WoL nie ma z Tailscale nic wspólnego.