Ubuntu 16.04でWake On Lan(WOL)を有効にする方法


26

Ubuntu 16.04 LTSでWake On Lan(WOL)を有効にする方法は?

回答:


21

自分に合ったより良い方法を見つけました。少なくともクリーンな方法。Ubuntu はUbuntu 15.04、Ubuntu 16.04およびおそらく次のバージョンでもsystemdの新興企業を変更したようです。私は両方のシステムに慣れていないが、これは私のために働いた。

一方、ので、私はこれを掲示していグーグル Ubuntuの16 WOLや他の類似検索を、私はこの記事で数回に出くわしました。これは他の人を助けることができます。

WOLを機能させるには、システムが起動するたびにWOLを再度有効にする必要がありました。これを手動で行うことを避けるために、この目的でsystemdを使用しました。これは私がやったことです:

  1. まず、ファイルを作成します/etc/systemd/system/wol@.service(@記号を保持します)。これを入れてください:

    [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
    
  2. 起動時のインターフェースでこれを有効にし、次のコマンドを実行します(インターフェースでeth3を変更します):

    systemctl enable wol@eth3
    

    次のようなものが表示されるはずです。

    Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
    
  3. 有効になっているかどうかを確認するには、次のコマンドを実行し(インターフェースでeth3を変更します)、次のコマンドが返されenabledます。

    systemctl is-enabled wol@eth3
    
  4. これをテストするには、再起動して実行します(インターフェースでeth3を変更します):

    ethtool eth3
    

    次の行が表示されます。

    Wake-on: g
    

ソース:

  • SystemdForUpstartUsers-Ubuntu Wiki
  • Wake-on-LAN-ArchWiki
  • systemd-ArchWiki
  • 新興企業:

    Upstartは、/ sbin / initデーモンのイベントベースの置換であり、ブート中のタスクとサービスの開始を処理し、シャットダウン中にそれらを停止し、システムの実行中にそれらを監視します。
    - 成り上がり-イベントベースのinitデーモン

  • systemd:

    systemdは、Linuxシステムの基本的なビルディングブロックのスイートです。PID 1として実行され、システムの残りを起動するシステムおよびサービスマネージャーを提供します。(...)
    - systemd


2
+1これははるかに優れています。受け入れられるべきです。
ステファノスカランツィス

19

Ubuntu 16.04では、TLP電源管理によってWOLが無効WOL_DISABLE=N/etc/default/tlpならないように設定されています。

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をサポートしていません(システムへの電源が物理的にオフになり、再びオンになるS5状態)。その場合、少なくとも1つの電源サイクル(電源投入、シャットダウン)を実行する必要があります。問題を軽減するために、ACが復元されたときに電源を入れ、その後Ubuntu内でシャットダウンをスケジュールするようにBIOSを構成できます。詳細については、マザーボードのマニュアルを参照してください。


これは14.04 LTSで機能しました。ありがとうございました!
TenLeftFingers

これら2つのコメントWOL_DISABLE=NとはNETDOWN=noの一部であるべきhelp.ubuntu.com/community/WakeOnLan
Alecz

3

WOLが機能するためには、電源オフ時にイーサネットインターフェイスがシステムによって適切にシャットダウンされていることを確認してください。

以下を試してください:

  1. 呼ばれるbashスクリプト作成wol_poweroff.sh/etc/rc6.d/ディレクトリを:

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. このコードを入れてください:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. /etc/rc0.dディレクトリにコピーします(したがって、haltでも動作します)。

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. 両方を実行可能にします:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

今では、とあなたのマシンの電源を切ることで動作するかどうかを確認するためのテストsudo shutdown nowsudo 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


2

ターミナルで次を実行します。

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

2番目のコマンドを書いた後、LANで起動する横にgが表示されるはずです。

ソース


2

NetworkManagerを使用する場合、次の方法でWOLを有効にできますnmcli

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アドレスです。


1

LANアダプタ(ここではeth0という名前)の静的IP設定の代わりにDHCPを使用する場合、@ nkefによって提案されたパラメータに加えて、/ etc / network / interfacesで以下を設定できます。

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(Ubuntu 16.04 LTSでテスト済み)。


1

これは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

解決策

  1. ネットプランを削除し、
  2. ネットプラン構成を介してネットワークをセットアップします。
  3. または、systemd .linkファイルに高い優先度を設定します。

既にsystemd .linkファイルを持っているので、単純にファイル名を00-wired.linkに変更し、再起動して、今ではethtool eno1がレポートします。

    Wake-on: g

WoLを有効にすることのみを目的とした追加サービスはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.