Wake on LANで自宅サーバーを24時間稼働から卒業する:BIOS・NIC設定とスマホからの起動

Photo: Brett Sayles / Pexels
先に結論です。Wake on LAN(WoL)は、電源が切れたPCのNICに「マジックパケット」を送って起動させる仕組みです。設定する場所は BIOS・OS 側の NIC 設定・送る側の機器 の 3 か所で、どれか 1 つでも抜けると起きません。外出先から起こしたいときは、スマホから直接パケットを送るのではなく、自宅 LAN 内で常時動いている機器から送る 構成にするのが確実です。
常時動かす必要があるのは NAS や Home Assistant くらいで、Proxmox の検証機やバックアップ先のサブ機は「使うときだけ起動」で十分、という人は多いはずです。この記事では、その切り替えに必要な設定を順番に整理します。
Wake on LANの仕組みと前提
マジックパケットは、起こしたい機器の MAC アドレスを 16 回繰り返したデータを、LAN 内にブロードキャストで送るものです。電源オフ中も NIC にはわずかに給電されていて、自分宛てのパケットを見つけるとマザーボードに起動を指示します。
前提として押さえておきたいのは次の 3 点です。
- 有線 LAN が前提:Wi-Fi 経由の WoL に対応する機種は限られるとされています。サーバーは有線でつなぎます
- ブロードキャストは同じ LAN 内にしか届かない:ルーターや VPN を越えて直接は送れません
- 電源ケーブルを抜くと効かない:停電やタップのスイッチオフの後は、一度手で起動が必要な機種があります
手順1:BIOSでWake on LANを有効にする
メーカーによって名前が違いますが、次のような項目を探します。
Wake on LAN/Power On By PCI-E/Resume by LANを Enabled にするErP Ready/Deep Sleep/EuPのような省電力項目を Disabled にする
2 つ目が見落としやすいところです。ErP 系の設定は電源オフ時の待機電力を極限まで下げるもので、有効だと NIC への給電も止まり、マジックパケットを受け取れません。設定を保存したら、起こしたい機器の MAC アドレスを控えておきます。
ip link show
# link/ether の後ろが MAC アドレス(例: 00:11:22:33:44:55)
手順2:Linux側でNICのWoLを有効にし、再起動後も残す
BIOS で有効にしても、OS がシャットダウン時に NIC の WoL を切ってしまうことがあります。ethtool で状態を確認します(インターフェース名は ip link で確認したものに読み替えてください)。
sudo apt install ethtool
sudo ethtool enp1s0 | grep Wake-on
Supports Wake-on: pumbg に g が含まれていれば対応しています。Wake-on: d なら無効なので、次で有効にします。
sudo ethtool -s enp1s0 wol g
ただし、このコマンドは再起動すると元に戻ることがあります。環境に合わせて、次のどれかで永続化します。
NetworkManager の環境(Ubuntu Desktop・ラズパイの Bookworm 以降など)
nmcli connection show
sudo nmcli connection modify "<接続名>" 802-3-ethernet.wake-on-lan magic
Proxmox VE(/etc/network/interfaces で管理)
物理 NIC の定義に 1 行足します。ブリッジ(vmbr0)ではなく、物理 NIC 側に書くのがポイントです。
iface enp1s0 inet manual
post-up /usr/sbin/ethtool -s enp1s0 wol g
Ubuntu Server(netplan)
network:
ethernets:
enp1s0:
match:
macaddress: "00:11:22:33:44:55"
wakeonlan: true
netplan で wakeonlan を使う場合は match で MAC アドレスを指定する必要があるとされています。書いたら sudo netplan apply で反映し、再起動後にもう一度 ethtool で Wake-on: g になっているか確認します。
手順3:LAN内の別の機器からマジックパケットを送る
送る側は、同じ LAN にある Linux 機なら何でも構いません。
sudo apt install wakeonlan
wakeonlan 00:11:22:33:44:55
起きないときは、ブロードキャストアドレスを明示すると届くことがあります。
wakeonlan -i 192.168.1.255 00:11:22:33:44:55
まずは対象機を sudo poweroff で落とし、この方法で起動するところまでを確認します。ここで起きなければ、BIOS の ErP 系の設定か、OS 側の Wake-on: d に戻っていないかを見直します。
外出先のスマホから起こす構成
スマホの WoL アプリは、同じ Wi-Fi にいるときはそのまま使えます。問題は外出先からです。Tailscale などの VPN でつないでも、ブロードキャストは自宅 LAN まで届かないため、スマホから直接マジックパケットを送っても起きません。
そこで、常時動いている機器に送ってもらう 形にします。
- ラズパイ+Tailscale:常時稼働のラズパイに Tailscale を入れておき、外出先から SSH で入って
wakeonlanを実行します。スマホの SSH アプリで 1 コマンドなので手軽です。WoL の送信役だけなら、低消費電力の小型モデルで足ります - Home Assistant:Home Assistant を動かしているなら、Wake on LAN の統合でボタンを作れます。外出先から Home Assistant のアプリを開けるようにしてあれば、そこから起動できます
- ルーターの機能:ルーターによっては、メーカーのアプリや管理画面から LAN 内の機器に WoL を送れる機種があります
ルーターでポートを開けて、インターネットから直接マジックパケットを受ける方法もありますが、外に開く口が増えるので、この記事ではおすすめしません。
使うときだけ起動する運用の注意点
- 起動後の自動化を確認する:VM の自動起動(Proxmox の「Start at boot」)や Docker の
restart: unless-stoppedが設定されていないと、起こしても中のサービスが動きません - 落とし忘れ対策:使い終わったら
sudo poweroffで落とす習慣にするか、cron で深夜に落とすようにします - バックアップの時間に合わせる:バックアップ先として使う機器なら、送る側の cron で決まった時刻に
wakeonlanを送り、終わったら落とす運用もできます - 起きない日に備える:WoL が効かないときに備えて、BIOS から操作できる IP-KVM を用意しておくと、出先からでも復旧できます
まとめ
- WoL の設定場所は BIOS・OS 側の NIC・送る側の 3 か所。BIOS の ErP 系の省電力設定は無効にする
- Linux では
ethtoolでWake-on: gを確認し、NetworkManager・interfaces・netplan のどれかで永続化する - 外出先からは、常時稼働のラズパイや Home Assistant に Tailscale 経由で頼んで送ってもらう
- 起こした後にサービスが自動で上がるか、落とし忘れないかまで決めておくと運用が楽になる
運営者が作った Excel テンプレートを BOOTH で配布しています。IT 資産管理台帳(無料 Lite 版あり) / IT 資格の学習管理シート


