プログラミングとかLinuxとかの備忘録

プログラミング、Linuxでハマった箇所や環境構築のメモ

LinuxでWake-on-LANする

スポンサーリンク

UEFIでWake-on-Lanを有効化する

手元のASRockのマザーボードでは Advanced -> ACPI Configuration -> PCIE Devices Power OnEnabledに変更した。

ethtoolのインストール

WoL起動したいPCにethtoolをインストールする

$ sudo apt -y install ethtool
$ sudo yum -y install ethtool
$ sudo pacman -S ethtool

WoLの有効化

WoLを設定したいネットワークデバイス名をip link show等で確認する。

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether d0:50:99:78:f8:a7 brd ff:ff:ff:ff:ff:ff

WoLの設定を確認する。
Supports Wake-onの中にgが入っているためWake-on-LANに対応している。

$ sudo ethtool enp0s31f6 | grep Wake-on
        Supports Wake-on: pumbg
        Wake-on: d

ここで、WoLを使用するためにはWake-ongにする必要がある。 (すでにgになっている場合は、後の設定は不要のはず)

$ sudo ethtool -s enp0s31f6 wol g
$ $ sudo ethtool enp0s31f6 | grep Wake-on
        Supports Wake-on: pumbg
        Wake-on: g

また、再起動後すると設定が戻ってしまうためcronを用いて再起動ごとに設定を行うようにする。

$ sudo crontab -e -u root
@reboot         /usr/bin/ethtool -s enp0s31f6 wol g

ここまででサーバ側の設定は終了。

WoLクライアントのインストール

マジックパケットを送信する側のPCにWoLクライアントをインストールする。

$ sudo apt -y install wakeonlan
$ sudo yum -y install net-tools
$ sudo pacman -S wol

起動テスト

Wake-ongになっている状態でシャットダウンし、別のPCからマジックパケットを送信する。 マジックパケットは起動したいPCのMACアドレスを使用して次のコマンドで送信できる。

$ wakeonlan d0:50:99:78:f8:a7
$ sudo ether-wake d0:50:99:78:f8:a7
$ sudo wol d0:50:99:78:f8:a7