nmcli 不支持直接配置网卡节能模式(如 EEE),必须使用 ethtool 工具操作硬件寄存器;需先确认网卡驱动与对端设备支持,再通过 ethtool --set-eee 启用,并借助 systemd 或 NetworkManager dispatcher 实现持久化。

nmcli 本身不支持直接配置网卡的节能模式(如 EEE,Energy Efficient Ethernet)。EEE 是底层网卡硬件与驱动协同实现的特性,属于物理层控制,NetworkManager(及其命令行工具 nmcli)仅管理网络连接逻辑(IP、路由、DHCP、认证等),无法触达 MAC/PHY 级的节能寄存器或 ethtool 参数。
要启用或禁用 EEE,必须使用专用工具 ethtool,并确认网卡硬件、固件和驱动均支持该功能。
✅ 确认网卡是否支持并启用 EEE
# 查看网卡名(例如 enp0s3、eth0、eno1) nmcli device status | grep ethernet # 检查 EEE 状态(替换 enp0s3 为你的网卡名) ethtool -a enp0s3
输出示例:
Supports EEE: Yes Advertised EEE : 0x0000001e Link partner EEE: 0x0000001e EEE active: yes
-
Supports EEE: Yes→ 硬件支持 -
EEE active: yes→ 当前已协商启用
若显示 EEE active: no,但 Supports EEE: Yes,说明链路未协商成功(可能对端设备不支持或被禁用)。
⚙️ 启用/禁用 EEE(需 root 权限)
# 启用 EEE(并强制重协商链路) sudo ethtool --set-eee enp0s3 eee on # 禁用 EEE sudo ethtool --set-eee enp0s3 eee off # 查看当前设置(含自适应开关) sudo ethtool --show-eee enp0s3
⚠️ 注意:部分网卡(如某些 Realtek 或老旧 Intel 型号)驱动不支持
--set-eee,执行会报错Operation not supported。此时 EEE 只能由 BIOS/UEFI 或固件控制,或不可调。
? 让 EEE 设置持久化(重启不失效)
ethtool 命令是临时生效的,重启后恢复默认。要持久化:
方法一:通过 systemd 服务(推荐)
创建 /etc/systemd/system/enable-eee@.service:
[Unit] Description=Enable EEE on %I After=network-pre.target [Service] Type=oneshot ExecStart=/usr/bin/ethtool --set-eee %I eee on RemainAfterExit=yes [Install] WantedBy=multi-user.target
启用服务(以 enp0s3 为例):
sudo systemctl daemon-reload sudo systemctl enable enable-eee@enp0s3.service sudo systemctl start enable-eee@enp0s3.service
方法二:在 NetworkManager 连接中追加 post-up 脚本(兼容性更好)
# 编辑连接(例如名为 "Wired connection 1")
sudo nmcli connection modify "Wired connection 1" \
+connection.secondary "ethtool-enp0s3" \
+connection.permissions ""
# 创建 ethtool 配置文件(NetworkManager 会自动调用)
sudo tee /etc/NetworkManager/dispatcher.d/99-enable-eee <<'EOF'
#!/bin/bash
if [ "$1" = "enp0s3" ] && [ "$2" = "up" ]; then
/usr/bin/ethtool --set-eee enp0s3 eee on 2>/dev/null
fi
EOF
sudo chmod +x /etc/NetworkManager/dispatcher.d/99-enable-eee
sudo systemctl restart NetworkManager? 平衡功耗与性能损耗的实用建议
- EEE 在低流量时可降低功耗 10%–30%,但会引入约 5–50 μs 的额外延迟(取决于芯片),对普通办公/上网无感,但对高频交易、实时音视频或 RDMA 场景需评估。
- 若网卡长期满载(如 NAS、虚拟化宿主机),EEE 效果有限,可关闭以换取确定性延迟。
- 建议先用
ethtool -S enp0s3 | grep eee查看eee_wakeup_errors计数 —— 若持续增长,说明链路不稳定,应禁用 EEE。
不复杂但容易忽略:EEE 不是“开就省电”,它依赖两端设备同时支持且协商一致;单侧开启无效,且某些交换机端口需手动启用 lldp transmit 或 eee enable 才能配合。



















