自宅サーバの電源を外出先から入れる方法

自宅サーバをお持ちの皆様方は日々電気代と戦っているのではないでしょうか。
低消費電力のサーバを使っていても、チリツモで電気代がかかります。
我が家も例に漏れず電気代との戦いを繰り広げているので、いっその事必要な時だけどこからでも電源入れて使えるようにすればいいじゃないか、と結論づけました。

電気代気にするならVPSとか使えばいいやないかというツッコミは至極まっとうなのですが、我が家の場合はNASとしても稼働しているので家の中では Gigabit Ethernet で繋がってないと使い物にならず。

やりかた

世の中には古の時代から存在する WoL という非常にすばらしい規格があります。

Wake-on-LAN(ウェイク・オン・ラン、略称WoLあるいはWOL)は、コンピュータネットワーク(主にLAN)に繋がっているコンピュータの電源操作(投入、シャットダウンなど)を遠隔で操作するAMDが開発した技術あるいはその行為を指す。

参考:Wake-on-LAN - Wikipedia

普通のサーバ機ならまず対応してるので、これを使えば一発です。

とはいえ

WoL のページを見てもらえばわかるのですが、WoL で利用するマジックパケットはブロードキャストとして送信する必要があります。
つまり、家の外からやろうとした場合は何らかの方法でインターネット経由で家の中のLANにブロードキャストさせないといけません。

やり方は何通りかありますが、比較的楽なのはルータで静的IPマスカレード使って特定のポート宛に受け取ったパケットをLAN内のブロードキャストアドレス宛てに転送しちゃうことですね。
僕はこの方法でやりました。

マジックパケットの送り方

既に便利なソフトが沢山あるので、それを利用しましょう。
mac で Homebrew 使ってる人ならば wakeonlan が便利です。

% brew install wakeonlan

でインストールできます。
インストールが終わったら、以下のコマンドでマジックパケットが送れます。

% wakeonlan -i [IPアドレスかホスト名] -p [ポート番号] [MACアドレス]

更に楽にするには

上記のコマンドを alias とかに登録しとくと便利です。
僕は .zshrc に以下のように登録してあります。

alias wakeup.athena='wakeonlan -i [IPアドレスかホスト名] -p [ポート番号] [MACアドレス]'

まとめ

ココらへんの環境整理しとくと、外出先から必要な時にサーバの電源入れられるようになるのでとても便利です。
必要無いときは電源落としとけばエコですしね!
僕は HP の N54L でこれやってますが、激しく快適です。