Configuración WOL desde Internet en router Asus
Instalación y configuración del firewallD
El primer paso es hacer una redirección de puertos en el router: Elegimos un puerto aleatorio externo (que sea alto) y redireccionamos al puerto 9 a la IP 192.168.1.254:

Accedemos al router por ssh y creamos una nueva entrada en la tabla arp del router para reenviar el paquete WOL al broadcast de la red FF:FF:FF:FF:FF:FF (a todas las direcciones MAC):
arp -s 192.168.1.254 ff:ff:ff:ff:ff:ff
Verificamos que se ha creado la nueva entrada:
admin@(none):/jffs/scripts# arp
? (192.168.1.155) at <incomplete> on br0
? (XXX.XXX.178.1) at XX:XX:XX:XX:fc:81 [ether] on eth0
? (192.168.1.254) at ff:ff:ff:ff:ff:ff [ether] PERM on br0 <----
? (192.168.1.58) at XX:XX:XX:XX:4c:c4 [ether] on br0
? (192.168.1.251) at XX:XX:XX:XX:5d:0a [ether] on br0
? (192.168.1.170) at XX:XX:XX:XX:0e:f3 [ether] on br0
? (192.168.1.40) at XX:XX:XX:XX:8a:58 [ether] on br0
Ahora simplemente es necesario configurar nuestra aplicación WOL para enviar el magic packet:
- DIRECCION MAC: La de nuestro dispositivo que deseamos levantar
- HOSTNAME/IP: myDDNS.asuscomm.com
- PUERTO: Según el ejemplo 4231
Esta configuración del router desaparecerá con el siguiente reinicio. Para dejarla permanente creamos un pequeño script que haga este trabajo en cada reinicio: Los router Asus tienen un almacenamiento permanente en /jffs Creamos un directorio dentro de /jffs llamado scrits y creamos el siguiente fichero:
cat <<EOF > wan-wol.sh
#!/bin/sh
scriptName="/jffs/scripts/\$(basename $0)"
myIp="192.168.1.254"
/usr/bin/logger -t "\${scriptName}" \$$ "arp -s \${myIp} ff:ff:ff:ff:ff:ff"
arp -s \$myIp ff:ff:ff:ff:ff:ff
/usr/bin/logger -t "\${scriptName}" \$$ "Check: \$(arp | grep $myIp)"
EOF
Verificamos que esté bien:
cat /jffs/scripts/wan-wol.sh
Resultado correcto:
#!/bin/sh
scriptName="/jffs/scripts/$(basename $0)"
myIp="192.168.1.254"
/usr/bin/logger -t "${scriptName}" $$ "arp -s $myIp ff:ff:ff:ff:ff:ff"
arp -s $myIp ff:ff:ff:ff:ff:ff
/usr/bin/logger -t "${scriptName}" $$ "Check: $(arp | grep $myIp)"
Los hacemos ejecutable:
admin@(none):/jffs/scripts# chmod a+x wan-wol.sh
master@(none):/tmp/home/root# nvram show 2>&1 | grep script_usbmount
script_usbmount=
master@(none):/jffs/scripts# nvram set script_usbmount="/jffs/scripts/wan-wol.sh"
master@(none):/jffs/scripts# nvram commit
master@(none):/jffs/scripts# nvram show 2>&1 | grep script_usbmount
script_usbmount=/jffs/scripts/wan-wol.sh
Después de reiniciar el router debería haberse ejecutado el script para crear la entrada en la tabla arp:

Fuentes:
https://andblu.blogspot.com/2016/08/configure-wol-from-internet-wan-asus.html