Linux で、インストールなしに Wake On LAN
インストールなし、と言いましたが、使うコマンドは、
vim xxd nc
なので、それは必要です。
調査
Wake On LANさせたいPCの、MACアドレスを調べます。
Windowsなら、コマンドプロンプトで「ipconfig /all」すると
Physical Address. . . . . . . . . : 00-0E-7B-96-A6-01
とか出ます。
複数出る場合は、どのネットワークから起動するかで、使うものが決まります。
Linuxなら、「ifconfig」(パス通ってなければ「/sbin/ifconfig」か?)
HWaddr 00:0E:7B:96:A6:01
というのが、それです。
ついでに、ネットワークのブロードキャストを調べておきましょう。
magic packet を用意する
Magic Packetは、最初に「0xFFFFFFFF」(6バイトのFF)と、MACアドレスが16個続いたものです。
前述のバイナリファイル編集で、以下のようなファイルを作成しましょう。
0000000: ff ff ff ff ff ff 00 0e 7b 96 a6 01 00 0e 7b 96 ........{.....{. 0000010: a6 01 00 0e 7b 96 a6 01 00 0e 7b 96 a6 01 00 0e ....{.....{..... 0000020: 7b 96 a6 01 00 0e 7b 96 a6 01 00 0e 7b 96 a6 01 {.....{.....{... 0000030: 00 0e 7b 96 a6 01 00 0e 7b 96 a6 01 00 0e 7b 96 ..{.....{.....{. 0000040: a6 01 00 0e 7b 96 a6 01 00 0e 7b 96 a6 01 00 0e ....{.....{..... 0000050: 7b 96 a6 01 00 0e 7b 96 a6 01 00 0e 7b 96 a6 01 {.....{.....{... 0000060: 00 0e 7b 96 a6 01 ..{... ~ ~ :%! xxd -g 1
ファイルの長さは、102バイトです。
Wake On LAN!
あとは、ターゲットに向けて、Magic Packetを投げるだけ。
相手が寝ているので、IPアドレスは確定していません。
UDPのブロードキャストで受け取ってもらいましょう。
ポートは任意です。
ブロードキャストが、192.168.0.255で、3027ポートを使い、
先ほど作成したファイルが「wol.bin」なら、
$ nc -b -u -q 1 -n 192.168.0.255 3027 < wol.bin
になります。
備考
Wake On LANされる側のBIOSの設定をお忘れなく。
ルータ越えは、ルータに対していろいろせんといかんと思います。
うちのPCは、iptablesが厳しいので、ntpとかdhcpとかdnsとかのポートでやってます。
WindowsからWake On LANするなら、ツールを導入した方が早そうです。
「ping」を流しておくと、起動確認できるかもしれません。
nc(netcat)は、便利(危険)だなぁ。