1. Wake on LANとは
AI回答:
Wake on LAN (WoL) は、ネットワーク経由で電源がオフまたはスリープ状態のコンピュータを起動できる技術である。
特定のフォーマット(マジックパケット)のネットワークパケットをターゲットマシンのMACアドレス宛に送信することで、リモートから電源を投入できる。
まとめ:ネットワーク経由でPCを起動・停止できる。
2. 環境
| 役割 | OS |
|---|---|
| 起動する側 | Windows 11 |
| 起動される側 | Ubuntu Server |
WoLのユーザインタフェースとしてはUpSnapを採用する。
最終的なアクセス時の画面は以下の通り。
※以下を行う前に、起動される側のPCのBIOSでWoLが可能な状態にする必要があるため注意。
2.1. wol.serviceの作成
systemdサービスとしてWoLを有効化するため、まず必要なパッケージをインストールする。
2.1.1. ethtoolのインストール
sudo apt update
sudo apt install ethtool
2.1.2. サービスファイルの作成
以下のコマンドでサービスファイルを作成する。
systemdサービスとしてWoLを有効化するため、以下のサービスファイルを作成する。
sudo vi /etc/systemd/system/wol.service
サービスファイルの内容:
[Unit]
Description=Enable Wake-on-LAN
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s <インターフェース名> wol g
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
※ <インターフェース名>はeth0やenp3s0など、実際の環境に合わせて変更する。
サービスの有効化と起動:
sudo systemctl enable wol.service
sudo systemctl start wol.service
設定確認:
sudo ethtool <インターフェース名> | grep Wake-on
Wake-on: gと表示されればOK。
2.2. UpSnapの設定
UpSnapは、Wake on LANやデバイス監視を行えるWebベースの管理ツールである。
当初、WSL上のDockerでUpSnapを動かそうとしたが、WSLのネットワーク構成上、ローカルネットワークへのマジックパケット送信がうまく機能しなかった。
Windows版のUpSnapをネイティブにインストールすることで解決した。
2.3. Windows版UpSnapのインストール
UpSnapの公式リリースページから最新のWindows版インストーラーをダウンロード。
実行ファイルを実行したディレクトリにフォルダ等が作られる。
後にタスクスケジューラを使用してログオン毎に起動するため、スクリプト化しておく。
例:
$ErrorActionPreference = "Stop"
$SH_DIR = Split-Path -Parent $MyInvocation.MyCommand.Path
try {
Set-Location $HOME\UpSnap_5.2.3_windows_amd64\
& .\upsnap.exe serve
}
catch {
Write-Host $_.Exception.ToString()
}
finally {
Set-Location $SH_DIR
}
2.4. 画面上設定
UpSnapのWebインターフェース(通常はhttp://localhost:8090)にアクセス。
+ New ボタンを押下し、WoLの設定を追加。
Mac アドレスは:区切り
Ping を使用してインスタンスの起動状態を確認するため、以下を設定。
あとはお好みで設定する。
| 設定 | 説明 |
|---|---|
| Wake | スケジュール登録、カスタム起動コマンド、確認モーダル使用 etc |
| Shutdown | スケジュール登録、SSH接続でのpoweroff、確認モーダル etc |
ポートを指定して、リンクを設定することができるため、前に作成したGrafanaとPrometheusのリンクを設定した。
以下のように表示されるので、クリックすると別タブで開く。
3. UpSnapの常駐化
タスクスケジューラを使用してログオン毎に起動するように設定した。
4. 動作確認
- UpSnapのWebインターフェースにアクセス
- 数秒待ち、登録したデバイスの状態が表示されることを確認する
- 停止していれば起動、起動していれば停止できることを確認する
5. トラブルシューティング
5.1. 問題1: WoL設定が再起動後にリセットされる
5.1.1. 原因
tlp(電力管理ツール)がネットワークインターフェースの電源管理を行い、WoL設定を上書きしていた。
5.1.2. 解決方法
tlpを削除することで解決した。
sudo apt remove tlp tlp-rdw
sudo apt autoremove
他の電力管理が必要な場合は、tlpの設定ファイル(/etc/tlp.conf)でWoLを有効にする設定も可能だが、特に必要ないので今回は削除で対応した。




