要想要开启网络唤醒,首先就要在电脑的 BIOS 中开启网络唤醒功能。这个每个电脑的 BIOS 都有自己不同的设置方式,所以请根据实际情况进行设置。配置好了后就可以进入系统中进行配置了。

安装 ethtool

首先,你需要安装 ethtool 工具。在 Debian 中,你可以使用以下命令进行安装:

1
2
sudo apt update -y
sudo apt install ethtool -y

确认网卡

要确认你的网卡名称,你可以使用以下命令:

1
ip link show

输出结果中,你需要找到你的网卡名称。我的网卡是名称是 enp3s0。记住这个名称。

查看网卡状态

要查看你的网卡状态,你可以使用以下命令:

1
ethtool enp3s0

输出结果中,你需要找到 Supports Wake-on 行。后面一般是pumbg,表示支持多种唤醒方式,其中 g 是Magic Packet唤醒,就是我们常说的Wake-on-LAN

下面一行的Wake-on后面的参数代表当前的状况,一般默认都是d,表示目前是禁用状态。

启用Wake-on-LAN

临时启用Wake-on-LAN

1
sudo ethtool -s enp2s0 wol g

这个重启就会失效了。

要永久可以使用一些开机脚本来设置,这里使用了systemd

创建一个文件,目录如下命令。

1
sudo vim /etc/systemd/system/wol@.service

输入以下内容:

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=Enable Wake-on-LAN for %i
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -s %i wol g

[Install]
WantedBy=multi-user.target

说明:

  • %i 是 systemd 的占位符,表示当前正在使用的网卡名称。
  • oneshot 类型表示只执行一次命令即可。

创建好后我们就可以启用服务了(指定的是我的网卡名字 enp2s0 这里根据自己的修改)。

1
2
sudo systemctl enable wol@enp2s0.service
sudo systemctl start wol@enp2s0.service

验证是否成功

验证是否成功,我们可以继续使用 ethtool 命令查看网卡的唤醒状态。

1
ethtool enp2s0 | grep Wake

应该会输出:

1
2
Supports Wake-on: pumbg
Wake-on: g

然后就可以通过一些网络唤醒软件来唤醒你的计算机了。