Raspberry PiからWake On LanでWindowsを外出先から起動できるようにした
先日Raspberry Piを購入し、ひとまず設定も行って使える環境にまで持っていったので、以前から使ってみたいと思っていたWake On Lanを導入して外出先から自宅PCを起動できるようにしました。
というわけで簡単な設定ですが手順メモを。
関連記事:Raspberry Piを購入したのでインストールとセットアップメモなど
Wake On Lan
Wake On Lan (WOL)とはコンピュータの起動やシャットダウンをネットワークを通して行う事ができる技術です。これを使えば必要なときに外部から自宅PCを起動し、接続ができるようになるので、一日中PCをつけっぱなしにしなくてもPCに接続することができてとてもおサイフにやさしい。すばらしい
WOLは、マジックパケットと呼ばれるパケットをコンピュータに向けて送信します。受け取ったコンピュータは送られたパケットがマジックパケットであると判断できれば、起動を開始します。簡単ですね。
この辺りはWikipediaに詳しく書かれてますので興味のある方はそちらをどうぞ。けっこう面白いパケットを送ってます。
ただし、WOLを利用できるかどうかはNIC、OS、BIOS、マザボなどが対応している必要があるので確認が必要です。
ネットワークアダプタは、USB給電ができれば無線LAN受信機でも大丈夫ですが、あいにく私の環境ではUSB受信機は使用できなかったのでRaspberry Piを経由してイーサネットからマジックパケットを送ることにしました。
イーサネットコンバーターを使用するという手も有りましたが、このために5kほどのお金が必要になってしまうので諦め。
設定
今回は、こんなかんじの設定にしてみました
Windows 7とRaspberry Pi(Raspbian)をLANケーブルで接続して、Windows 7側のIPアドレスを192.168.100.1に、Raspberry Pi側のIPアドレスを192.168.100.2に設定しました。
外部からRaspberry PiにSSHで接続し192.168.100.1に対してマジックパケットを送ることでWin7を起動します。起動後、RDPは無線で直接接続します。
Windows側の設定
Windows以外の方は各自調べてください(:3 」∠)
BIOS
Wake On LanをEnableにしておく。
BIOSの設定は各マシンで異なるので省略します。
ネットワーク設定
コントロールパネル>ネットワークと共有センター>アダプタ―の設定の変更>ローカルエリア接続→プロパティ →インターネットプロトコルバージョン4(TCP/IPv4)選択からのプロパティ
addressは192.168.100.1
サブネットマスクは255.255.255.0
DNSとゲートウェイ設定は不要です。
MACアドレスを調べる
cmd.exeを起動し、以下のコマンドで調べる
> ipconfig /all
さきほど設定した192.168.100.1のところの物理アドレス-----をメモしておきましょう。(あとで使います)
イーサネット アダプター ローカル エリア接続: 接続固有の DNS サフィックス . . . : 説明. . . . . . . . . . . . . . . : Intel(R) Gigabit Network Connection 物理アドレス. . . . . . . . . . . : **-**-**-**-**-** # これ DHCP 有効 . . . . . . . . . . . . : いいえ 自動構成有効. . . . . . . . . . . : はい IPv4 アドレス . . . . . . . . . . : 192.168.100.1(優先) サブネット マスク . . . . . . . . : 255.255.255.0 デフォルト ゲートウェイ . . . . . : NetBIOS over TCP/IP . . . . . . . :
Windowsはこれくらい
Raspberry Pi側の設定
ネットワーク設定
はじめにネットワークの設定をします。
$ sudo vim /etc/network/interfaces ←ネットワーク設定 auto lo # Ethernet(有線)側の設定 iface lo inet loopback iface eth0 inet static address 192.168.100.2 netmask 255.255.255.0 # 無線側の設定 allow-hotplug wlan0 iface wlan0 inet static address 192.168.10.1 netmask 255.255.255.0 gateway 192.168.0.1 broadcast 192.168.0.255 dns-nameservers 8.8.8.8 wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
eth0を再起動
$ sudo ifdown eth0 && sudo ifup eth0
addressは192.168.100.2 サブネットマスクは255.255.255.0 iface lo inet loopback の部分がEthernetの設定です。addressとnetmaskだけでいいと思います。 編集し終わったらeth0を再起動しておわり。
Wake On Lanの設定
設定というかなんというか?
今回はWOLはSENGOKU氏のwol.cを使用します。 wol.c:http://www.gcd.org/sengoku/docs/wol.c
ダウンロードしてコンパイル
$ cd $ mkdir wol $ cd wol $ wget http://www.gcd.org/sengoku/docs/wol.c $ gcc wol.c -o wol
とりあえず実行してみる
$ ./wol Wake On Lan Copyright(C)2000 by Hiroaki Sengoku <sengoku@gcd.org> Usage: wol <IP> <MAC>
ターゲットのIPとMACアドレスが必要です。 さっきWindowsの方で設定したIPアドレスとメモしたMACアドレスをここに入れて実行すると
$ ./wol 192.168.100.1 **-**-**-**-**-** $
何も表示されなければ送れてます(おそらく)
気になる方はtcpdump
で確認してみてください
Windowsの方の電源を落としてコマンドを叩くと起動するはずです。ぜひやってみてね。
起動しない場合は、機器がWOLに対応してるか、ネットワーク設定があっているか確認してみるといいかもです。
また、毎回毎回IPアドレスとMACアドレスを入力するのはだるいのでシェルスクリプトを書いておくといいかもです。
$ vim sh_wol.sh ------- Vim ------- #!/bin/sh ./wol 192.168.100.1 **-**-**-**-**-** ------- Vim -------
$ chmod 700 sh_wol.sh $./sh_wol.sh $
かんたんかんたん
今はsshでRaspberry Piに接続してシェルスクリプトを走らせて起動してますが将来的にはWebから起動できるようにしたいなぁと目論んでます
いつになるやら