web-dev-qa-db-ja.com

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

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

24
nkef

自分に合ったより良い方法を見つけました。少なくともクリーンな方法。これは、googlingUbuntu 16 wolおよび他の同様の検索で見つけたため、これを投稿しています数回投稿します。これは他の人を助けることができます。

Ubuntuはupstartsystemdに変更したようです。これはUbuntu 15、Ubuntu 16、そしておそらく次のバージョンでも同様です。私は両方のシステムに慣れていないが、これは私のために働いた。

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

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

    systemctl enable wol@eth3
    

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

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  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デーモンのイベントベースの置換であり、ブート中のタスクとサービスの開始を処理し、シャットダウン中にそれらを停止し、システムの実行中にそれらを監視します。
    - pstart-イベントベースのinitデーモン

  • ststemd:

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

21
loco.loop

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を構成できます。詳細については、マザーボードのマニュアルを参照してください。

18
nkef

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

以下を試してください:

  1. wol_poweroff.shというbashスクリプトを/ 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 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

3
Edson Jr.

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

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

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

ソース

2
Marwan Nabil

@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でテスト済み)。

1
rpr

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

1
Orient

これは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次のいずれか:

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

Systemd .linkファイルを既に持っているので、単に00-wired.linkに名前を変更し、再起動して、今ではethtool eno1が報告します:

    Wake-on: g

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

0
Daniel Squires