WOL(Wake On LAN)でハマりそうなポイント

  • 17
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

WOLというのは、遠隔からマジックパケットを送って、パソコンの電源をONにする機能のことです。別にWindowsでなくてもできるし、どのOSにも対応しています。これは、パソコンのハード機能なので。

どのような仕組みになっているかというと、詳しい説明は省きますが、電源(特に通電)とパケットの仕組みになっています。具体的には、電源で言うと、S1,S3,S5という構造で、各々が通電されているならば、WOLを有効に動作させることができます。

ちなみに、S1,S3まではコンピュータのスリープやスタンバイ時の状態が対応します。S5はシャットダウンの状態が対応するわけですね。これをACPIステートと言います。

ここで、知っておかなければならないのは、S5であるパソコンの電源を切っている時でも、通常は電力を微力ながら消費しているってことです。通電されている。そして、WOLはこの特徴を使って、パソコンの電源をONにする。

しかし、この通電を、例えば、BOISメニューの設定などから変更し、切ることもできます。

WOLで嵌りそうなポイント

BIOSメニューで以下の項目などによって、WOLを有効にしているか?

  • WOL、Wake On LAN、Remote Wakeup などを [Enable]

  • PCI Boot Device, PCIE Device などを [Enable]

BIOSメニューで節電モードをOFFにできているか?

  • Deep Sleep [Disabled]

WindowsのLANアダプタの設定ができているか?

デバイスマネージャーから設定します。LANアダプタのデバイスを選択すればわかります。電源管理, 詳細設定にて。

あと、LANアダプタのMACアドレスを確認しておいてください。マジックパケットを送るのに必要です。

確認方法は、ipconfig /allです。

マジックパケットのルーター超え

WANからWOLを使って、コンピュータの電源をいれることは可能なのかというと、可能です。

これは、直接送りつけてということを意味し、WANからLAN内のコンピュータを遠隔操作して、マジックパケットを送るということではありません。

マジックパケットの仕組みは単純で、値自体も簡単です。具体的には以下の様な感じになります。

IPヘッダに続いて、0xffffffffffff(6bytes)と、WOL対象コンピュータのネットワーク・アダプタのMAC アドレス(6bytes)が16回連続する102bytesのデータを持つUDPデータグラムとなっている

http://www.atmarkit.co.jp/ait/articles/0904/08/news117.html

したがって、0xffffffffffffを6個、Mac Addlessを16個書いたデータをUDPで送ったらいいよいらしい。起動してないマシンは、当然ながらローカルIPをもらってないので、ブロードキャストアドレスに送ればいいらしい。もちろん、ルータの設定で特定のポートへのアクセスを特定のマシンにつなげるっていう設定をしてもよいと思う。

Linuxで使う場合

サーバー
$ sudo pacman -S ethtool

# wake up lanは、bならoff,gならonです
$ ethtool net0 | grep Wake-on
Wake-on: b

$ sudo ethtool -s net0 wol g

# 永続的に設定する
$ sudo vim /etc/udev/rules.d/50-wol.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="net*", RUN+="/usr/bin/ethtool -s %k wol g"

https://wiki.archlinux.org/index.php/Wake-on-LAN

クライアント
$ sudo pacman -S wol

$ wol <MACADDRESS>

追記

どういうわけかルータでポート変換した上で、WANからマジックパケットを送り(この時点では電源は入らない)、次に、WANからSSH接続を試みると、WOLが有効に動作し、コンピュータの電源がONになる動作を確認しました。

他のコンピュータでも確認できるかどうかわかりませんが一応報告です。