Cách bật Wake On Lan (WOL) trong Ubuntu 16.04


26

Làm cách nào để bật Wake On Lan (WOL) trong Ubuntu 16.04 LTS?

Câu trả lời:


21

Tôi đã tìm thấy một cách tốt hơn mà làm việc cho tôi. Ít nhất là một cách sạch hơn. Rõ ràng Ubuntu đã thay đổi mới bắt đầu cho systemd , trong Ubuntu 15.04, Ubuntu 16.04 và có lẽ cũng là phiên bản tiếp theo. Tôi mới sử dụng cả hai hệ thống nhưng điều này hiệu quả với tôi.

Tôi gửi bài này vì trong khi googling Ubuntu 16 wol và tìm kiếm tương tự khác tôi đi qua với bài này nhiều lần. Điều này có thể giúp đỡ người khác.

Để giữ cho WOL hoạt động, tôi phải kích hoạt lại mỗi khi hệ thống khởi động. Để tránh làm điều này bằng tay, tôi đã sử dụng systemd cho mục đích này. Đây là những gì tôi đã làm:

  1. Đầu tiên, tạo tập tin /etc/systemd/system/wol@.service(giữ biểu tượng @). Đặt cái này trong đó:

    [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. Kích hoạt tính năng này cho giao diện khi khởi động, chạy lệnh sau (thay đổi eth3 bằng giao diện của bạn):

    systemctl enable wol@eth3
    

    Bạn sẽ thấy một cái gì đó như thế này:

    Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
    
  3. Để kiểm tra xem nó đã được bật chưa, hãy chạy lệnh sau (thay đổi eth3 bằng giao diện của bạn) và nó sẽ trả về enabled:

    systemctl is-enabled wol@eth3
    
  4. Để kiểm tra điều này, hãy khởi động lại và chạy (thay đổi eth3 với giao diện của bạn):

    ethtool eth3
    

    Bạn sẽ thấy một dòng với những điều sau đây:

    Wake-on: g
    

Nguồn:


2
+1 đây là cách tốt hơn. nên là người được chấp nhận
Stefanos Kalantzis

19

Trong Ubuntu 16,04 bộ WOL_DISABLE=Ntrong /etc/default/tlpđể tránh bị WOL vô hiệu hóa bởi quản lý điện năng TLP.

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

Thêm NETDOWN=novào /etc/default/haltđể tránh tắt nguồn card mạng trong khi tắt máy

Kích hoạt Wake on LAN /etc/network/interfaceskhi sử dụng cấu hình mạng tĩnh.

# 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

Cho phép đánh thức trên lan trong BIOS, nhập thiết lập BIOS và tìm kiếm một thứ gọi là "Đánh thức sự kiện PCI", "Thức dậy trên mạng LAN" hoặc tương tự. Thay đổi nó để nó được kích hoạt. Lưu cài đặt của bạn và khởi động lại.

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

Cảnh báo một số bo mạch chủ / bộ điều khiển mạng không hỗ trợ WOL từ trạng thái khởi động nguội (trạng thái S5, nơi nguồn điện cho hệ thống bị tắt và bật lại một cách vật lý). Trong trường hợp đó, ít nhất một chu kỳ nguồn (bật nguồn, tắt máy) phải được thực hiện. Để giảm thiểu sự cố, BIOS có thể được cấu hình để bật nguồn khi AC được khôi phục và lên lịch tắt máy bên trong Ubuntu sau đó. Tham khảo hướng dẫn của bo mạch chủ để biết thêm chi tiết.


Điều này làm việc cho tôi vào ngày 14.04 LTS. Cảm ơn bạn!
TenLeftFingers

hai ý kiến về WOL_DISABLE=NNETDOWN=nonên là một phần của help.ubuntu.com/community/WakeOnLan
Alecz

3

Để WOL hoạt động, đảm bảo giao diện ethernet của bạn được hệ thống của bạn tắt đúng cách khi bạn tắt nguồn.

Hãy thử như sau:

  1. Tạo tập lệnh bash có tên wol_poweroff.sh trên thư mục /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Đặt mã này vào nó:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Sao chép nó vào thư mục /etc/rc0.d (vì vậy nó cũng hoạt động với tạm dừng ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Làm cho cả hai thực thi:

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

Bây giờ hãy kiểm tra xem nó có hoạt động không bằng cách tắt nguồn máy của bạn bằng sudo shutdown nowhoặc sudo poweroffsử dụng công cụ WOL để gửi gói ma thuật đến nó.


Đó là điều duy nhất làm việc cho tôi. Tôi tìm thấy các bước đó tại một báo cáo lỗi tại launchpad.net.

Theo tác giả, Robbie Williamson, điều này hoạt động vì những điều sau đây:

Để WOL hoạt động, giao diện ethernet phải được đưa xuống đúng cách như là một phần của việc tắt hệ thống. Điều này nên được thực hiện như một phần của các cấp độ chạy RC0 và RC6, lưu ý rằng Linux thường có 7 cấp độ chạy khác nhau (hoặc chế độ hoạt động):

RC0.d - Hệ thống tạm dừng

RC1.d - Chế độ người dùng đơn

RC2.d - Chế độ một người dùng với mạng

RC3.d - Chế độ nhiều người dùng - khởi động ở chế độ văn bản

RC4.d - Chưa được xác định

RC5.d - Chế độ nhiều người dùng - khởi động trong X Windows

RC6.d - Tắt máy và khởi động lại


Nguồn: https://bugs.launchpad.net/ubfox/+source/ifupdown/+orms/981461


2

Chạy các mục sau trong thiết bị đầu cuối:

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

bạn sẽ thấy một g bên cạnh để đánh thức lan sau khi viết lệnh thứ hai

nguồn


2

Nếu bạn sử dụng Trình quản lý mạng, thì bạn có thể bật WOL qua nmcli:

nmcli connection show

Hãy nhớ TÊN kết nối của LOẠI "802-3-ehternet" cho THIẾT BỊ quan tâm. Nói tên của nó là "Kết nối có dây 1". Sau đó sửa đổi nó cho đúng:

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

Để lấy địa chỉ MAC của nó:

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

Từ giờ bạn có thể tắt và bật nó từ một máy khác trên cùng mạng LAN bằng wakeonlan 1a:2b:3c:4d:5e:6flệnh, 1a:2b:3c:4d:5e:6fđịa chỉ MAC của thẻ LAN từ bước trước.


1

Ngoài các tham số được đề xuất bởi @nkef, bạn có thể đặt các giao diện trong / etc / network / sau đây nếu bạn sử dụng DHCP thay vì cài đặt IP tĩnh cho bộ điều hợp LAN (ở đây có tên eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(đã thử nghiệm trên Ubuntu 16.04 LTS).


1

Điều này chỉ giúp tôi hiểu được Ubuntu 18.04 (cài đặt không đầu / tối thiểu), thật không may, các câu trả lời đã được liệt kê ở đây mặc dù đôi khi chúng dường như không hoạt động để cung cấp giải pháp đáng tin cậy khi chúng tạo điều kiện chạy đua hoặc chiến đấu với hệ thống như, kế hoạch mạng và udev.

Ban đầu tôi cũng đã thử cách tiếp cận này và nó dường như hoạt động, tôi đang lên lịch cho một hệ thống khởi động vào mỗi buổi tối thông qua WakeOnLan để chạy các bản sao lưu vì BIOS hệ thống không cung cấp tùy chọn AC theo lịch trình.

Nó sẽ hoạt động trong vài ngày và sau đó từ chối thức dậy, bật nguồn bằng tay và chạy ethtool tiết lộ rằng WoL đã bị vô hiệu hóa:

    Wake-on: d

Vì vậy, tôi đã tìm ra một thứ khác phải tắt nó đi và gặp nhiều vấn đề như vậy trong vài năm qua với việc systemd tiếp quản các bộ phận của hệ thống, tôi quyết định bắt đầu ở đây, lo và kìa:

WakeOnLan = .. .. Mặc định tắt.

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

Các ví dụ trực tuyến cho thấy một cái gì đó dọc theo dòng:

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

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Làm thế nào điều này vẫn không hoạt động. Sau đó, tôi đã đi qua điều này:

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

dẫn đến:

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

Và tôi tìm thấy gì trong /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Giải pháp :

  1. loại bỏ kế hoạch mạng,
  2. thiết lập mạng thông qua cấu hình netplan,
  3. hoặc đặt tệp systemd .link để có mức ưu tiên cao hơn.

Vì tôi đã có tệp systemd .link, tôi chỉ cần đổi tên thành 00-wired.link, khởi động lại và bây giờ báo cáo ethtool eno1:

    Wake-on: g

Không có bất kỳ dịch vụ bổ sung nào chỉ nhằm mục đích cố gắng kích hoạt WoL.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.