Linux Wake-on-LAN setup for worldwide remote PC power on.

Wake-on-LAN can also work worldwide (over WAN Internet), in case your PC 10,000 km away gets turned off accidentally. To turn on a target PC from anywhere in the world, first you need to setup the target PC and router port forwarding (or have a VPN to the target subnet).

Example

For simplicity/clarity we assume the following arbitrary parameters, which will be unique for your target PC:

target interface target PC static LAN IP target public WAN IP public WoL port forward target MAC
eth0 192.168.1.100 1.2.3.4 10009 00:11:22:33:44:55

1. On target (PC to be remotely controlled)

  1. install ethtool
    apt install ethtool
    
  2. add the following line to /etc/network/interfaces under the interface you want to control auto eth0
    up ethtool -s eth0 wol g
    
  3. edit /etc/init.d/halt, changing text near top to:
       NETDOWN=no
    

    instead of yes.

  4. edit/create /etc/default/tlp with line
    WOL_DISABLE=N
    
  5. note link/ether for eth0–this is MAC address
    ip a
    
  6. Reboot target PC, then shutdown target PC for testing

2. setup control PC (your laptop)

apt install wakeonlan

3. Test Wake-on-LAN while on same LAN

on your control PC (while on the same LAN)

wakeonlan 00:11:22:33:44:55

using the MAC address of the target PC of course.

Troubleshooting Wake-on-LAN

If PC didn’t turn on, ensure BIOS/UEFI settings have Wake On Lan enabled. Worst case, you may need to try a discrete Intel Ethernet NIC.

setup worldwide Wake-on-LAN

To wake-on-LAN from anywhere in the world, using example parameters at top and after doing the procedure above, further do:

  1. Router: port forward 10009 to 192.168.1.100 port 9
  2. If you prefer not to use a Dynamic DNS service, just have the PC auto-send email when the public IP address changes.
  3. From your control PC on a different network type in Terminal:
    wakeonlan -i 1.2.3.4 -p 10009 00:11:22:33:44:55
    

    and target PC should power on.

Notes

Leave a Comment