Sunday, March 13, 2011

Wake-on-Lan (WOL) for Windows 7 Made Easy!

This was such a nightmare to troubleshoot that I just had to document the process. In my scouring the web, I found many like me experiencing the same woes in setting up their WOL. My whole purpose for doing this was in the interest of saving power. I could put my computer to sleep and still be able to wake it up remotely so I can RDP (Remote Desktop Protocol) into it to access my files while away. [EDIT: I recently found this great article on WoWLAN by Andrew vonNagy which details some of the benefits and downsides to using this technology, and provides a nice cost analysis for an organization case study. Check it out if you're interested in the Wireless WOL.]

There are numerous steps to the process, so I'm first going to outline all of them to give you a nice overview of how to get setup. Henceforth I will refer to the Wake-on-Lan capability as WOL. Here is a zipped file with shortcuts to all the Control Panels you'll need for your convenience. It also contains a script for the WOL utility linked at the end of this article. ;)

COUPLE QUICK NOTES BEFORE WE BEGIN
  • WOL ONLY works for Ethernet (i.e. hard-wired) connections, NOT Wireless!
  • You must use the MAC address of you Ethernet card.
  • Orange bullets relate to enabling WOL feature / services.
  • Green bullets relate to the actual routing of the packets to your computer.
  • Things you'll need to know about your computer: LAN IP, WAN IP, and MAC address. Real quick, hit Windows key + R and type 'cmd' then enter. In the console type 'ipconfig /all' and enter. Look for your "Ethernet card" and write down its IP (i.e. LAN IP) and MAC address. Then head to whatsmyip.org to get your WAN IP and write it down as well.
  • This guide is designed so you don't have to read everything, but only refer to the sections where you're stuck or having issues. The troubleshooting tools at the bottom can help you deduce what is wrong.
OUTLINE
  • Enable WOL in BIOS (from boot)
  • Enable WOL for your Ethernet Card (i.e. NIC)
  • Install Windows Feature "Simple TCPIP services"
  • Start Service "Simple TCP/IP Service" (enables ports 7 & 9)
  • Open UDP for Port 9 in Windows Firewall
  • Forward the port on your Router
  • Testing / Troubleshooting Tools
ENABLE WOL IN BIOS
Because of all the various motherboards out there, I'm not going to go into how to enable WOL in your BIOS, only know that you need to. However, if your BIOS, like mine, is severely limited in settings and no option is available to enable WOL, it might be safe to assume that it will work by default. My HP laptop has many of the BIOS settings locked for warranty purposes, but despite not having the option available, I am still able to use the feature.

ENABLE WOL FOR YOUR ETHERNET CARD (I.E. NIC)
Open "Device Manager" from the control panels or use the link in the zip. Expand "Network Adapters" and find your Ethernet Card. Right-click and open "Properties" then go to the "Advanced" tab. You should see something similar to the following. You want to enable "Wake on Magic Packet" or something similar.



INSTALL WINDOWS FEATURE "SIMPLE TCPIP SERVICES"
Open "Programs and Features" from the control panels or use the link in the zip. Click "Turn Windows features on or off" over on the sidebar. Scroll down and check "Simple TCPIP services" then click OK to install the feature.


START SERVICE "SIMPLE TCP/IP SERVICES"
Open "Services" from the "Administrative Tools" control panels or use the link in the zip. Scroll down to the service for which we just installed the feature. Make sure the service is started by clicking the link in the sidebar. Also ensure that the "Startup Type" is set to "Automatic" so that it will run with Windows.


OPEN UDP FOR PORT 9 IN WINDOWS FIREWALL
Open "Windows Firewall" from the control panels or use the link in the zip. Only UDP is needed, but you can if you with open the port for TCP as well. This is because UDP is a broadcast packet which can always be received by your NIC, whereas TCP requires the computer to be powered up. This can also be set to limit the IPs which can use the port and other security features to make your computer less vulnerable. These are the easiest settings.


FORWARD THE PORT ON YOUR ROUTER
You should see your routers' manual for the details, but here are the basics. Your router IP is almost always 192.168.1.1 or 192.168.0.1. Enter your router IP into the address bar in your web browser (Chrome ftw :P) and login to the admin page. Once there, you will find a section called something like "Advanced." What you are looking for is the "Port Forwarding" section. Make sure you forward port 9 to your LAN IP that we got earlier.

TESTING / TROUBLESHOOTING TOOLS
  • wakeonlan.me - Can auto send you magic packets on a schedule though the schedule is messed up. I had to set the schedule time to EST while keeping the timezone set to my timezone. It's quirky, but it works. When you get the schedule set correctly is should tell you how many minutes before it sends the packets at the top. Alternately you can use another computer on your LAN to test it, but be sure to use your computers' WAN IP address to ensure it actually works from outside your LAN.
  • Wake-on-LAN Packet sniffer v1.1 (direct download) - This nifty little free tool was incredibly useful when paired with the above site to verify that the magic packets were actually getting through to my computer.
  • Wake-on-LAN Utility (direct download) - This is what you'll be using from your remote location to send the magic packet which will wake up your computer. There are other utilities like this available, but I like this one. It's simple. I will also include a batch script in a separate zip which will make your life easier. You'll only have to edit the script to put your computer MAC and WAN IP.
  • whatsmyip.org - The indispensable tool for ensuring that your port is open to the outside world. Will only show open TCP ports. Not UDP as is used for WOL.
READER SUGGESTIONS
  • Android app with excellent reviews called "Wol Wake on Lan Wan" by Brobble, available on Android Market. (thanks to Emad)

Updated 15-Jan-2012
Fixed broken link to download my script pack. Thanks Anonymous chat user :)