やってみよう!

プログラミングとかでぃーぷらーにんぐとかVRとか気になったものをやってみる予定

遠隔でPC起動

タイトルの通り。とりあえず同じネットワーク内ではできた。

Wake On Lan

Wake on Lan という技術らしい。

Wake On LANでコンピュータを起動する (1/2):Tech TIPS - @IT

どうやら有線LANじゃなきゃダメっぽい?(未確定)

検証環境

ルーターはこれを使ってます。

https://www.amazon.co.jp/gp/product/B07FTS23J3/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1

ただ、PCは別の部屋に置いてあるため、こいつで中継して、こいつから有線LANで接続しました。(もともとこれを使っていて、VPNサーバー機能がなかったので買い換えた)

Amazon CAPTCHA

起動させたいPC

BIOS設定

  • 詳細設定モードに切り替えてBootタブから Boot From On Lan をEnable
  • [Advanced]>[ACPI Configurarion(ACPI設定)]にて、[PCIE Devices Power On(PCIEデバイス電源オン)] をEnable

www.ask-corp.jp

全然起動しなくて1日ハマりましたが、

1.3 [Advanced]>[ACPI Configurarion(ACPI設定)]にて、[PCIE Devices Power On(PCIEデバイス電源オン)]を有効して下さい。

これでした。

Bootメニューの中に入れといてくれよ...

ubuntuの設定

必要なツールをインストール

 sudo apt install ethtool

nicを調べる

ip address
1: lo: <LOOPBACK,UP,LOWER_UP> ...(略)
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP>...
     link/ether 00:11:22:aa:bb:cc brd ff:ff:ff:ff:ff:ff 
     (略)

名前がenp0s31f6だとわかったのでethtoolで調べる

sudo ethtool enp0s31f6
Settings for enp0s31f6:
    Supported ports: [ TP ]
    (略)
    Supports Wake-on: pumbg
    Wake-on: g
    (略)
    Link detected: yes

初めからWake-on: gとなっていたので設定する必要はなさそう。

あとはこいつのMACアドレス(00:11:22:aa:bb:cc)を使って別のPCからマジックパケットとかいうのを投げてあげれば起動します

参考:Ubuntuでwake-on-lanを有効化する | 電脳手帳

起動用PC(mac)

ツールをインストール

brew install wakeonlan

マジックパケット送信

wakeonlan 00:11:22:aa:bb:cc

WAN(外部)から起動する

さて、ここまでで取りあえずLAN内からは遠隔起動できるようになりました。

今度はLANの外(WAN)からでも操作できるようにして、外出先から家のパソコンが操作できるように設定します。

流れとしては

  1. VPNサーバー構築(DNS登録も)
  2. 起動したいPCのローカルIPを固定する
  3. 外からVPN越しにマジックパケットを送信

という流れです。

VPNサーバー構築

今回使ったIODATAのWN-AX2033GR2というルーターVPNサーバー機能が付いているので、これでVPNサーバー建てて、さらにiobb.netというダイナミックDNNが無料で使えるので、固定IPが使えない環境でも簡単にVPN接続できました!

設定方法は公式のマニュアルがわかりやすかった。

http://www.iodata.jp/lib/manual/wn-ax2033gr2/index.html#p4_9

ローカルIPアドレス固定

同じLAN内にいるときは起動用端末(mac)から

$ wakeonlan 00:11:22:aa:bb:cc
Sending magic packet to 255.255.255.255:9 with 00:11:22:aa:bb:cc

これでうまく行ったのですが、VPNだとこれでは起動しませんでした。

VPNを使って接続した時点で自宅LAN内の192.168.0.xに入っているはずなので、同じやり方でいけると思ったんだけどなぁ。

他にやり方ないかと探したらローカルIPを固定してそれ宛にマジックパケットを送ればOKみたいな記事があった(urlを失念しました...)ので、それでやってみる。

WN-AX2033GR2の場合は LAN設定 -> DHPC から IPアドレス: 192.168.0.2 MACアドレス: 00:11:22:aa:bb:cc を選んで追加ボタンを押して、設定ボタンをクリックで固定できました。

外からVPN越しにマジックパケットを送信

あとは起動用端末 (mac)からVPNの設定をして、接続したら192.168.0.2めがけてマジックパケットを送ればOKです。

VPNの設定はシステム環境設定 -> ネットワークの+ボタンから

で作成ボタンを押して、

  • 構成:デフォルト
  • サーバーアドレス:【iobb.netで設定したホスト名 (hoge.iobb.net)】
  • アカウント名:【iobb.netで設定したアカウント名】

これで設定完了ですが、詳細から「すべてのトラフィックVPN接続経由で送信」にチェックを入れないとコンソールからの通信にVPNが使われないので注意です。

f:id:ascreit:20181020001457p:plain

あとはipに192.168.0.2 を指定してマジックパケットを送信すればWANから起動します。

wakeonlan -i 192.168.0.2 -p 9 00:11:22:aa:bb:cc