1. Overzicht: Waarom is het nodig?

Het 24/7 aanhouden van een desktop in huis of op kantoor verbruikt veel energie en brengt extra kosten met zich mee.

Daarom ben ik gaan nadenken over manieren om een desktop op afstand in te schakelen met behulp van een klein server zoals een Raspberry Pi, dat 24 uur per dag werkt.

Hiervoor heb ik een strategie ontwikkeld met de "Wake-on-LAN (WOL)" functie.

  • BIOS-instellingen van de desktop: WOL-functie inschakelen
  • Linux (Ubuntu) instellingen: Zorg ervoor dat de netwerkkaart actief blijft na uitschakeling van het systeem
  • Raspberry Pi instellingen: Schrijf en automatiseer het script voor het verzenden van de magische pakketten

Benodigde pakketten: - wakeonlan (Voor het verzenden van magische pakketten vanaf de Raspberry Pi of server)

Wake-on-LAN Overview


2. Configuratieomgeving

  • Doel-PC: Desktop met Ubuntu 24.04 geïnstalleerd
  • Server: Raspberry Pi 5 (Ubuntu Server 24.04)
  • Netwerk: Aangesloten op hetzelfde lokale netwerk (bedraad aanbevolen)

3. BIOS-instellingen van de desktop

Voor het gebruik van Wake-on-LAN zijn de BIOS-instellingen van het moederbord zeer belangrijk.

Hoe de BIOS in te stellen

Stel de volgende items in de BIOS in. Ik heb een GIGABYTE moederbord gebruikt, maar gebruikers van andere merken kunnen vergelijkbare opties vinden om in te stellen.

  1. Toegang tot BIOS/UEFI Setup tijdens opstarten van de desktop (meestal met DEL, F2 toets)
  2. De volgende items inschakelen:

ERP (gemoeid met energiebesparing)
- ERP instellen: Disabled (uitgeschakeld), omdat de energiebesparingsmodus de WOL-functie kan blokkeren.

CSM inschakelen - CSM Support: Enabled - Na het inschakelen van CSM kunnen de volgende items verschijnen (in het geval van een GIGABYTE moederbord): - LAN PXE boot Option ROM: Houd uitgeschakeld - Storage OpROM Policy: Legacy - Andere PCI-apparaten: Legacy

Resume by LAN / Power On by PCI-E
- Sommige borden ondersteunen dit automatisch zonder aparte items → ook als de optie niet zichtbaar is, kan het normaal werken

  1. Sla de wijzigingen op en herstart

※ De namen van de opties kunnen iets verschillen afhankelijk van de fabrikant. Zoek naar vergelijkbare opties zoals 'Wake', 'Power On by PCI' en stel ze in.


4. Desktop Linux (Ubuntu) instellingen

In Ubuntu moet de NIC (Network Interface Card) actief blijven, zelfs wanneer het systeem is uitgeschakeld.

1. Controleer de naam van de netwerkinterface

ip a

Voorbeeldresultaat:

2: enp4s0: ...
    link/ether <AA:BB:CC:DD:EE:FF> ...
  • enp4s0: Controleer de naam van de netwerkinterface. (Dit is de bedrade LAN apparaatnaam van de desktop en kan per apparaat verschillen.)
  • AA:BB:CC:DD:EE:FF: MAC-adres (doel voor magische pakketten) ※ Wees voorzichtig met de blootstelling van MAC-adressen voor de beveiliging.

2. Installeer ethtool

sudo apt update
sudo apt install ethtool

3. Controleer en stel WOL-status in

sudo ethtool enp4s0 | grep Wake

Voorbeeldresultaat:

Supports Wake-on: pumbg
Wake-on: d
  • d → Deactiveerstatus
  • Activeer met de onderstaande opdracht:
sudo ethtool -s enp4s0 wol g

Controleer opnieuw:

Wake-on: g

4. Zorg ervoor dat het automatisch wordt ingesteld bij opstarten (optioneel: toepasbaar als Wake-on:g na opnieuw opstarten wordt deactivated)

Na Ubuntu 20.04 wordt /etc/rc.local niet standaard ondersteund, dus het gebruik van een systemd-service wordt meer aanbevolen.

Methode om /etc/rc.local te maken:

sudo nano /etc/rc.local

Voeg boven exit 0 toe:

/sbin/ethtool -s enp4s0 wol g
exit 0

Geef uitvoeringsrechten na het opslaan van het bestand:

sudo chmod +x /etc/rc.local

Instellingen voor de systemd-service kunnen nodig zijn.


5. Verzenden van magische pakketten vanaf de Raspberry Pi

1. Installeer het wakeonlan pakket

sudo apt install wakeonlan

2. Voer de WOL-opdracht uit

wakeonlan AA:BB:CC:DD:EE:FF # Voer het MAC-adres in dat je eerder hebt gecontroleerd.

3. (Optioneel) Registreer alias

# Plaats het MAC-adres van de PC die je op afstand wilt opstarten in plaats van AA:BB:CC:DD:EE:FF.
echo "alias wakeup_dude='wakeonlan AA:BB:CC:DD:EE:FF'" >> ~/.bashrc
source ~/.bashrc

→ Voortaan kan je het heel eenvoudig uitvoeren zoals hieronder:

wakeup_dude

6. Resultaten

  • De desktop wordt automatisch opgestart na het ontvangen van de magische pakketten, zelfs als deze volledig is uitgeschakeld
  • Wake-on-LAN remote boot met succes geïmplementeerd!

7. Beveiligingsgerelateerde zaken

  • Versterking van de beveiligingsinstellingen voor de SSH-verbinding van de ‘Raspberry Pi’-server, routerbeveiliging, UFW-instellingen, enzovoort, is absoluut noodzakelijk.
  • Bij externe toegang wordt het gebruik van SSH-poortforwarding of een VPN aangeraden.

8. Gebruiksvoorbeeld

# Toegang van buitenaf
ssh username@<your_ip_or_domain> -p <your_ssh_port>
# Na verbinding
wakeup_dude
🎉 Desktop automatisch opgestart!

9. Referenties

  • Wake-on-LAN werkt uitsluitend op bedraad LAN (Wi-Fi is niet mogelijk)
  • Sommige borden werken mogelijk in de Suspend status, maar zijn beperkt in de Shutdown status. (Bij GIGABYTE borden is dit bevestigd dat het ook in de Shutdown-status werkt)

Door een desktopomgeving te creëren die "slechts op de noodzakelijke momenten" ontwaakt, wordt slimme en efficiënte serverbeheer mogelijk gemaakt.