要啟用linux系統的網絡接口喚醒功能,需確認網卡支持并使用ethtool設置。1. 使用 ethtool 確認網卡是否顯示 supports wake-on 字段,如 g 表示支持 magic packet 喚醒;2. 臨時啟用可執行 sudo ethtool -s wol g,其中 g 表示啟用 magic packet 喚醒;3. 永久生效需添加命令到啟動腳本,方法包括編輯 /etc/rc.local 或創建 systemd 服務文件;4. 同時還需在 bios/uefi 中開啟 “wake on lan” 等相關選項,確保主板層面支持。
linux系統下啟用網絡接口的喚醒功能(Wake-on-LAN),可以通過 ethtool 工具進行設置。這項功能在遠程開機、設備維護等場景中非常實用,尤其是在服務器或需要遠程訪問的設備上。
確認網卡支持喚醒功能
并不是所有網卡都默認支持喚醒功能,因此第一步是確認你的網卡是否具備這個能力。
使用以下命令查看:
ethtool <網卡名>
比如:
ethtool eth0
在輸出內容中查找類似 Supports Wake-on: g 或 Wake-on: disabled 的字段:
- g 表示支持通過 Magic Packet 喚醒
- p 表示支持通過特定模式匹配喚醒
- u 表示支持單播消息喚醒
- m 表示支持多播消息喚醒
如果看到的是 disabled,說明當前沒有啟用喚醒功能。
使用 ethtool 啟用喚醒功能
確認網卡支持后,就可以使用 ethtool 來啟用喚醒功能了。
常見的啟用方式如下:
sudo ethtool -s <網卡名> wol g
其中 g 表示只允許 Magic Packet 喚醒,這是最常用的方式。如果你有特殊需求,也可以組合多個選項:
- d:禁用所有喚醒(默認)
- p:模式匹配喚醒
- u:單播喚醒
- m:多播喚醒
- b:廣播喚醒
- a:ARP 請求喚醒
- g:Magic Packet 喚醒
例如同時啟用 Magic Packet 和 ARP 喚醒:
sudo ethtool -s eth0 wol ag
設置開機自動生效
上面的操作只是臨時生效,重啟后會失效。要讓配置永久生效,需要添加到啟動腳本中。
方法一:添加到 rc.local(適用于大多數發行版)
編輯 /etc/rc.local 文件,在 exit 0 之前添加:
ethtool -s eth0 wol g
保存并退出即可。
方法二:創建 systemd 服務(適用于使用 systemd 的系統)
新建一個服務文件,例如:
sudo nano /etc/systemd/system/wol@.service
內容如下:
[Unit] Description=Configure Wake-up-on-LAN for %i After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ethtool -s %i wol g [Install] WantedBy=multi-user.target
然后啟用該服務(以 eth0 為例):
sudo systemctl enable wol@eth0.service
這樣每次開機就會自動設置好喚醒功能。
BIOS/UEFI 中開啟相關選項
除了 Linux 系統層面的設置,還需要確保主板 BIOS/UEFI 中啟用了 Wake-on-LAN 功能。不同品牌主板入口和選項名稱略有差異,但通常可以在以下位置找到:
- Power Management Setup
- Advanced Settings
- Integrated Peripherals
查找類似 “Power On by LAN”、“Wake on LAN” 或 “Resume by LAN” 的選項,并設為 Enabled。
基本上就這些。操作不復雜,但容易忽略某些細節,比如 BIOS 設置或者開機自啟配置。只要一步步來,一般都能成功啟用。