iPhoneから自宅鯖の電源を遠隔で操作

自宅に設置してあるサーバーを常用するまでも無いけど、使いたい時に使えないのはちょっと・・・と思っている人にとっても便利なこの機能。(節電しなきゃだしね!!)

Wake on LANという、外から遠隔で自宅のPCの電源を入れれるという代物。 さらに、最近普及しているスマートフォンを使えばどこにいても遠隔でサクっと電源付けられちゃいます。(3G回線か無線LANとかに繋がってなきゃだめだよ!)

まず、ubuntu側の設定

  • ethtoolをubuntuにインストールします。

    • ethtoolとは、Linux上などの物理インタフェイスの設定・確認とうが行えるものらしいです

    $ sudo apt-get install ethtool

  • 次に、wolを有効にします。

    • wol = Wake on LAN

    $ sudo ethtool -s eth0 wol g

これで基本的には大丈夫なのですが、このままだと再起動後に設定がもとに戻ってしまうので・・・ OS起動時にwolを有効化するスクリプトを記述します。

$ sudo vim /etc/init.d/wakeonlanconfig

#!/bin/bash
ethtool -s eth0 wol g
exit

スクリプトの記述が終わったら保存して閉じ、スタートアップ時にスクリプトを走らせるためファイルに実行権限を与えます。

$ sudo chmod a+x /etc/init.d/wakeonlanconfig
$ sudo update-rc.d -f /etc/init.d/wakeonlanconfig defaults

上記設定が終わったら、ubuntuを1度再起動させましょう。
再起動が完了したら、wolがちゃんと設定されてるか確認します。

$ sudo ethtool eth0

これで設定されている項目の一覧が出てくるので、その中に

Wake-on: g

という項目が表示されていればOKなはずです。
今回自分がやるのは、iPhoneからなのでWin or Macで使いたい人は参考サイト見ればいいんじゃないかな!

実際にiPhoneで外から、起動させるために必要な情報を前もってメモっておきます。ターミナルから下記コマンドで、情報の一覧を表示させます。

$ ifconfig

以下の、MACアドレスとプライベートIPアドレスをメモっておきます。

Ethernet  HWaddr **:**:**:**:**:**
inet addr:192.168.1.100

本来なら、上記でメモったプライベートIPを設定するのですが少し設定が面倒なため「192.168.*.255」にしています。(この設定は、自宅のLAN上にあるPCすべてに起動通知が送られるため、wolを利用したPCが複数台あったりすると残念な感じになるかもです)

設定する際に、プロトコルはTCPではなくUDPで。

次に、iPhone側の設定

今回、iPhone側で使うアプリはNet Statusというアプリです。

実際の詳細な仕様の仕方は今回端折ります。
自宅のサーバーの登録が終わったら、Host Statusの画面の下にあるWake on LANの設定を行います。

上記画面のWake on LANを開くと下記の画面になります。
(初期状態では、Wake over InternetはOFFになっています)

先ほどメモをしたMACアドレスを入力したあとに、Wake over InternetをONにして自宅のグローバルIPおよびポートマッピングに設定したポート番号を設定しWakeを押せばいいだけ!

ここで注意なのがiPhoneを自宅の無線LANなどに繋いでると残念な感じになるので、上記を試す際はiPhoneの無線LANをOFFにしてから試してみましょう。

それでは、快適な節電ライフを!