0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wake on LAN をやってみる。

Last updated at Posted at 2025-11-15

1. Wake on LANとは

AI回答:

Wake on LAN (WoL) は、ネットワーク経由で電源がオフまたはスリープ状態のコンピュータを起動できる技術である。
特定のフォーマット(マジックパケット)のネットワークパケットをターゲットマシンのMACアドレス宛に送信することで、リモートから電源を投入できる。

まとめ:ネットワーク経由でPCを起動・停止できる。

2. 環境

役割 OS
起動する側 Windows 11
起動される側 Ubuntu Server

WoLのユーザインタフェースとしてはUpSnapを採用する。

最終的なアクセス時の画面は以下の通り。

image.png

※以下を行う前に、起動される側の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

<インターフェース名>eth0enp3s0など、実際の環境に合わせて変更する。

サービスの有効化と起動:

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 アドレスは:区切り

image.png

Ping を使用してインスタンスの起動状態を確認するため、以下を設定。

image.png

あとはお好みで設定する。

設定 説明
Wake スケジュール登録、カスタム起動コマンド、確認モーダル使用 etc
Shutdown スケジュール登録、SSH接続でのpoweroff、確認モーダル etc

ポートを指定して、リンクを設定することができるため、前に作成したGrafanaとPrometheusのリンクを設定した。

以下のように表示されるので、クリックすると別タブで開く。

image.png

image.png

3. UpSnapの常駐化

タスクスケジューラを使用してログオン毎に起動するように設定した。

4. 動作確認

  1. UpSnapのWebインターフェースにアクセス
  2. 数秒待ち、登録したデバイスの状態が表示されることを確認する
  3. 停止していれば起動、起動していれば停止できることを確認する

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を有効にする設定も可能だが、特に必要ないので今回は削除で対応した。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?