Wake on LAN works but Wake on WAN doesn't
Wake on LAN works but Wake on WAN doesn't
I have been trying really hard to fix or at least understand something about World of Warcraft for years. Maybe I don't get many ideas from other people, so here is what I tried and what didn't work, just like in real life. The problem is waking up a Windows 10 PC that was sleeping on my computer right now. My home PC is behind a big router called Home-and-Life, while the PC to wake up is behind another router named Vodafone Station Revolution. This target PC was set up correctly and works fine when WoL (Wake On LAMP) runs in the same network. I used Matlab MC-WOL.exe command line tool to send a special signal to the target PC. I understand that this tool uses port 65535. Here is what I did: with static DHCP set on my Vodafone router, I mapped the MAC address of the target PC (like aa🇧🇧cc:dd:ee:ff) to its IP in the LAN (like 192.168.1.22). Then I forwarded port 65535 to the IP 192.168.1.22 This should make sure that since routers usually can't send out messages like this without broadcasting, it might not work. Anyway, if I try the command in a PC in the same network and everything works fine, then the PC wakes up with no trouble. But when I tried it at my home PC, I got the message "SUCCESS!!" for sending the packet but nothing actually happened and the PC did not wake up. It seems like I am missing something very important or maybe just a small mistake (but that doesn't matter much to me). What could be wrong? Also, note that in the Vodafone LAN there is always another Windows 10 PC running because it hosts SQLEXPRESS used to handle our small database. Can this help find a solution? Thanks for listening.
I think it is probably just a Mac timeout, which makes this hack useless for most routers. WOL doesn't know IP addresses, so you can't do it from a different subnet. Some WOL clients also say the packet must go to the broadcast MAC address instead of the machine's actual MAC address. Another option would be to put in a port forward rule that maps port 65535 to 192.168.1.255. But it depends on how smart your router is. Many routers block this because someone might try to attack you by doing denial of service. The other way around would be to put in a static ARP entry (which isn't possible on most consumer routers) and map a dummy IP like 192.168.0.100 to the broadcast MAC address FF:FF:FF:FF:FF:FF...
I have been trying for years to solve or at least understand a problem with World of Warcraft. This might be because I don't fully get some advice people share online, so here is what I tried and why it didn't work, in simple terms. The trouble is waking up a computer from the internet on my home network. My home computer is behind a 3-home-and-life router, while the computer to wake needs to be behind a Vodafone Station Revolution router. The target PC is set up correctly to wake up, since WoL works perfectly when both PCs are in the same local area network. I am using Matlab MC-WOL.exe on my command line to send the magic packet to the target PC. From what I understand, this tool uses port 65535. Following these steps: with static DHCP set on the Vodafone router, I mapped the MAC address of the target PC (say aa🇧🇧cc:dd:ee:ff) to its IP address in the LAN (say 192.168.1.22), and forwarded port 65535 to that IP address. This should handle the fact that the Vodafone router doesn't support broadcasting, even though I might be wrong there. Anyway, if someone on a PC in the same LAN tries the command everything works well and the PC wakes up without trouble. When I try it from my home PC, I get the same result message saying "SUCCESS!!" but nothing actually happens, and the PC does not wake up. It is clear that something important or even small (not for me) is missing. What am I doing wrong? Also, note that in the Vodafone LAN there is always a Windows 10 PC powered on because it hosts SQL EXPRESS used to handle our small database. Can this help find a solution? Thank you for understanding.
Having a static DHCP reservation isn't always sure that the router's ARP table stays fresh. You can test this by using your cell phone on the cell network to send the wake-up packet while you're at the PC. Turn off your computer right away and send the wake packet from your phone instead of the computer. If it works, the MAC address is still in the ARP table. Wait about ten minutes and then try again. If it fails, that means the ARP table has aged out.
I agree it's likely a mac timeout which is why this hack doesn't work on most routers. WOL has no idea about IP addresses so it can't technically be done from a different subnet. Some WOL clients also make sure the WOL packet goes to the broadcast MAC address instead of the machine's MAC address. Another option is to set up port forwarding to the broadcast IP. So you connect port 65535 to 192.168.1.255. That depends how smart the router is. Many routers turn this off because someone could stop you from using it with a denial-of-service attack. The other way is to put in a static ARP entry (which isn't possible on most consumer routers) and map some dummy IP like 192.168.0.100 to the broadcast MAC address FF:FF:FF:FF:FF:FF. You would then set up port forward rules for 192.168.0.100. Since WOL only cares about the MAC address inside the packet and has strange IP addresses, it doesn't matter. Technically it should not have an IP header but some WoL clients force this rule. On top of that, WoL is very unreliable sometimes. You must send multiple packets to wake it up. Other solutions tend to work much better. Some routers like ASUS let you open a web page on your router and ask it to send the WOL packet for you. The other common way would be to remotely access your always-on PC and ask it to send the WOL command. I usually don't bother with this mess anymore. Many Microsoft low-power options let you remotely access even when the machine is in low power, which brings the power back up. There is very little extra power being used compared to WoL state. You can also just use one of fancy power plugs that allow internet access. You can set the machine to boot as soon as it gets power.
I don't really get why using my phone without wifi is different from using a computer, but I tried anyway. Nothing happened. The packet got sent successfully, but the pc didn't wake up. Even when I shut down the target pc and immediately send my magic packet (in about five seconds), there is no answer. Also, bitdefender has a rule that lets me use my phone to make outgoing calls on any network or protocol. This should allow packets to leave my router...I hope it works.
Where are you actually sending that data packet from your home computer? Are you just trying to send a Wake-on-LAN (WoL) magic packet directly through the local network, or did you try using the public internet address of your router as the destination? Sending packets from inside the house to an outside IP address on the router is another tricky problem. Someone else asked about this today too. Your router needs to support a feature called Hairpin NAT so it can wake up the computer properly. Not all routers have this built-in. If you aren't getting any response when your PC sends the WoL packet straight out, then it sounds like one of those strange WoL problems. Microsoft added their own rules for low-power waking and made it very inconsistent how different laptop BIOS makers implemented these features. You probably messed up something in your settings.
Your mobile phone is connected to a separate internet network through its carrier service.
I thought it was easy because my example showed: I send the packet to the router's external internet address. There isn't much choice in that situation; that is where the LAN needs to go so the router can route it to the right MAC address. Something like this works well: MC-WOL aa🇧🇧cc:dd:ee:ff /a 11.22.33.44 (where 11.22.33.44 is my Vodafone router's internet address). Maybe I didn't understand the question correctly. What does it mean when they say "using the external IP" causes a different issue? Is it better or worse then? Maybe Microsoft acts inconsistently here, which explains everything. But if the packet wakes up the PC inside the LAN network, why wouldn't it work from outside that network? The BIOS shouldn't matter to this at all; it either works or it doesn't. I think the packet is sent but never gets delivered. Could something be blocking it somewhere between those two routers? Tomorrow (today is a holiday here) I will check the ASUS BIOS of the target computer, but... what should I look for there?
Let me add a few things here. You mentioned some low power modes like Sleep or Hibernate back in your kind answers. Well, actually good news for now. I did some tests: instead of just shutting down the target PC, I hibernated it. When I sent a packet from my home PC, that target PC woke up in a few seconds. Why is this relatively? Why does the beast wake up from shutdown inside the LAN but refuse to do so outside the LAN? What's the difference? Apparently the packet from outside gets received... but it doesn't work except when hibernated. Ah, another fact. Even when the target PC shuts down completely, Anydesk manages to wake it. Anydesk sees the PC as not available and tries to power it on via wol. And it works. So what trick is Anydesk using?