从远程主机唤醒

从远程主机唤醒

我已经wake on lan在服务器上设置了服务。局域网上一切正常:

root@server$: poweroff
user@local$ wakeonlan AA:BB:CC:DD:EE:FF

服务器被唤醒。

AA:BB:CC:DD:EE:FF是我的 MAC 地址server,其 IP192.168.1.2和主机名是:example.com。它连接到路由器,路由器的 IP 为 192.168.1.1(公共:xxx.xxx.xxx.xxx)

当服务器启动后,我可以 ping 通:

ping example.com

或者通过 ssh 登录:

ssh [email protected]

到目前为止一切顺利。现在我能够从本地唤醒服务器,但是如何从远程位置唤醒服务器呢?

我尝试过:user@local$ wakeonlan -i xxx.xxx.xxx.xxx AA:BB:CC:DD:EE:FF,但是它不起作用(什么也没有发生;)。

我是否必须以某种方式配置我的路由器才能转发魔术包?如何配置?

解决方案

拉格纳尔的回答解决方案看上去非常简单。

但实际上,这有点棘手。

我的路由器是Linksys WAG200g,默认情况下不支持局域网唤醒。此外,它不允许转发到上面的三元组254(我的广播地址是192.168.1.255)。

解决方案是将 UDP 端口转发7到服务器的地址,即192.169.1.2,然后调用:

wakeonlan -i example.com -p 7 AA:BB:CC:DD:EE:FF

我还安装了新固件:

这是一次很棒的路由器选项升级(例如,增加了局域网唤醒选项)。

我还将我的网络掩码从 更改为255.255.255.0255.255.255.128因此我的广播现在是192.168.1.127并通过了路由器验证规则。

这是我用来连接机器并在需要时唤醒它的脚本:

#!/bin/bash
## This sends magic packets to Wake on Lan
## please note, you must formard port 7 to the target machine on your router

## host to wake up
host="example.com"
## mac address of the machive to wake up
mac="AA:BB:CC:DD:EE:FF"
## user to login
user="administrator"

echo "Looking for $host..."
wget -q --tries=2 --wait=1 --waitretry=5 http://$host/
if [ $? -ne 0 ];
then
    echo "$host is not available."
    echo "Waking up $host."
    wakeonlan -p 7 -i $host $mac
    echo "$host is booting up.  Please wait..."
    sleep 30
    wget -q --waitretry=5 --wait=5 http://$host/
    echo ^G
    echo $host is up! Lucky you!
fi
ssh "$user@$host"

不要忘记安装:唤醒局域网

答案1

您需要将 UDP 端口 9 转发到网络中的广播地址(192.168.1.255 或类似地址)。

相关内容