Windows 7 Pro Computer won't wake on LAN via Magic Packet from outside network

Solution 1:

I had a similar problem as yours, and I used a webpage on my server to send the magic packet.

I used the code and WolAsp.dll from Depicus:

Wake On Lan for Active Server Pages allows any IIS web browser with the ASP interpreter to send a Magic Packet to a remote machine

From their FAQ page:

Wake on Lan over the Internet (or why is it such a pain in the ****)

"IP directed broadcasts are used in the extremely common and popular "smurf" denial of service attack, and can also be used in related attacks.

An IP directed broadcast is a datagram which is sent to the broadcast address of a subnet to which the sending machine is not directly attached. The directed broadcast is routed through the network as a unicast packet until it arrives at the target subnet, where it is converted into a link-layer broadcast. Because of the nature of the IP addressing architecture, only the last router in the chain, the one that is connected directly to the target subnet, can conclusively identify a directed broadcast. Directed broadcasts are occasionally used for legitimate purposes, but such use is not common outside the financial services industry.

In a "smurf" attack, the attacker sends ICMP echo requests from a falsified source address to a directed broadcast address, causing all the hosts on the target subnet to send replies to the falsified source. By sending a continuous stream of such requests, the attacker can create a much larger stream of replies, which can completely inundate the host whose address is being falsified.

If a Cisco interface is configured with the no ip directed-broadcast command, directed broadcasts that would otherwise be "exploded" into link-layer broadcasts at that interface are dropped instead. Note that this means that no ip directed-broadcast must be configured on every interface of every router that might be connected to a target subnet; it is not sufficient to configure only firewall routers. The no ip directed-broadcast command is the default in Cisco IOS software version 12.0 and later. In earlier versions, the command should be applied to every LAN interface that isn't known to forward legitimate directed broadcasts."

Quoted from Cisco.

I wonder if somewhere along the line, the packet's being blocked. You can try Depicus' WoL on the Internet page and see if the packet will reach your computer.

Solution 2:

Instead of all this - you can try Device Manager - expand Network Adapters - Properties for the Network controller you are using - then go to Power Management tab - and UNCHECK the option to allow ONLY the Magic packet to wake your computer from sleep. OK OK OK - then test. This scenario (disabling the requirement for only the Magic Packet to wake the PC up) works in our case. One thing to keep in mind - sometimes when establishing Remote Desktop Connection while the PC is asleep - the first time you try the RDP will fail BUT it will wake the PC. The second time you try - it will connect just fine. Ping does not work while the PC is asleep. This is for HP 6000pro Desktops and not sure if this will be fixed in the future with OS patches or network card driver updates.

Still troubleshooting why the PC won't wake up if goes in hibernation in couple of hours, rather than sleep mode.

Solution 3:

Your router needs to be configured to accept and forward these packets. Unless you do that, there is no way for traffic to get from the outside to your sleeping computer on the inside.

Whether to actually do it or not is up to you. Forwarding traffic has some inherent risks.

Basic Steps:

  1. Forward UPD port 7 or 9 to the IP of the desired WOL computer. Which port you need to use will depend on the WOL client you are using. If the client allows it, you could probably get away with any random, high-numbered port.
  2. If you are on multiple private networks, you may need to add a static ARP entry of your WOL computer with FF:FF:FF:FF:FF:FF for the MAC. That should allow it to forward between switches.

The other thing you could do, is to install DD-WRT on your router if it is compatible. This would allow you to use the router as a WOL client, and you could simply telnet into it and issue the appropriate commands.

Great document from DD-WRT, (and where I found all this info) ==> DD-WRT WOL Page