Ubuntu 16.04 LTSでWake On Lan(WOL)を有効にする方法
自分に合ったより良い方法を見つけました。少なくともクリーンな方法。これは、googlingUbuntu 16 wolおよび他の同様の検索で見つけたため、これを投稿しています数回投稿します。これは他の人を助けることができます。
Ubuntuはupstartをsystemdに変更したようです。これはUbuntu 15、Ubuntu 16、そしておそらく次のバージョンでも同様です。私は両方のシステムに慣れていないが、これは私のために働いた。
WOLを機能させるには、システムが起動するたびにWOLを再度有効にする必要がありました。これを手動で行うことを避けるために、この目的でsystemdを使用しました。これは私がやったことです:
まず、ファイル/etc/systemd/system/[email protected]
を作成します (@記号を保持)。これを入れてください:
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
起動時のインターフェイスでこれを有効にし、次のコマンドを実行します (インターフェースでeth3を変更します):
systemctl enable wol@eth3
次のようなものが表示されるはずです。
Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
有効になっているかどうかを確認するには、次のコマンドを実行します (インターフェースでeth3を変更します) そして、enabled
を返すはずです:
systemctl is-enabled wol@eth3
これをテストするには、再起動して実行します (インターフェースでeth3を変更します):
ethtool eth3
次の行が表示されます。
Wake-on: g
新興企業:
Upstartは、/ sbin/initデーモンのイベントベースの置換であり、ブート中のタスクとサービスの開始を処理し、シャットダウン中にそれらを停止し、システムの実行中にそれらを監視します。
- pstart-イベントベースのinitデーモン
ststemd:
systemdは、Linuxシステムの基本的なビルディングブロックのスイートです。 PID 1として実行され、システムの残りを起動するシステムおよびサービスマネージャーを提供します。 (...)
- systemd
Ubuntu 16.04では、WOL_DISABLE=N
に/etc/default/tlp
を設定して、TLP電源管理によってWOLが無効にされないようにします。
http://linrunner.de/en/tlp/docs/tlp-configuration.html
NETDOWN=no
に/etc/default/halt
を追加して、シャットダウン中にネットワークカードの電源が切れないようにします
静的ネットワーク構成が使用されている場合、/etc/network/interfaces
でWake on LANを有効にします。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 192.168.0.1
up ethtool -s eth0 wol g
BIOSでLANのウェイクを有効にし、BIOSセットアップに入り、「PCIイベントでウェイクアップ」、「LANでウェイクアップ」などと呼ばれるものを探します。有効になるように変更します。設定を保存して再起動します。
https://help.ubuntu.com/community/WakeOnLan
警告一部のマザーボード/ネットワークコントローラーは、コールドブートからのWOLをサポートしていません再び)。その場合、少なくとも1つの電源サイクル(電源投入、シャットダウン)を実行する必要があります。この問題を軽減するために、ACが復元されたときに電源を投入し、その後Ubuntu内でシャットダウンをスケジュールするようにBIOSを構成できます。詳細については、マザーボードのマニュアルを参照してください。
WOLが機能するためには、電源オフ時にイーサネットインターフェイスがシステムによって適切にシャットダウンされていることを確認してください。
以下を試してください:
wol_poweroff.shというbashスクリプトを/ etc/rc6.d /ディレクトリーに作成します。
Sudo nano /etc/rc6.d/wol_poweroff.sh
このコードを入れてください:
#!/bin/bash
ifconfig eth0 down
poweroff
それを/ etc/rc0.dディレクトリにコピーします(haltでも動作します):
Sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
両方を実行可能にします:
Sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
Sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
Sudo shutdown now
またはSudo poweroff
でマシンの電源を切り、WOLツールを使用してマジックパケットを送信することにより、動作するかどうかをテストします。
それは私のために働いた唯一のものでした。 launchpad.netのバグレポートでこれらの手順を見つけました。
著者のロビー・ウィリアムソンによると、これは次の理由で機能します。
WOLを機能させるには、システムのシャットダウンの一環として、イーサネットインターフェイスを適切に停止する必要があります。これは、実行レベルrc0およびrc6の一部として実行する必要があります。Linuxには通常、7つの異なる実行レベル(または動作モード)があります。
rc0.d-システム停止
rc1.d-シングルユーザーモード
rc2.d-ネットワーキングを使用したシングルユーザーモード
rc3.d-マルチユーザーモード-テキストモードで起動
rc4.d-まだ定義されていません
rc5.d-マルチユーザーモード-X Windowsで起動
rc6.d-シャットダウンと再起動
ソース: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461
ターミナルで次を実行します。
Sudo ethtool -s {your network interface} wol g
Sudo ethtool {your network interface}
2番目のコマンドを書いた後、gの横にwake on lanが表示されるはずです。
@nkefによって提案されたパラメーターに加えて、LANアダプター(ここではeth0という名前)の静的IP設定の代わりにDHCPを使用する場合、/ etc/network/interfacesで以下を設定できます。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
ethernet-wol g
(Ubuntu 16.04 LTSでテスト済み)。
NetworkManagerを使用する場合、nmcli
を介してWOLを有効にできます。
nmcli connection show
対象のデバイスの「802-3-ehternet」タイプの接続の名前を覚えておいてください。名前が「有線接続1」であるとします。次に、適切に変更します。
nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic
MACアドレスを取得するには:
nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address
これで、wakeonlan 1a:2b:3c:4d:5e:6f
コマンドを使用して、同じLAN上の別のマシンからオフにし、オンにすることができます。ここで、1a:2b:3c:4d:5e:6f
は前のステップのLANカードのMACアドレスです。
これはUbuntu 18.04(ヘッドレス/最小インストール)の下でも私を少し噛みました。残念ながら、ここですでにリストされている答えは、競合状態を作成したりsystemdのようなものと戦ったりするときに信頼できるソリューションを提供しない場合がありますが、 netplanおよびudev。
私も最初にこのアプローチを試しましたが、うまくいくようでした。システムBIOSがスケジュールされたACオンオプションを提供しないため、バックアップを実行するためにWakeOnLanを介して毎晩ブートするようにシステムをスケジュールしています。
それは数日間動作し、その後目を覚ますことを拒否し、手動で電源を入れ、ethtoolを実行するとWoLが無効になっていることが明らかになりました:
Wake-on: d
だから私は他の何かがそれをオフに戻さなければならないと考え、システムドが私がここから始めようと決めたシステムの一部を引き継いで、過去数年間にそのような問題を抱えていたことを見ました。
WakeOnLan = .. ..デフォルトはオフです。
https://www.freedesktop.org/software/systemd/man/systemd.link.html
オンラインの例では、次の行に沿って何かを示しています。
/etc/systemd/network/50-wired.link
[Match]
MACAddress=<MAC ADDRESS>
[Link]
WakeOnLan=magic
これはまだ機能していませんでした。それから私はこれに出くわしました:
udevadm test-builtin net_setup_link /etc/systemd/network/50-wired.link
その結果:
Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link
/run/systemd/network/10-netplan-eno1.linkには何がありますか?
[Match]
MACAddress=<MAC ADDRESS>
[Link]
Name=eno1
WakeOnLan=off
Solution次のいずれか:
Systemd .linkファイルを既に持っているので、単に00-wired.linkに名前を変更し、再起動して、今ではethtool eno1が報告します:
Wake-on: g
WoLを有効にすることのみを目的とした追加サービスはありません。