Skip navigation

Once upon a time I wanted to be able to start up my computer remotely. It’s a Windows Media Center PC, so most of the time, it sits in standby waiting to start back up when it’s time to record something. Thus, often when I want to connect to it to make changes or set something to record, it’s not on.

Wake-On-Lan (WOL) is a technology that can help here. If WOL is enabled, a computer in a low power state waits for a “Magic Packet” to be broadcast to it, before it will come out of sleep. The Magic Packet is a UDP packet, sent to the broadcast address of the LAN, which contains the MAC address of the Network Adapter. If the MAC address matches the MAC of the computer, it starts up. There are many programs out there that can send a Magic Packet.

This all works very well if the computer sending the Magic Packet is on the same LAN as the sleeping computer, but requires some additional effort to get working over the Internet. Especially if the very common Linksys WRT54G is your wireless router. The WRT54G setup page employs javascript to prevent the user from entering a broadcast address, so there is a work around. Here’s what to do to set this up:

  1. Enable WOL on your computer. This is usually a setting in the BIOS. (This may not be possible if you are using a wireless card. Only the very latest cards support Wireless Wake On Lan.)
  2. If you don’t already have Firefox, download and install it.
  3. Download and install the DOM Inspector Firefox Add-on.
  4. Using Firefox, open your Linksys WRT54G admin page (usually 192.168.1.1)
  5. Click on Applications & Gaming
  6. Add a new entry: Application=”WOL”, Start=”9″, End=”9″, Protocol=”UDP”, IP Address=”200″
  7. In Firefox, click on Tools, then DOM Inspector.
  8. Use DOM inspector to find the “WOL” entry and change IP Address from 200 to 255. (Firefox will red highlight the areas you have selected in DOM Inspector, this makes it easier to narrow down to the correct element.)
  9. Click “Save Changes” on the Applications and Gaming page.
  10. Download and install a Magic Packet program that can send a packet over the Internet. I like this one: http://magicpacket.free.fr/

You should now be able to wake your computer up from where ever you are. (Also, I should say that my router has firmware version 8.00.5. I don’t know if this matters, since I don’t have any other router to test it on.)

Source: WoL (Wake on LAN) through NATWOL – Wake On LAN through Linksys router

Advertisements

13 Comments

    • Krasi P
    • Posted July 15, 2009 at 11:45 PM
    • Permalink

    Hi rotwhiler.

    Thanks for the tutorial.
    It saved me from getting a different router with Tomato.
    The remote WOL works liek a charm.

    In step 8, i also had to delete the statement that checks for the valid IP number. I allowed 0-255 and then deleted the chack for the broadcastip.

    Thanks again.
    I bookmarked your tutoarial for future use.

    Krasi P.

    • SE
    • Posted July 24, 2009 at 2:15 PM
    • Permalink

    I have the WRT54GL, firmware v4.30.12, and unfortunately it appears that they have blocked this workaround.

    I am able to change the value in the DOM Inspector, but the values are detected when submitted to the router:

    “The values you entered are invalid.”

    Bummer!

  1. Very usefull
    Thank you

    • Joe
    • Posted November 24, 2009 at 6:02 AM
    • Permalink

    I’d suggest using firebug… I wasn’t able to get results using the DOM inspector. Use firebug to edit the HTML and just remove the onblur attribute from the input tag.

    • Jo400er
    • Posted December 1, 2009 at 1:31 PM
    • Permalink

    Very Cool – it worked with firebug – many thanx to all of you

    • sdtacoma
    • Posted February 4, 2010 at 6:24 PM
    • Permalink

    Step 8 doesn’t work for me. Using Firebug, I removed the onBlur and changed the value to 255 and it either doesn’t keep the value or gives me this error, “The values you entered are invalid. Please try again.”. The error is not a JS alert, but actually written out to the screen with the “Continue” button.

    It is as if they are doing “server-side” validation now.

    • Anonymous@sdtacoma
    • Posted May 13, 2010 at 7:14 PM
    • Permalink

    sdtacoma, I also couldn’t get DOM Inspector to work, changing the IP had no affect on the page.
    So I did the change from my windows mobile phone IE (no JS there to stop me) and it worked 🙂

    • Shayne Hisagari
    • Posted July 3, 2010 at 11:26 PM
    • Permalink

    Hi All,

    I’ve tried Google chrome DOM Inspector, doesnt work as the new firmware needs javascript to send the form to save the settings.
    Also tried temporarily disabling Javascript, dont work either. the router tells me that there is an error… it actually had a page like some secondary checkpoint to tell you that there is a configuration error.

    Here’s what worked. i changed my router subnet mask to ‘255.255.255.128’. This means that in your LAN, the broadcast IP address changes to ‘*.*.*.127’

    I then Set port forwarding to start on port 9 and end at port 9 on IP address 192.168.1.127(which is now the broadcast address) and made sure that i used the same subnet mask value in my Magic Packet Client.

    *Take note that this also limits the DHCP address range to a maximum of *.*.*.126

    • Andrew
    • Posted December 26, 2010 at 6:48 AM
    • Permalink

    Thanks, your guide gave me an inspiration for a slightly different approach. I wrote a very simple bookmarklet to trick the router into setting a broadcast address. I did this because I was too lazy to install a new add on to Firefox. I looked at the source of the text box and saw ‘onblur=”valid_range(this,0,254,errmsg.err34,this.defaultValue)”‘. Therefore, I created a very generous valid_range function as a bookmarklet: “javascript: function valid_range() { return true;}”

    Simply paste that into the browser’s address bar and press return. I believe this should work in any browser.

    • Barold
    • Posted January 30, 2011 at 9:35 AM
    • Permalink

    Hey, just letting people know what worked for me on v8.00.8 firmware…

    – Load up the Port Forwarding page in Chrome (haven’t tested other browsers)
    – Go into Chrome preferences and turn off Javascript
    – Change desired IP to 255
    – Click outside the box (this is when the Javascript would check for a broadcast value, but it has been disabled)
    – Now turn Javascript back on (otherwise you cannot submit the form)
    – Click ‘Save Settings’

    • Jason
    • Posted April 12, 2011 at 4:42 PM
    • Permalink

    You can skip the download FireFox step and simply use Internet Explorer to do the same thing (F12 – Developer tools).

    • Grizzlyking
    • Posted June 3, 2011 at 11:42 PM
    • Permalink

    Folks….I have a somewhat different problem with WOL on my home network. I can not seem to wakeup PC’s on my wired LAN from my wireless LAN, ie the magic packet should be leaving the WRT54G to be picked up by the target PC on the wired LAN. This seems to be to opposite of the other discussions in this topic.

    From my wired LAN network (192.168.15.*) WOL works fine.

    Some detail about my network: My wireless network is a sub network off of the above wired LAN. The Wireless router is a Linksys WRT54G which uses 192.168.15.15 as its external address on the wired LAN and internally it uses 192.168.60.* for wireless DHCP clients. Thus in effect all the wireless traffic passes out via my wired LAN and both networks access the Internet via a different 192.168.15.1 firewall/router. All this works fine for normal traffic between PCs on both LANs and for access to the Internet for both LANs.

    The problem is that I can only wakeup PC’s from the wired LAN. My question is what do I have to do to be able to wakeup PC’s on the wired, 15.* LAN from my wireless 60.* LAN?

    Thanks…GK

    • Kristian
    • Posted September 14, 2011 at 2:50 PM
    • Permalink

    This didn’t work completely for me, as I for some reason have to use each machine’s actual IP (e.g. 192.168.1.2), instead of 192.168.1.255. The lucky thing was that I only need to wake up two machines, and that WOL works with both port 7 and 9, so I just forwarded 7 to one and 9 to the other 🙂


2 Trackbacks/Pingbacks

  1. […] for older versions of this Linksys firmware if you’re curious, that can circumvent this, https://rotwhiler.wordpress.com/2009/03/24/enable-wake-on-lan-through-linksys-wrt54g/) So to try and wrap up a long story, here is how I accomplished wake on lan, over the internet […]

  2. […] So how do you accomplish this? You can send the packet to your public IP and forward to a “broadcast” address (by default will be 192.168.1.255 on most networks, assuming you have not changed your subnet address). This in theory works…but I cannot test this because my Linksys WRT54G router will not allow it, and from the looks of it, not many routers will… (there are JavaScript validation workarounds for older versions of this Linksys firmware if you’re curious, that can circumvent this, https://rotwhiler.wordpress.com/2009/03/24/enable-wake-on-lan-through-linksys-wrt54g/) […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: