Your server sleeps in the cellar, you are on the sofa, and the stairs are the problem. A magic packet takes the stairs for you.
The short answer
Wake-on-LAN (WoL) powers on or wakes a computer when its network card receives a special frame, the magic packet, which contains the card's MAC address [1]. It works only if the hardware, the firmware settings and the operating system all allow it, and the packet usually has to originate inside the same local network. Our assessment: WoL is a convenience for machines you want off most of the time, not a remote access method on its own.
How it works
- The magic packet. A magic packet starts with six bytes of FF, followed by the target's MAC address repeated sixteen times, and optionally a password of four or six bytes [1]. The network card watches incoming traffic for this pattern while the rest of the machine is off or asleep.
- Origin of the technology. Wireshark's documentation describes WoL as the name of the Magic Packet technology developed by AMD and Hewlett-Packard [1]. AMD's white paper is the original description [2].
- Transport. According to Wireshark's documentation, the pattern can sit anywhere in the payload of an Ethernet frame, and implementations exist that send it directly over Ethernet or over UDP [1]. Many tools use UDP port 9 or 7, but that is a convention, not part of the format (our observation, unverified as a standard).
- Three switches must be on. First, the firmware (BIOS or UEFI) must permit wake-up from the network card. Second, the card must be armed in the operating system. On Linux,
ethtool <interface>showsSupports Wake-onandWake-on; the lettergmeans wake on magic packet anddmeans disabled [3]. Third, the card needs standby power, which a fully unplugged machine does not have. - Arming does not survive a reboot by default.
ethtool -s <interface> wol gsets the mode, but a how-to by sleeplessbeastie notes that this is not persistent [4]. With systemd-networkd, a.linkfile withWakeOnLan=magicmakes it permanent [4]. - Across networks. A magic packet is normally broadcast inside one network segment. Our assessment: from outside, send it from a device that is already inside, such as a small always-on machine or a router that offers the function, instead of forwarding ports to a broadcast address. Behind CGNAT you have no inbound path at all (see Related pages).
- Security. Anyone who can send a broadcast in your segment and knows the MAC address can wake the machine. Optional passwords exist in the packet format, but support varies [1] (unverified for specific cards).
A homelab example
The Bytearium homelab runs rack servers (HPE ProLiant DL360 Gen9 and DL380 Gen10) and a QNAP NAS, as of 14 to 18 Oct 2026. We have not recorded WoL settings, so we say nothing about them. A general walkthrough for a Linux machine of your own: run ethtool enp2s0 | grep Wake-on with your interface name. If Supports Wake-on lists g but Wake-on shows d, run sudo ethtool -s enp2s0 wol g [3][4]. Then shut the machine down, and from another machine in the same network send a magic packet with a tool such as wakeonlan <MAC>. If nothing happens, look at the firmware setting first.
Checklist
- Find the MAC address of the wired network card and write it down.
- Check the firmware for a wake-up option on the network card and switch it on.
- Run
ethtooland readSupports Wake-onandWake-on. - Set
wol gand make it persistent, for example with a.linkfile [4]. - Test from a second machine in the same network, with the target shut down.
- Check that the machine keeps standby power to the card.
- Avoid forwarding ports to a broadcast address.
- Note which switch failed when it does not work.