Enabling Wake-on-WAN via the Internet

It’s been difficult to gather the required steps to actually enable the ability to WoL (magic packet) via the Internet (also called Wake-on-WAN). This is extremely helpful if you have a remote media server as I do and would like to not have it running 24/7, but be able to access it whenever you would like.

I’ll start with saying that I have the Verizon ActionTec MI424WR FiOS router. Everywhere I looked had different directions, all of which I could never actually follow. So here are the directions, from start to finish, with the MI424WR firmware 40.21.10.3. This is also me documenting my findings so that if I ever need to re-do this, I have step by step…

  1. First, you’ll need to log into your router. Typically this can be done by typing 192.168.1.1 into a web browser. If you’re reading this, I really hope you know that.
    1. Default username is “admin” and the password is “password” Please note that the characters that actually appear in the password field will be obfuscated and not show what you actually type. This is for security, but most users just find it extremely annoying. Ignore what you see and just type. I HIGHLY recommend changing this password as you will be opening a firewall port to the open world.
  2. Port Forwarding:

    1. Once in, click Advanced at the top, and click Yes on the warning.
    2. Click Port Forwarding Rules
    3. Click Add
    4. Enter the following information
      1. Service Name: WoL-Remote
      2. Service Description: Allows Wake On LAN
      3. Add Server Ports:
        1. Protocol: UDP
        2. Source Ports: Any
        3. Destination Ports: Single (default for WoL is 9, but I highly recommend using another port that is not used normally. Typically something above 50000 is ok. The reason is that once you are done, any packet received on this port will be broadcasted to your entire LAN. Use a port that is not widely known or used.)
        4. Click Apply
      4. Click Apply
      5. Notice That WoL-Remote is now in the Port Forwarding Rules List.
  3. Firewall Settings:

    1. Click Firewall Settings and then Yes on the warning.
      1. On the left menu, click Port Forwarding
      2. You’ll see Create new port forwarding rule: Click the down arrow that says “IP Address forward to or select from menu” and select “Specify IP” in that field, type in 192.168.1.254 (this IP must be the highest IP in your network scope. By default, it ends in .254, as stated above.)
      3. Then, set the Application to forward to “WoL-Remote” and click Add
  4. ARP Entry

    1. I’m sure there’s another way to do this part, but next we need to enter an ARP entry into the router’s table. Unfortunately, this ARP entry will NOT survive a router restart, so it will need to be re-entered after every router reboot. I have created a VB/batch script that automatically telnets into the router and creates the entry.The file is attached here: Arp Router Entry. The files must be in the same directory to work. Also, you must change the username/password to match your router’s.
    2. Go back to Advanced along the top of the router’s configuration window, and click Yes on the warning.
    3. Select Local Administration from the left part of the window. (MAKE SURE YOU GO INTO LOCAL AND NOT REMOTE)
      1. Select Using Primary Telnet Port (I’m sure you can use Secure Telnet over SSL, but I never played around with that option. Since I trust everyone on my LAN, I never really cared.) and click Apply.
    4. You will need to have a telnet client installed. Windows 7 has a client built-in, but it’s not installed by default. Directions to configure are located HERE. You can also use PuTTY if you’d like. I prefer the Windows native client since I can make scripts run easier. For the following steps, I’ll use Windows’ native client
    5. Open a command prompt and type in “telnet 192.168.1.1” (without the “quotes” and press enter.
    6. Wait a second and a Username: prompt will appear. Enter your router’s username and press enter. Do the same with your password.
      1. You know you’re right so far when you receive a prompt that shows “Wireless Broadband Router>”
    7. Type “system shell” (again without “quotes”) and press enter.
    8. From here, enter “arp -s 192.168.1.254 FF:FF:FF:FF:FF:FF” (no “quotes”) and press enter
    9. You know you are correct when you type “arp” (no quotes) and press enter, and you see 192.168.1.254 with the MAC of all FF’s next to it. You can then close the window.
  5. Testing/using WoL

    1. I use an Android app called WakeOnLan, which can be found HERE. This app is pretty cool because it can also create a widget so that you can wake your computer up by one touch.
    2. For this to actually work, you need your external IP address, which can be found HERE.
    3. Configure the app using the information requested.
      1. Note that when you enter the IP address, type in your external IP address found above. The port will be the port you entered above.
    4. Once you’re done, shut down your computer and test it out!

 

11 thoughts on “Enabling Wake-on-WAN via the Internet

  1. This is probably a very stupid question but I know nothing about telnet, scripts, etc. Are the scripts you provided in the link supposed to replace performing the steps in E thru I ? And when you say “replace your username and password” are you meaning to edit the script and actually replace the words USERNAME and PASSWORD with my routers username and password? But keep the text {ENTER} and quotes there with no spaces?

    ~Sorry if this is a ridiculous question

    • You are totally fine. I don’t expect everyone to know scripting, and I’m not always the best at explaining things.
      Yes, you are correct. So, for defaults of most routers, It would look like this:
      OBJECT.SendKeys “admin{ENTER}”

      OBJECT.SendKeys “password1{ENTER}”
      The {ENTER} is actually a command in the script to “send” the command.
      You’ll also need to make sure you set the IP address to the correct IP address of your router in SetArp.bat, and the broadcast (usually x.x.x.254) in the ArpSet.vbs. Since most are default of 192.168.1.1, that’s what I put.
      Make sense?

  2. Does the mapping to .254 make it unnecessary to use Free Dynamic DNS to get around fact that I don’t have a static IP? Or do I still need Dynamic DNS?

    • If you have a dynamic IP address from your ISP, you’ll need something like DynDNS (I use no-ip) if you don’t want to keep checking if your public IP address changed.

  3. I have put the VB/batch script under the same directory, i.e. C:\Users\HTPC\Documents\Arp Router Entry, but the arp entry never survives a router reboot. I made sure that to replace the user name and password as instructed but it still does not work. When I turn on the computer, I do see the VB/batch scrip running. By that I mean I see the cmd window opening and doing its thing. Do you know what can be going wrong?

    • Nope. The router, for some reason, clears all ARP entries, even manually added. That’s why I have my script run every time my server is restarted (router only reboots during a power outage, in which my server will also need to be booted back up).
      Or, you could schedule a task to run every night at 3a. It doesn’t hurt the router to run the task more often than it’s needed. Since it’s the same entry, it either ignores the new entry, or overwrites (doesn’t matter which, the result is the same.)

Leave a Reply