こちらは前回の記事、『自宅パソコンクラウドゲーミング化計画』の続きの内容になります。

今回は、自宅のパソコンを家の外から電源入れられるようにする!ことを目標にちょっと調査と実験した結果になります。
実は、前回紹介したMoonlightにも、アプリからWoL(Wake-on-LAN)を送る機能があります……がこちらの環境では家の外からは使えないようでした。
お使いのルーターの機種によっては、設定を変えることで可能みたいですが、プロバイダからうちに貸与されているルーターにはそんな機能はありませんでした。
自宅メインPCのIPを解放することはなるべく避けたかったので、それ以外の方法を検討することにしました。
方法①Tailscaleのネットワークを待ち受ける中継用PCを用意する
MoonlightでのWolはLAN内であれば利用できたということで、常時自宅のLANグループに繋がっているPCを中継役として1台用意すればそこから自宅内にWolできるという発想です。
外部からアクセスできるようにするために中継用PCにはTailscaleだけは入れておく必要があります。
WolするためにはWolパケットを送れればいいので、LinuxやAndroidなどのOSが入った端末があれば試せると思います。
コマンドを入力するだけでできそうだったので、今回はLinuxを入れたノートPCで試してみました。
準備:起こすPCの物理アドレスを予約する
起こしたいPCの物理アドレスを特定します。
ipconfig /allここで、ネットワークアダプタのIPv4アドレスと物理アドレス(MACアドレス)を確認する。
ルーター側の管理ページでIPを固定する

先ほど確認したアドレスを入力します。
中継用PCをTailscaleのネットワークに参加させる。
ここはLinuxの中継用PCでの作業。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up #TailscaleのURLが表示されたら、アクセスして認証する
tailscale ip -4 #tailscaleのIPを表示する
sudo tailscale set --ssh #SSHを有効にするここまで完了したら、Android側でもTailscaleを有効にし、Termux等SSH接続できるアプリを用意する。
Android(WoLを送りたい端末)で実行します。
pkg install openssh #OPENSSHをインストール
ssh [ユーザー名]@[Tailscale IP] #Tailscaleの認証URLが表示されたら、認証を行う
wakeonlan [起こしたいPCのMACアドレス]これで、外部Wolのテストが行えました(テスト時は自宅Wi-Fiを切って確認)
一度設定さえすればsshとwakeonlanコマンドを打つだけです。
さらなる欲望
一応これでひとまずの目的は達成できましたが、まだこれでは満足できない理由がありました。
常にPCの電源を入れておくことになるのでバッテリーの劣化が心配なのと、電気代、置き場所の問題です。
しかし全てを解決できる端末に心当たりがありました。
バッテリー→積んでいない
電気代→ノートPCよりもはるかに安い
置き場所→カード一枚よりも小さい
そう、Raspberry Piならね。
Linuxが動きTailesceleも入れることができ、上記で紹介したこのままの方法で動かすことができ、そして小型で安価なRaspberry Pi Zero2Wを探したのですが……
日本橋のパーツショップにラズパイZero、売ってない
4や5なら売っていましたがWoLするためだけに1万円かぁ……
方法②Raspberry Pi Pico2WでMQTTクライアントを自作する
Zeroは売ってなかったですが、PicoでもWoLを送ること自体は可能で、MQTTを利用することでWoL装置を実装した例がありました。
ということで、次回はPico2Wで簡易なWoL機を自作しようと思います。
続きは次回!
記事が長くなってしまったのでまたしても今回出番がなかったラズパイPicoさん。
