要启用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 设置或者开机自启配置。只要一步步来,一般都能成功启用。