リモートホストからのwakeonlan

リモートホストからのwakeonlan

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、デフォルトでは Wake on LAN をサポートしていません。さらに、上記の 3 つ組への転送は許可されません254(私のブロードキャスト アドレスは でした192.168.1.255)。

解決策は、UDP ポートを7サーバーのアドレス ( ) に転送し192.169.1.2、次を呼び出すことでした。

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

また、新しいファームウェアをインストールしました:

これは、ルーターのオプションの優れたアップグレードです (例: Wake on LAN オプションの追加)。

また、ネットマスクを から に変更したので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 など) に転送する必要があります。

関連情報