Skip to content

Wake-on-LAN Setup

Wake-on-LAN (WOL) allows your server to be powered on remotely by sending a special network packet.

  1. Your server’s NIC receives a “magic packet” containing its MAC address
  2. The NIC signals the motherboard to power on
  3. The system boots normally
  • Ethernet connection (WiFi WOL is rarely supported)
  • Motherboard/BIOS with WOL support
  • NIC with WOL capability
  • Server must be in S5 (soft-off) state

Enter BIOS setup (usually Del, F2, or F12 at boot) and enable:

SettingCommon Names
Wake-on-LANWOL, Wake on LAN, Power On by PCI-E
Network BootPXE Boot, Network Stack (not required, but often in same menu)
Deep SleepDisable if WOL not working

Location varies by manufacturer:

  • ASUS: Advanced → APM Configuration → Power On By PCI-E
  • MSI: Settings → Advanced → Wake Up Event Setup → Resume By PCI-E Device
  • Gigabyte: Power → Wake on LAN
  • Dell: Power Management → Wake on LAN
  • HP: Power → Hardware Power Management → S5 Wake on LAN

Some NICs require WOL to be explicitly enabled at the OS level before shutdown.

Terminal window
sudo ethtool eth0 | grep Wake-on
  • g = WOL enabled (magic packet)
  • d = WOL disabled
Terminal window
sudo ethtool -s eth0 wol g

The setting resets on reboot. To persist:

Create /etc/systemd/system/wol.service:

[Unit]
Description=Enable Wake-on-LAN
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s eth0 wol g
[Install]
WantedBy=multi-user.target

Enable it:

Terminal window
sudo systemctl enable wol.service
Terminal window
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
auto eth0
iface eth0 inet dhcp
ethernet-wol g
Terminal window
ip link show eth0
# Look for "link/ether aa:bb:cc:dd:ee:ff"

Or:

Terminal window
cat /sys/class/net/eth0/address

From another machine on the same network:

Terminal window
# Install wakeonlan
sudo apt install wakeonlan
# Send magic packet
wakeonlan aa:bb:cc:dd:ee:ff

Your server should power on within a few seconds.

  1. Check BIOS settings - WOL must be enabled
  2. Check NIC settings - Run ethtool eth0 to verify WOL is enabled
  3. Check power state - Server must be in S5 (soft shutdown), not hard powered off
  4. Check network - Sender must be on same broadcast domain
  5. Check MAC address - Verify the correct MAC is configured
  • NIC WOL setting may reset after shutdown
  • Create a systemd service to re-enable on boot (see above)

Some systems enter S4 (hibernate) or disconnect NIC in sleep:

  • Disable “Deep Sleep” or “ErP” in BIOS
  • Ensure “Power On After Power Failure” is enabled

After configuring your server, test from articwake:

Terminal window
# SSH into the Pi
ssh root@<articwake-ip>
# Install wakeonlan
apk add wakeonlan
# Test directly
wakeonlan aa:bb:cc:dd:ee:ff