リモートでPCの電源をオン

研究室のPCを自宅から操作したい場合、リモートデスクトップソフトを使います。UbuntuではAnyDeskを使っていますが、PCの電源が切れているならまだしも、スリープの状態からでもAnyDeskが利用できません。これはTeamViewerなど他のリモートデスクトップソフトでも同じようです。そこでWOL(wake on lan)という機能を利用すれば完全にPCの電源が切れた状態からでも遠隔でPCを起動させることができます。おそらく有線接続のPCしか不可だと思います。

BIOSの設定

まずはPCのBIOS(ASRock)の設定画面を開いて以下の画像のように設定しました。PCによってはWOLに非対応のものもあります。起動>内蔵LANから起動、アドバンス>ACPI設定>PCIEデバイス電源オン、をそれぞれ有効にして設定を保存します。

f:id:shibuya_shogo:20201019191534j:plainf:id:shibuya_shogo:20201019191539j:plainf:id:shibuya_shogo:20201019191543j:plain

管理者ユーザでtelnet接続

研究室には有線のルーター(Yamaha RTX830)があります。ルーターの設定画面(http://192.168.0.1)にブラウザでアクセスします。ログインを求められ管理ユーザーとしてログインします。管理ユーザのパスワードが設定されていない場合は以下のページを参考に設定します。
network.yamaha.com
ログインできることが確認できたらtelnetで接続します。terminalを開いて以下のコマンドを実行します。文字化けを避けるためnkfコマンドにパイプします。

telnet 192.168.0.1 | nkf -uw

ログインできたら

administrator

と入力して管理ユーザでログインします。あとは公式のサイトにしたがってブラウザからwolが実行できるようにします。
network.yamaha.com

WAN越しに接続

ここまでブラウザでルータのアドレスを開いてユーザ名をwolでログインすると、LAN内であればWOL機能が使えます。しかし、WAN越しには接続できません。いろんなサイトを見て試行錯誤しましたが、このサイトを参考にルーターの設定を行うとうまく行きました。natやip filterなど難しかったです。
qiita.com

これで自宅からでも接続できると思いブラウザでそのままアクセス(http://グローバルアドレス:44444)を試みましたが、なぜかできませんでした。しかし大学のVPNに接続した状態であれば、開放したポートへのアクセスが可能になっていました。大学のVPNに接続後、http://グローバルアドレス:44444を開いて、ユーザ名wolでログインすることで自宅からでも研究室のPCの電源を入れられるようになりました。