Setting up Wake on LAN on a CentOS 7 server.
Installation
Install the ethtool utility:
# yum install -y ethtool
Configuration
Make sure that the BIOS is configured to use Wake-on LAN.
Check what type of WOL the Ethernet card supports (we use net.ifnames=0):
# ethtool eth0 | grep Wake-on Supports Wake-on: g Wake-on: d
The Ethernet card supports Wake-on: g. From the man page:
wol p|u|m|b|a|g|s|d...
Sets Wake-on-LAN options. Not all devices support this. The
argument to this option is a string of characters specifying
which options to enable.
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™
s Enable SecureOn™ password for MagicPacket™
d Disable (wake on nothing). This option clears all previous options.
Our card supports the MagicPacket. Configure the NIC to wake on MagicPacket:
# ethtool -s eth0 wol g
Verify:
# ethtool eth0 | grep Wake-on Supports Wake-on: g Wake-on: g
Make the change persistent by adding the line below to the file /etc/sysconfig/network-scripts/ifcfg-eth0
:
ETHTOOL_OPTS="-s ${DEVICE} wol g"
Suspend the Server to RAM
Grab the MAC address of the NIC, it will be required to send the MagicPacket:
# cat /sys/class/net/eth0/address
Suspend the system to RAM via systemd:
# systemctl start systemd-suspend.service
Send a MagicPacket
On another server, install the wakeonlan package and send a MagicPacket to the MAC address of the CentOS server, for example:
$ wakeonlan 00:11:22:00:00:00
Ensure that firewall allows broadcast traffic to leave.
any way to do it from powering off the machine ?
Yes, if your hardware supports it.
Hello, not working for me.
kernel 3.10.0-123