Cara mengaktifkan Wake On Lan (WOL) di Ubuntu 16.04

26

Bagaimana cara mengaktifkan Wake On Lan (WOL) di Ubuntu 16.04 LTS?

nkef
sumber

Jawaban:

21

Saya telah menemukan cara yang lebih baik untuk saya. Setidaknya dengan cara yang lebih bersih. Rupanya Ubuntu berubah menjadi pemula untuk systemd , di Ubuntu 15.04, Ubuntu 16.04 dan mungkin juga versi berikutnya. Saya baru di kedua sistem tetapi ini bekerja untuk saya.

Saya memposting ini karena saat googling Ubuntu 16 wol dan pencarian serupa lainnya saya menemukan posting ini beberapa kali. Ini bisa membantu orang lain.

Agar WOL tetap berfungsi, saya harus mengaktifkannya kembali setiap kali sistem boot. Untuk menghindari melakukan ini secara manual saya menggunakan systemd untuk tujuan ini. Inilah yang saya lakukan:

  1. Pertama, buat file /etc/systemd/system/[email protected](simpan simbol @). Taruh ini di dalamnya:

    [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. Aktifkan ini untuk antarmuka saat boot, jalankan perintah berikut (ubah eth3 dengan antarmuka Anda):

    systemctl enable wol@eth3
    

    Anda harus melihat sesuatu seperti ini:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. Untuk memeriksa apakah itu diaktifkan, jalankan perintah berikut (ubah eth3 dengan antarmuka Anda) dan harus kembali enabled:

    systemctl is-enabled wol@eth3
    
  4. Untuk menguji ini, reboot dan jalankan (ubah eth3 dengan antarmuka Anda):

    ethtool eth3
    

    Anda harus melihat garis dengan yang berikut:

    Wake-on: g
    

Sumber:

loco.loop
sumber
2
+1 ini jauh lebih baik. harus menjadi yang diterima.
Stefanos Kalantzis
19

Di Ubuntu 16.04 set WOL_DISABLE=Ndi /etc/default/tlpuntuk menghindari WOL dinonaktifkan oleh manajemen daya TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Menambahkan NETDOWN=nodalam /etc/default/haltuntuk mencegah mematikan kartu jaringan selama shutdown

Aktifkan Wake on LAN /etc/network/interfacesketika konfigurasi jaringan statis digunakan.

# 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

Aktifkan wake on lan di BIOS, masuk ke pengaturan BIOS dan cari sesuatu yang disebut "Wake up on PCI event", "Wake up on LAN" atau yang serupa. Ubahlah agar diaktifkan. Simpan pengaturan Anda dan reboot.

https://help.ubuntu.com/community/WakeOnLan

Peringatan beberapa motherboard / pengontrol jaringan tidak mendukung WOL dari cold boot (kondisi S5, di mana daya ke sistem dimatikan dan dihidupkan kembali secara fisik). Dalam hal ini, setidaknya satu siklus daya (power up, shutdown) harus dilakukan. Untuk mengurangi masalah, BIOS dapat dikonfigurasi untuk menyala ketika AC dipulihkan dan menjadwalkan penghentian di dalam Ubuntu sesudahnya. Lihat manual motherboard untuk detail lebih lanjut.

nkef
sumber
Ini bekerja untuk saya pada 14,04 LTS. Terima kasih!
TenLeftFingers
dua komentar tentang WOL_DISABLE=Ndan NETDOWN=noharus menjadi bagian dari help.ubuntu.com/community/WakeOnLan
Alecz
3

Jalankan yang berikut ini di terminal:

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

Anda akan melihat g di samping untuk bangun pada lan setelah menulis perintah kedua

sumber

Marwan Nabil
sumber
3

Agar WOL berfungsi, pastikan antarmuka ethernet Anda dimatikan dengan benar oleh sistem saat dimatikan.

Coba yang berikut ini:

  1. Buat skrip bash bernama wol_poweroff.sh di direktori /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Masukkan kode ini di dalamnya:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Salin ke direktori /etc/rc0.d (jadi ini juga berfungsi dengan berhenti ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Jadikan keduanya dapat dieksekusi:

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

Sekarang uji untuk melihat apakah itu bekerja dengan mematikan mesin Anda dengan sudo shutdown nowatau sudo poweroffdan menggunakan alat WOL untuk mengirim paket ajaib ke sana.


Itulah satu-satunya hal yang berhasil untuk saya. Saya menemukan langkah-langkah itu di laporan bug di launchpad.net.

Menurut penulis, Robbie Williamson, ini bekerja karena hal berikut:

Agar WOL berfungsi, antarmuka ethernet harus diturunkan dengan benar sebagai bagian dari penutupan sistem. Ini harus dilakukan sebagai bagian dari run level rc0 dan rc6, mencatat bahwa Linux biasanya memiliki 7 level run yang berbeda (atau mode operasi):

rc0.d - Sistem Dihentikan

rc1.d - Mode Pengguna Tunggal

rc2.d - Mode Pengguna Tunggal dengan Jaringan

rc3.d - Mode Multi-Pengguna - boot dalam mode teks

rc4.d - Belum Didefinisikan

rc5.d - Mode Multi-Pengguna - boot di X Windows

rc6.d - Shutdown & Reboot


Sumber: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

Edson Jr.
sumber
2

Jika Anda menggunakan NetworkManager, maka Anda dapat mengaktifkan WOL melalui nmcli:

nmcli connection show

Ingatlah NAMA koneksi dari TYPE "802-3-ehternet" untuk PERANGKAT yang menarik. Sebut namanya "Koneksi kabel 1". Kemudian modifikasi dengan benar:

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Untuk mendapatkan alamat MAC-nya:

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

Mulai sekarang Anda dapat mematikannya dan menyalakannya dari mesin lain pada LAN yang sama dengan wakeonlan 1a:2b:3c:4d:5e:6fperintah, di mana 1a:2b:3c:4d:5e:6falamat MAC kartu LAN dari langkah sebelumnya.

Mengorientasikan
sumber
1

Selain parameter yang disarankan oleh @nkef Anda dapat mengatur yang berikut ini di / etc / network / interfaces jika Anda menggunakan DHCP alih-alih pengaturan IP statis untuk adaptor LAN (di sini bernama eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(diuji pada Ubuntu 16.04 LTS).

rpr
sumber
1

Ini hanya menggigit saya juga di bawah Ubuntu 18.04 (headless / minimal install), sayangnya jawaban yang sudah tercantum di sini meskipun mereka tampaknya bekerja kadang-kadang tidak akan memberikan solusi yang dapat diandalkan karena mereka menciptakan kondisi balapan atau bertarung dengan orang-orang seperti systemd, netplan dan udev.

Saya telah mencoba pendekatan ini juga pada awalnya dan sepertinya berhasil, saya menjadwalkan sistem untuk boot setiap malam melalui WakeOnLan untuk menjalankan backup karena sistem BIOS tidak menyediakan AC yang dijadwalkan pada opsi.

Ini akan bekerja selama beberapa hari dan kemudian menolak untuk bangun, menyalakannya secara manual dan menjalankan ethtool mengungkapkan bahwa WoL telah dinonaktifkan:

    Wake-on: d

Jadi saya pikir sesuatu yang lain harus mematikannya dan memiliki banyak masalah seperti itu dalam beberapa tahun terakhir dengan systemd mengambil alih bagian dari sistem saya memutuskan untuk mulai di sini, lihatlah:

WakeOnLan = .. .. Default ke mati.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

Contoh online menunjukkan sesuatu di sepanjang baris:

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Bagaimana pun ini masih tidak berhasil. Lalu saya menemukan ini:

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

yang menghasilkan:

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

Dan apa yang saya temukan di /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Solusi :

  1. hapus netplan,
  2. pengaturan jaringan melalui konfigurasi netplan,
  3. atau atur file systemd .link ke prioritas yang lebih tinggi.

Karena saya sudah memiliki file systemd .link, saya cukup menamainya menjadi 00-wired.link, reboot dan sekarang laporan ethtool eno1:

    Wake-on: g

Tanpa layanan tambahan semata-mata dengan tujuan mencoba mengaktifkan WoL.

Daniel Squires
sumber