WOL(Wake On Lan)のMagic Packetをルーター越えさせる方法。

Wake On Lanで外部(WAN)から遠隔操作でパソコンに電源を入れるためにはブロードキャストアドレスを通じてマジックパケットをLAN内に通過させなければなりません。

ブロードキャストアドレスとは、 LAN内の全てのアドレスに一斉送信できるアドレスで、192.168.100.1~192.168.100.254のネットワークだった場合は、192.168.100.255(一番後ろの桁が255)がブロードキャストアドレスとなります。

外部(WAN)から192.168.100.255(LAN)に対してマジックパケットを送信する際、Wake On Lan専用のアプリケーションを使い、指定のパソコンのネットワークカードが持つMACアドレス(物理アドレス)を指定することが必要です。(MACアドレスはコマンドプロンプトでipcofig /allと打てばわかります。例 AB-C1-23-4E-F5-99)

以下の条件で外出先から自宅のパソコンにマジックパケットを送信して電源を入れるとした場合、

自宅のグローバルIPアドレス(WAN側)
121.2.66.***(うちは固定IPなので)
マジックパケットを受信するポート(Wake-On-Lanのアプリで設定したポート)
9104
ブロードキャストアドレス
192.168.100.255
電源を入れたいパソコンのMACアドレス
AB-C1-23-4E-F5-99
  1. Wake On Lanアプリから121.2.66.**のポート9104にマジックパケットを送信
  2. ルーターが192.168.100.255に転送
  3. 192.168.100.1~192.168.100.254の中でAB-C1-23-4E-F5-99というMACアドレスを持つネットワークカードが反応
  4. そのパソコンが起動

といった感じでできます。ちなみに僕はiPhoneのアプリ「iRPM - リモートパワーマネージャ - Sekilai」というのを使っています。

必要な準備

それぞれの詳細な設定方法は省きますが以下の準備が必要です。

ルーターの転送設定
ルーターに121.2.66.**のアドレスの9104というポートにパケットが飛んできたときに192.168.100.255に転送するといった設定(静的NATとかポートマッピング)の設定が必要です。
ルーターのフィルターの設定
9104というポートにUDPプロトコルの通過を許可します。
ネットワークカードの設定
パソコンの電源がOFFでもネットワークカードだけは電源がONになっていないとマジックパケットに反応できません。テレビのスタンバイ状態と同じ。BIOSで設定。

しかし、ルーターによっては最後の桁が255というブロードキャストアドレスを設定に使用できないものがあります。そうなるとWake On Lanはできません。

ヤマハルーターを使う場合の補足

自分の場合、自宅と会社でヤマハルーターを使用してVPNを構築しています。

  • YAMAHA RT58i
  • YAMAHA RTX1100

上記のヤマハルータの場合は以下をコマンドで追加することで、マジックパケットを通過させることができました。

ip lan1 wol relay broadcast

または、

ip filter directed-broadcast off

それと、YAMAHA RT-58iの場合、以下の設定も必要です。

[トップ] > [詳細設定と情報] > [基本接続の詳細な設定] > [プロバイダの修正(PP[01])]のページの「静的IPマスカレード関連(フィルタの自動定義:80番~89番)」に以下を追加。

9104ポートにマジックパケットが送信されたら、192.168.100.255に転送する設定

  • プロトコル:udp
  • ポート:9104 (WakeOnLanアプリケーションの設定による)
  • 使用ホストIPアドレス:192.168.100.255 (192.168.100.1~254のネットワークの場合)

(2015/04/14追記)

YAMAHA RTX1210FWX120RTX810NVR500RTX1200SRT100 の場合、カスタムGUIを使用してブラウザから電源を入れることができるようです。
ネットワークに追加することでWake On Lanができる機器を見つけました。
バッファローのWake On Lan(WOL)対応ルーター