VPNサーバーをたてることで、インターネット上から家のPCにアクセスできるようになりました。

VPNサーバーの構築

写真や音楽データ、資料はできるだけファイルサーバーに集約するようにしていますが、作業中のファイルやPCにしかインストールしていないアプリケーションを使いたい場合とても歯がゆい思いをします。

PCをも24時間起動していればそんな思いをすることもないのですが、ただでさえサーバーをつけっぱなしにしているので、これ以上は控えたいところ。そんな時にWake-on-LANのことを思い出しました。

何かのパケットを送りつければいいと言う位しか知らなかったので調べると、
・ブロードキャスト
・UDP
・ポートはサイトによっていくつかあったがどこでもいい
・パケット本体は6バイトの255とそれに続くNICのマックアドレス16個

以上の要件を満たせば良い。もちろんターゲットNICがWake-on-LANに対応している必要があります。

メインで使ったのはUdpClientクラスのメソッド3種類です。
Connect
Send
Close

その他16進数のチェック・IPアドレスのチェックに別のクラスメソッドも使いました。

動いたときはちょっと感動しました。

マジックパケットを送信すると次の様なパケットがキャプチャできます。
MACアドレスは"AB:CD:E0:12:34:56"として送信します。


"FFFFFFFFFFFF"の後ろに"AB:CD:E0:12:34:56"がきれいに16回並んでます。


WindowsのPCは電源を落としていても、NICに電気が通っているので停止状態から起動させることができましたが、Macはだめでした。スリープ状態からの復帰はできるのですが、停止状態からはうんともすんとも・・・NICに電気が通らないようです。もう少し調べてみようと思います。

早く実際に外からアクセスしてみたいものです。

【仕様】
.NET Framework2.0以上で動く。
テキストボックスに入力されたブロードキャストアドレスに、もう一つのテキストボックスに入力されたMACアドレスを使ったマジックパケットを送信する。

ダウンロードはこちら-> WOL
zipを解凍して使ってください。

Wake-on-LANについてもう少し詳しくはこちらへ
Wake-on-LAN(wikipedia)
Wake-On-LAN入門 - @IT