我有两台机器,都运行Ubuntu18.04。我的目标是让WOL在这两台机器上工作。
在一台机器(PC1)上,我的WOL工作得很好,但是我不能让WOL在另一台机器(PC2)上工作。
我(在两台电脑上)的设置是:
我已禁用网络管理器如下:
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager我启用了网络,具体如下:
sudo systemctl unmask systemd-networkd.service
sudo systemctl enable systemd-networkd.service
sudo systemctl start systemd-networkd.service我修改了目录/etc/netplan中的唯一文件,即/etc/netplan/01-netplan all.yaml,因此它看起来如下(PC1):
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- 192.168.1.113/24
gateway4: 192.168.1.1
wakeonlan: true
nameservers:
addresses: [103.86.96.100, 103.86.99.100]PC2完全相同,除了eno1是enp1s0和IP地址是不同的(当然)。
两台机器都启动良好,以太网连接正常,我可以从两台机器访问互联网OK。
如果我打字
sudo ethtool enp1s0在PC2上我得到了这个(摘录):
Supports Wake-on: pumbg
Wake-on: d在PC1 (eno1)上我得到(提取)
Supports Wake-on: pumbg
Wake-on: g如果我输入(在PC2上):
sudo ethtool -s enp1s0 wol g 然后
sudo ethtool enp1s0我得到了
Supports Wake-on: pumbg
Wake-on: g如果然后关闭PC2,WOL将按预期工作(当然,这只是“一次”)。
如果我将sudo -s enp1s0 wol行放入启动脚本或在PC2上拥有的关闭脚本(两者都具有sudo权限),则WOL无法工作。
我感觉到PC1和PC2之间唯一的区别是主板;PC2有一个千兆字节的GA-H1 10M-S2H;PC1有一个ASUS剑齿X79)
我将非常感谢任何人的任何建议或见解。
提前谢谢。
发布于 2020-02-07 16:08:17
已修复。
结果发现这是司机的问题。千兆字节的NIC是一个Realtek 8168设备;Ubuntu使用的是一个8169驱动程序。为了解决这个问题,我做了以下工作:
sudo apt-get install r8168-dkms这个过程花了一点时间,因为新的驱动程序已经构建并安装到了我的内核中。( dkms确保如果发生任何内核更新,则将自动重新构建新内核)。
我得重新启动才能让WOL工作。
https://askubuntu.com/questions/1208818
复制相似问题