このエントリーをはてなブックマークに追加このエントリをつぶやく

Wake on LAN(WOL)用CGIの配布

このたびの地震で被害を受けられた方は多いと思います。被災者の方々には謹んでお見舞い申し上げたいと思います。

被災地の復旧支援のためにまずは節電に取り組んでいます。使用しない照明、機器の電気を消すといったところからはじめていますが、地震以前から未使用時のPCの電源を落とし、使用時だけプログラムを使ってリモートで電源を入れるといった運用を行っています。節電を少しでも推進するために、今回はこのプログラムを配布したいと思います。

■Wake On Lan(WOL)とは?
WOLとは、シャットダウンまたはスリープしたPC・NAS等を外部から起動させる仕組みになります。WOLが設定された機器は一見電源が落ちているように見えても、LANからマジックパケットという特別な通信が来るかどうか監視しています。自分向けのマジックパケットを受け取ると、起動するというわけです。WOLを利用するためにはPC側の設定が必要になりますが、最近のPCであれば出荷時から使えるようになっていることが多いようです。

ただしマジックパケットを送信するためには、そのためのソフトを入れる必要があったり、同じネットワークに送信側のマシンも存在する必要があります。そのため、今回はWOLを簡単に設定/起動するためのPerlで記述したCGIをフリーソフトとして配布したいと思います。クライアントPCを起動させるために別のマシンを用意しなければならないということは、節電という観点からは意味が無いように思えますが、一台だけサーバを用意してアプリをインストールすることで、ほかのPCやNASの電源を落とせるならば節電になります。

配布するCGIは、社内利用のために作成したものであり、このCGI自体はセキュリティを考慮していません。セキュリティについてはVPNやWebサーバを環境に合わせて設定してください。また1時間ほどで書いたものなので、色々と注文もあるかとは思います。適宜改造して使っていただければと思います。ライセンスは”MITライセンス”として取り扱ってください。また、このソフトウェアは無保証になります。

Wake On LAN設定・起動用CGIダウンロード(Perl)
Copyright (c) 2010-2011 SpiriteK Inc.

■WOL管理CGIのインストール
以下はCentOS 5.5をデフォルトの設定でインストールした物を例に説明しています。適宜、ご自分の環境に合わせていただければと思います。

  1. HTTPDをインストール
  2. パッケージ管理ソフトを使用してApacheをインストールします。

    # yum -y install httpd

  3. CGIの配置および設定
  4. 配布ファイルをダウンロードして、解凍して配置・設定を行います。回答してできたwolフォルダを”/var/www/html”以下にコピーしてください。そしてサーバにログインし、wolフォルダ以下をApacheの実行ユーザの権限に変更し、次にCGIに実行権限を与えます。

    # chown -R apache:apache /var/www/html/wol
    # chmod 700 /var/www/html/wol/index.cgi

  5. CPANから必要なPerlのライブラリをインストール
  6. PerlにてMagic Packetを扱うためのライブラリのインストールを行います。ライブラリの導入にはCPANを利用します。CPANの初期設定についてはここでは扱いません。このあたりをご覧ください。

    # cpan
    cpan> install Net::ARP
    cpan> install Net::Wake
    cpan> quit

  7. Apacheの設定を修正
  8. Apacheの設定ファイルの修正、および再起動を行います。”/etc/httpd/conf/httpd.conf”を修正してください。

    まず以下の設定をコメントアウトします。
    #AddHandler cgi-script .cgi
           ↓
    AddHandler cgi-script .cgi

    次に最下行に以下の設定を追加します。

    Options +ExecCGI
    DirectoryIndex index.cgi
    Order Deny,Allow
    Deny from all
    Allow from 192.168


    上記の設定は/wol以下に対して、CGI実行の許可および”192.168.*.*”以外のネットワークからのアクセス拒否を行う設定になります。ご自分の環境に合わせて変更してください。

    最後に

    # /etc/init.d/httpd restart

    を実行し、Apacheをリスタートします。

インストールは以上になります。

■使い方

  1. WOLの設定
  2. WOLを設定したいPCから”http://サーバ名/wol/”にアクセスしたページの中の”PC登録”をクリックすると、以下の画面が表示されます。

     

    表示されたMACアドレスはページにアクセスしたマシンのMACアドレスを表示しています。もし、NASなどそれ以外のMACアドレスを登録したい方は手動で入力してください。ユーザ名とパスワード、MACアドレスを入力し、”送信”ボタンをクリックすることで、登録が完了します。

  3. PCを起動する
  4. ”http://サーバ名/wol/”にアクセスすると以下の画面が表示されます。

    設定時のユーザ名とパスワードを入力することで、設定時のMACアドレスにマジックパケットを送信します。

■うまくいかないときは・・・
Wake On LANはPCの設定を必要とします。使用するPCやネットワークカードによって設定が異なる為、ここでは詳しくは記述しませんが、最近のPCは最初からWOLの使用許可が設定されていることが多いと思います。(弊社のマシンは無設定で使用できました。)

もし使えない場合は以下の点を確認して下さい。

  1. BIOSの設定
  2. “Power On By WOL”や”PME Event Wake Up”などと書かれた項目が”Enabled”になっているかどうかを確認して下さい。

  3. コントロールパネルの設定
  4. Windows7の場合、”コントロールパネル”→”ネットワークと共有センター”→アダプターの設定の変更”→”ローカルエリア接続”のプロパティを開き”構成”ボタンをクリックしてください。次に”電源の管理”タブをクリックし、「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」および「Magic Packetでのみ、コンピューターのスタンバイ状態を解除できるようにする」にチェックが入ってるかどうかを確認してください。また”詳細設定”タブの中に”Wake on Magic Packet”や”WOL”といった項目がある場合、それらが有効になっているかどうかを確認してください。

以上です。ぜひWOLを使用してみてください。

Jotaro Inoue の紹介

代表取締役社長
カテゴリー: プログラミング   パーマリンク

コメントは受け付けていません。