VineLinux6からWOLで他のPCを起動

自宅のAirStationの設置場所を引っ越してから、AirStationのサービス一覧管理画面で一部のPCが正しく認識されなくなってしまいました。

サービス一覧表に並んだPCの名前とIPアドレス、MACアドレスがゴチャ混ぜになってしまい、WOL機能が使えなくなってしまったのです。特に、デスクトップのWindowsPCと自宅サーバーのLinuxPCがWOL出来なくなったのは痛い不具合でした。


恐らく、無線LAN子機をHUBとして使っているのがマズイのかもしれませんが、同じ無線LAN子機に繋がれたプリンターサーバーは正しく認識されているのが謎です。
Linuxの/etc/hostsでIPとコンピュータ名を紐づけてみましたが、AirStationは全く無視。本当は、サービス一覧でIPとMACアドレスを結び付ける設定が出来れば良いのですが、その機能は残念ながらありません。
原因も分からないので、別の手段を考えました。

外部からVPN接続してLAN内からWOLを使うには、常時電源が入ってる機器であることが必要なので、自宅サーバーを使うことにしました。
ググッてみると、意外に簡単に出来ることが、こちらのページで分かりました。

linuxには、net-toolsというツールがあるようで、それにWOLできる機能が付いてました。
ラッキーなことに、vinelinux6には最初からnet-toolsが入っていました。

rpm -q net-tools

使い方は簡単で、ターミナルから以下のようにコマンド+MACアドレスを入力するだけです。

ether-wake XX:XX:XX:XX:XX:XX

1つ重要なのは、vinelinuxのファイヤーウォールでポート50000番を開けないと、通信が出来ませんでした。
あと、デフォルトではrootしか使えないようです。


実際に、iPhoneのiSSHから3G回線+VPN接続で、問題なくPCを起動することが出来ました。
毎回MACアドレスを打つのは面倒なので、ファイル名をPCの名前にした.shファイルを作っておきました。