この記事の内容
- WindowsのWOL(Wake on Lan)をしたい人のための記事です
- ラズパイを用いますが,ラズパイ自体をWOLするものではありません
- WOLするWindows機は物理マシンです
あらすじ
- 自宅(下宿)のデスクトップWindowsを,リモートデスクトップで使う時以外はスリープしておきたい
- Wake on Lanという仕組みがあるが,それをCLIではなくブラウザとかからボタン押すだけで実現したい
- ちょうどサービスはあったので,それを運用するためのセッティングがすこーし必要
- ラズパイをいじった後などに設定するたび忘れているので,備忘録を残しておく
使用するもの
- tailscale(WebコンソールへのアクセルをVPNで行う)
- macoshitaさんのwakeonlan-server を使わせていただくことにした(参考:https://atooshi-note.com/raspi-wol/)
セッティング
tailscaleの導入
既に導入済み.ちなみに導入方法はDocumentや他サイトにわかりやすくまとめられているのでそちらを参照すれば良い.(参考:https://zenn.dev/xin9le/articles/98c82f4998e22f)
Wakeonlan-serverの設定
基本的には,READMEに従って設定をすれば良い.ただし,requirements.txtで指定されているuWSGIのバージョンが古く,エラーが出るので2.0.27に変更する.
requirements.txt
click==8.0.1
Flask==2.0.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
uWSGI==2.0.28 <-ここを変更
wakeonlan==2.0.1
Werkzeug==2.0.1
以下に,nginxの設定例を示す.
wakeonlan-server.setting
server {
listen 80 default_server;
location / {
include uwsgi_params;
uwsgi_pass unix:/home/pi/wakeonlan-server/wol.sock;
}
}
よくあるエラーとしては,sockにアクセス権限がなく,bad gatewayになることがあるので,権限はchmod
などで変更しておく.
あとは,参考サイトにあるように,受け取ったMACアドレスが内部でおかしなことになりエラーとなるので,Windows機のMACアドレスを確認してwol.py
の'addr`に直書きすることで対処した.これは落とし穴だが,Windowsの設定で確認できるMACアドレスはハイフン区切りだが,サーバーで処理するMACアドレスはコロン区切りでなければならない.
最後に,サービスを自動起動させるようにするため,systemctl enable wakeonlan-server
を実行しておく.
まとめ
これでhttp://[TailscaleのIP]/wolにアクセスすれば,マジックパケットを飛ばせるようになった.