Ubuntu如何配置具体的系统网络接口在低功耗模式下的唤醒策略

夏静酱_8587

夏静酱_8587

2026-08-11

145人浏览

原创

先用sudo ethtool | grep -i "wake-on"查看状态,wake-on: d为禁用、g为启用;再执行sudo ethtool -s wol g临时启用,需配合systemd服务或udev规则实现持久化。

ubuntu如何配置具体的系统网络接口在低功耗模式下的唤醒策略

如何用 ethtool 查看并设置网卡 Wake-on-LAN 状态

Ubuntu 默认不启用关机状态下的网络唤醒,即使 BIOS 已开启 WOL,系统启动后仍需手动配置网卡的 wol(Wake-on-LAN)标志。关键不是“能不能唤醒”,而是“ethtool 输出里 Wake-on 字段是否为 g”。

先确认接口名:

ip -br a | grep UP

再查支持与当前状态:

sudo ethtool <interface-name> | grep -i "wake-on\|supports wake"</interface-name>
  • Supports Wake-on: pumbg → 表示硬件支持 Magic Packet(g)等模式
  • Wake-on: d → 当前禁用;Wake-on: g → 已启用 Magic Packet 唤醒
  • 若输出含 not supported 或字段全为空,说明驱动/固件未暴露该能力,ethtool -s 强制设 wol g 会失败

启用命令(仅临时生效):

sudo ethtool -s <interface-name> wol g</interface-name>

为什么 systemd 服务启用后 wol g 仍不持久?

常见错误是服务没在正确时机运行:网卡可能尚未完成初始化,ethtool 就执行了,结果被内核忽略。不能只依赖 WantedBy=multi-user.target。

正确做法是让服务等待网卡就绪:

  • 使用 After=network-pre.target 和 Wants=network-pre.target,确保在网卡驱动加载后、地址配置前执行
  • Type=oneshot + RemainAfterExit=yes 防止 systemd 认为服务已退出而不再管理
  • 避免写死 ExecStart=/sbin/ethtool -s eth0 wol g,应改用 udev 规则或接口名通配(见下条)

推荐服务文件 /etc/systemd/system/wol@.service(带实例模板):

Zynq Linux Hardware Debug
Zynq Linux Hardware Debug

Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。

下载
[Unit]
Description=Enable Wake-on-LAN for %I
After=network-pre.target
Wants=network-pre.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s %I wol g
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

启用时指定接口:

sudo systemctl enable wol@enp3s0.service

systemd-sleep 脚本能否控制休眠时网卡行为?

不能直接“唤醒网卡”,但能干预休眠前后的状态。重点在于:Linux 休眠(suspend)时网卡默认断电,post 阶段恢复供电后,NetworkManager 会自动重连,但 WOL 配置不会自动重载。

如果你发现挂起后唤醒,ethtool 显示 Wake-on: d,说明内核重置了该标志。此时应在 post 阶段补回:

  • 脚本路径必须是 /lib/systemd/system-sleep/ 下可执行文件(如 /lib/systemd/system-sleep/wol-restore)
  • 脚本中需判断是否为 post 且接口存在,再执行 ethtool -s <iface> wol g</iface>
  • 注意:不要在 pre 阶段禁用 WOL,否则关机后无法被 Magic Packet 唤醒

简单可靠写法:

#!/bin/sh
if [ "$2" = "suspend" ] && [ "$1" = "post" ]; then
    ip link show enp3s0 >/dev/null 2>&1 && \
        /sbin/ethtool -s enp3s0 wol g
fi

BIOS、驱动、内核参数三者缺一不可

WOL 在 Ubuntu 上失效,80% 情况不是配置问题,而是底层链路断裂。最容易被忽略的是:

  • BIOS 中 WOL 设置名称不统一:可能是 “PME Event Wakeup”、“Resume by PCI/PCI-E Device”、“ErP Ready”(需关)、或 “Deep Sleep” 相关选项 —— 必须确认对应网卡插槽的 PCIe 设备被允许唤醒
  • 某些 Realtek/Intel 网卡需加载特定驱动参数:例如 r8169 驱动对部分 RTL8111 卡默认禁用 WOL,需加内核启动参数 r8169.enable_wol=1,写入 /etc/default/grub 的 GRUB_CMDLINE_LINUX 后 sudo update-grub && sudo reboot
  • USB-C/雷电扩展坞上的有线网卡通常不支持 S5 唤醒:即使 ethtool 显示 g,BIOS 也开了,Magic Packet 发出去也没响应 —— 这是硬件限制,非软件可解

真正稳定的 WOL,必须三者同时满足:BIOS 允许 PCIe 唤醒 + 内核驱动暴露 WOL 控制 + ethtool 成功写入 wol g。少一个,wakeonlan 命令就只是发了个没人收的包。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3148

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4849

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3769

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

446

15

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.10.27

6461

23

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

2023.12.28

2061

8

ubuntu启动黑屏解决方法
ubuntu启动黑屏解决方法

ubuntu启动黑屏解决方法:检查是否是电源问题、检查内存是否接触不良、检查显卡问题等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

2023.12.28

1790

6

为什么ubuntu有网络连接但不能上网
为什么ubuntu有网络连接但不能上网

ubuntu有网络连接但不能上网的原因:1、dns配置问题;2、代理服务器设置问题;3、网络防火墙设置问题;4、路由器或调制解调器设置问题;5、网络驱动程序问题;6、网络配置文件问题;7、其他问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.05

1041

6

ubuntu安装golang
ubuntu安装golang

本专题整合了ubuntu安装golang所有方法汇总,阅读下面的文章了解更多详细操作。

2025.12.13

359

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程