自宅のPCを出先から スイッチを入れて使いたい!

 ここでは、インターネット回線に常時接続されているが、使っていないときにはパワーオフとなっているPCを遠方からパワーオンする方法について論じています。使っていないのにスイッチが入っているのは、エネルギーの無駄使いだし、場合によっては危険でさえあります。

PCをたたき起こす機能 −− WOL

 PCの電源をパネルの電源スイッチ以外の方法で投入するには、PCに Wake-up 機能がなければなりません。この機能があるかどうかは Windows が立ち上がる前にBIOSの管理ページを呼び出して調べることができます。
 Wake は通常、PCの内蔵タイマーによる、モデムからの着信信号による、LAN カードからの信号によるの3種がありますが、今、ここで関係するのは LAN からの信号による Wake On LAN (WOL)です。この機能を有効にしておくと、LAN ケーブルを通じて自PCを指した物理アドレス(MACアドレス)を持った「マジックパケット」が到着すると、BIOSの電源管理機能が働いてPCはパワーオンします。
 要約すると、PCにWOL機能があるなら、LAN からマジックパケットを送り込めばパワーオンできるということです。

 マジックパケットの仕組み

 パケットというのはネットワークでデータを送受信するための「小包」のことで、その一つひとつに荷札(宛先アドレス)が付いています。いま LAN内で用いられるアドレスが 192.168.0.0 〜 192.168.0.255 だとしますと、マジックパケットの荷札には通常、192.168.0.255 が使われます。 192.168.0.255 はブロードキャスト アドレスと呼ばれます。そして小包の中のデータには目的のPCの(実はその LANカードの)MACアドレスという形を持っています。マジックパケットを送出するソフトとして、いくつかのフリーウェアが公開されています。たとえば Vector Library にある H.Ogawa さんの Wake-up On LAN Tool などです。
 ただし、ここで理解しておかねばならないのは、LANカードが反応するのは IPアドレスではなく、MACアドレスだということです。宛先IPアドレスの部分は上記のとおりブロードキャスト アドレス、つまり、その LAN に接続されていて 192.168.0.0 〜 192.168.0.254 の範囲内の IPアドレスを持つ全PCが受信できるように送るのです。 受信したPCの中から、送られてきた MACアドレスが自分のそれと一致していると認識したPCだけがこれに反応します。

 IPアドレスと MACアドレスの対応表 −− ARPテーブル

 該当するPCの IPアドレスが分かっているなら、ブロードキャストではなくそのIPアドレスを使ってもよいのですが、インターネットからPCを見ると電源がオフのPCの IPアドレスが分かりません。電源がオンの場合には調べれば分かるのでしょうけれど、実はこの対応表は、ルータなどのメモリの中に一時的に保持されますが、一定時間(数分〜数10分)もすればメモリから消されます。その後は必要に応じてARPプロトコルによって再調査されてテーブルの再生を行います。しかし、PCの電源がオフの場合には不明なまま捨て置かれます。ですから、電源が切断されて一定時間後にはそのPCの IPアドレスはシステムからはすっかり忘れられてしまうのです。
 こういう事情ですから、マジックパケットでは、ブロードキャストアドレスを IPアドレスとして使わざるを得ないのです。

 インターネット経由でマジックパケットの送り込みは容易ではない

 さて、LAN の中からではなく、世界に開かれたインターネットから目的のPCをパワーオンさせるのは容易ではありません。先ず、マジックパケットを送り出す方法から説明しますと、 目的のPC(またはPCが接続されたルータ)の IPアドレスが固定ではなくプロバイダからの割り当てに応じて変動する場合には、ダイナミックDNS と呼ばれるサービスを受けて、固定のアドレス名を作ります。ダイナミックDNS サービスは国内外の多くの業者から有料/無料で提供されています。 固定の名前で目的のPC(ルータ)をインターネット経由で呼び出せるようになれば、その時点での IPアドレスは容易に知ることが出来ます。その IPアドレスにマジックパケットを送り込むのですが、そのときのサブネットマスクは 255.255.255.255 に、送出ポートは他と衝突しないもの、例えば 5009 とします。プロトコルは UDP です。
 しかし、マジックパケットだけでなく、ブロードキャストアドレスを持ったフレームは、通常はセキュリティ上の理由からルータによって通過を阻まれます。市場に出荷されている大半のルータはブロードキャストアドレスを拒否するよう設定されていますから、このようなルータの内側に接続されているPCにインターネットからマジックパケットを送り込むこと(いわゆる「ルータ越え」)はできません。
 通常は、と言いましたが、ルータの機種によっては、ブロードキャストの通過は可能なのですが、フィルタで禁止しているもの、ブロードキャストの通過は許可していないが、telnetコマンドによってブロードキャストを通過可能に設定する方法を提供しているものもあります。しかし、たとえポートを限定してもブロードキャストの通過を許可する場合には外部からの浸入に身を晒すことになりますから注意が必要です。

 WOL機能と VPNサーバ機能を併せ持ったルータ

 ブロードキャストのルータ越えは興味あるテーマで、この問題と取り組むのが好きな人もいると思いますが、難しい設定はゴメンだ、簡単に本来の目的、つまり出先から自宅のPCの電源を入れて使いたい、を確実に実現したい、というならば、耳寄りな方法があります。
 メルコ社製の Buffalo BroadStation BHR-4RV、または 同 AirStation WZR-RS-G54 又はそのハイパワー版 WZR-RS-G54HP を使うことです。VPN サーバ機能を持っていますが、加えて WOL機能を持っていることが特徴です。
 すなわち、これらの機種の持っている WOL機能とは、遠方から送られてくるマジックパケットを通過させるのではなく、ウェブページによるルータ自身の管理画面のなかに対象のPC関係のアイコンを表示させ、それをクリックすることによって、ルータ自身がマジックパケットを発生させて目的のPCの門を叩く、という仕組みとなっています。管理画面のページは、あらかじめどこかのダイナミックDNSサーバに登録(登録もサポートされています)しておけば、プロバイダから割り当てられる IPアドレスが可変でも固定した名前で呼び出すことができます。
 筆者はメルコ社とは何の関係もありませんが、このような巧妙な仕組みを持っているルータは他社には見当たらず、価格は高めなのですがすっかり気に入って使っています。
 以下はこれらの機種を使って、遠方から WOLして使う場合の注意事項です。

 プロバイダ回線との接続上の注意

 上記の Buffaloのルータは、当然のことですが回線業者またはプロバイダがルータを提供する回線にはルータが二重になるため使えません。たとえば、光回線の場合には各社ともルータ又はルータ内蔵の回線接続機器を提供していますが、これらとの併用はできません。Yahoo!BB の ADSL回線のようにレンタルされる ADSLモデムにはルータ機能が内蔵されているがこれを無効に設定できる場合には使えます。
 また、プロバイダが提供するIP電話を利用しようとする場合にも注意が必要です。たとえば、NTTのフレッツを回線として利用する場合にはIP電話を使う場合には VoIPアダプタが必要ですが、VoIPアダプタと各社のルータとの間には相性問題があります。NTTでは接続確認が取れている機種名を公表していますが、06年10月現在 Buffalo の上記3ルータはリストにありません。筆者が実験したところ、電話の発信は問題ないのですが、着信があると受話器をとった直後に電話が切れるという現象が確認されました。
 そういう事情ですから、筆者は Yahoo!BB のADSL 50M+BBフォン に加入し、送られてきたモデムのルータ機能を無効にして使っていますが、電話も、Buffalo のルータとの接続も問題なく使えています。

【参考追記】 WOL機能のないルータをお使いの方にはこのサイトの別のページ「WOL Shooter の製作」 が参考になると思います。

 BHR-4RV等の初期設定時の注意

 はじめに書いたように、パワーオフのPCの MACアドレスと IPアドレスとの対照表は LANケーブルのインターフェース上では永続的には記憶が残りません。このため、BHR-4RV などのルータではルータ自体にその両方と対照表を記憶する仕組みになっています。
 このために次のように設定します。まず、ルータの LAN側に接続される遠隔パワーオンの対象PCのローカルIPアドレスを固定のアドレスが配分されるようにします(方法はルータのマニュアルを参照)。こうしておいて対象のPCの電源が入って、ルータと LAN経由で通信できる状態にすると、ルータの管理画面ページ → リモートアクセス可能なPCの表示 で表示される「ネットワークサービス一覧」のページに目的のPCの欄が現れているはずです。もし見つからなければ、同ページの「サービスを強制検索」ボタンをクリックすれば探してくれます。
 このページの情報はルータが記憶した情報ですから、一旦記憶されると、自動更新されません。逆に言うと、一旦記憶されると、その後電源が切断されても、このページにある限りクリックすれば目的のPCにマジックパケットが飛ぶということです。

 無線LAN接続の場合はWOL機能は使えない?

  この項は初稿以降に追加しました。

  PCがマジックパケットに反応して電源オンするのは、有線のLANポートと Windowsを縁の下で支えている基本ソフト、BIOSの働きです。ですからLANポートを使わずに無線LANカードを利用して無線接続を行う場合には、WOL機能は使えません。
 ならば、いわゆるイーサネットコンバータで一旦受けて、有線LANに戻した上でLANポートに接続すればどうでしょうか? 実は、これを BHR-4RV のTOP画面の「リモートアクセス可能なPCの表示」をクリックして現れる「ネットワークサービス一覧」内にある対象PCの「WakeOnLAN」アイコンをクリックして試してみても該当するPCの電源はオンになりません。(何故でしょうね?)
 しかたなく BHR-4RV と当該PCは有線LANで接続せざるを得ませんが、PCの設置場所が限定されますね。この場合にも前々項の【参考追記】に書いた「WOL Shooter の製作」 を使えば「イーサネットコンバータ」での無線接続でWOL機能が有効に利用できます。

 遠隔からうまく電源オンできたが、リモートから Windowsにログオンできない??

  この項は初稿以降に追加しました。

  遠隔操作で電源オンされたPCは特別な設定をしていない限り自動的に立ち上がります。この辺りから遠隔から呼び出されるPCのOSは Windows XP Professional で、そのリモートデスクトップ機能を使うことをお話の前提にすることとします。
  Windows XP はシステムが立ち上がると先ずログオンの画面となるのですが、これには2種類があって、工場出荷時のままならばいわゆる「ようこそ画面」となります。これはそのPCに登録されたユーザがすべて表示されて、ユーザはその中から自分の名前を選択してパスワードを入力すればよく、便利といえば便利なのですが、セキュリティから考えると若干不安を感じます。特にこのようなPCがリモートから呼び出せるということは許し難いことでしょう。Windows XP ではこのような「ようこそ画面」はリモートデスクトップでは呼び出せません。つまり、ログオン画面が「ようこそ画面」に設定されているPCは、たとえマジックパケットを使って遠隔から電源オンに成功しても、ログオンはできないのです。
  リモートデスクトップでログオンしたいなら、ログオン画面として Windows2000 以来の「ユーザ名およびパスワード入力ダイアログボックス」、つまり「クラシックログオン画面」が使われるように設定されていなければなりません。ちなみにログオン画面を「クラシックログオン画面」に設定するには、
 「コントロールパネル」-「ユーザアカウント」-「ユーザーのログオンやログオフの方法を変更する」で現れる画面で、「ようこそ画面を使用する」のチェックボックスを OFFにする
 「オプションの適用」をクリック
  一旦全プログラムを終了し、ログオフ
を順に実行すれば次のログオン時からこのダイヤログボックスが表示されるようになります。そして、リモートからの電源オン、しばらく間をおいてのリモートデスクトップ呼出しを実行すると、この画面がクライアント側PCのスクリーンに出現します。

 電源の遠隔切断

  遠方からの電源切断は電源投入に比べると容易なように思われます。Windows が立ち上がっていて、リモートデスクトップやVNC (Virtual Network Computing)などで遠隔地のPCを自由に操作できるのですから... ところが実際に試してみると落とし穴がたくさんあるようで、意外と手こずります。
 まず、用語の意味を正確に理解する必要があります。少なくとも Windows XP では Windows の終了と電源切断に関係する用語として、「終了オプション」「電源の切断」「切断」「シャットダウン」などがあります。ここで紛らわしいのは「切断」という用語が必ずしも電源切断の意味ではなく、リモートデスクトップの画面ではリモート接続の切断の意味に使われますし、「シャットダウン」をしたつもりが電源は切断されず、ただ、Windows が終了して停止している状態となるかもしれない、などです。具体的に言いますと、リモートデスクトップの遠隔スクリーンで「スタート」ボタンをクリックして、最下段に表示される2つのボタンを見ると、「ログオフ」と「切断」です。この「切断」は電源切断ではなく、実行結果をサーバ側で見てみると、ログオフ - ユーザの切替え の状態となります。また、同じくリモートデスクトップのコマンドプロンプト画面内で、
   C:\>shutdown -s -t10 -c "数秒後にシャットダウン!!"
を実行すると、遠隔PCの Windows は終了しますが、「コンピュータの電源を切ることができます」画面が表示されている状態となります。このように、 Windows は終了していて電源は切れていない、という状態になると、遠方からのコントロールは一切できなくなりますから、これだけは避けなくてはなりません。
 結局、筆者が採用した方法はフリーウェアの「パワーオフ」プログラムをリモートデスクトップのスクリーン上で実行するという単純な手段によることとしました。採用したフリーウェアは、 ここからダウンロードした「 poff2(Power-OFF Ver.2) 」というソフトです。このソフトを好きなアイコンを決めてデスクトップに配置しています。リモートからこのアイコンをクリックすると、リモートから電源を落とすと次に電源を入れるときに誰もいなくて困るぞ、とか何とか脅かされますが、4.項の方法でリモートWOLの手段を手に入れた私たちは再度遠隔電源投入をすればよいのですから、気にせず [OK] すればよいのです。
 遠隔電源切断の問題もこれで解決したかに見えましたが、実はもう一つ困った問題が残ります。電源切断のプロセスが順序よく進んで、最後に「ボツン」と電源が切れてくれればよいのですが、テストを繰り返しているときに時々最後の過程で電源が切れないで停止してしまう現象が起こりました。ディスプレイで見ていますと、最後にマウスポインタの矢印だけが真っ暗のスクリーンの中に残った状態となります。いまだに原因は不明なのですが、PCのプリンタインタフェース(いわゆるセントロニクスインタフェース)に接続されたプリンタの電源が入ったままのときにこの現象が起こりやすく、プリンタの電源が切ってあるとこの現象は起こらないらしいことまで実験的に確かめました。リモートでPCに直接接続されたプリンタを使うことはやめることにしました。(USB インタフェースでプリンタを接続した場合はどうかについては調べていません。)

 このページに記載した内容は、筆者が実験等で確かめたものですが、間違っているかもしれません。読者が同様の設定をされる場合に、万一何らかの損害を受けられても、筆者は責任を負いません。自己責任で実施されるようお願いします。質問などがあれば筆者、ギッタン(gishotan@ybb.ne.jp)までどうぞ。


HOME