我正在双启动 Ubuntu 18.04 和 Windows 10。如果我使用 Windows 关闭计算机,我可以使用 WOL 将其重新打开。但是,如果我使用 Ubuntu 关闭计算机,则使用 WOL 时计算机将无法重新打开。
有办法解决这个问题吗?
下列的这个答案我尝试了以下操作,但没有效果:
ignacio@ignacio-XPS-8930:~$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:cff:fea4:9a1e prefixlen 64 scopeid 0x20<link>
ether 02:42:0c:a4:9a:1e txqueuelen 0 (Ethernet)
RX packets 93 bytes 19417 (19.4 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 173 bytes 29457 (29.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.86.31 netmask 255.255.255.0 broadcast 192.168.86.255
inet6 fe80::955b:12c8:20b9:7645 prefixlen 64 scopeid 0x20<link>
ether d8:9e:f3:85:42:8a txqueuelen 1000 (Ethernet)
RX packets 2879 bytes 2068361 (2.0 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2313 bytes 515874 (515.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 355 bytes 27658 (27.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 355 bytes 27658 (27.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth76213c1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::5c2b:3aff:fea8:d68c prefixlen 64 scopeid 0x20<link>
ether 5e:2b:3a:a8:d6:8c txqueuelen 0 (Ethernet)
RX packets 93 bytes 20719 (20.7 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 214 bytes 34037 (34.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp3s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 5c:ea:1d:4c:61:a7 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ignacio@ignacio-XPS-8930:~$ ifconfig enp4s0 | grep "HWaddr" | awk '{print $5}'
ignacio@ignacio-XPS-8930:~$ /sbin/ethtool -s enp4s0 wol g
Cannot get current wake-on-lan settings: Operation not permitted
not setting wol
我也尝试使用 sudo:
ignacio@ignacio-XPS-8930:~/docker/greta$ sudo /sbin/ethtool -s enp4s0 wol g
[sudo] password for ignacio:
Cannot get current wake-on-lan settings: Operation not supported
not setting wol
答案1
我刚刚在将两台正确配置的机器升级到 18.04 后遇到了这个问题。我记得 Ubuntu 已经迁移到 netplan,并在 paulgj 的回答中找到了答案论坛这让我再次使用它。你可以尝试这个,如果现有的答案不起作用。
我通过添加 macaddress 匹配行使其工作,这是完整的 .yaml 文件:
network: version: 2 renderer: networkd ethernets: enp2s0: match: macaddress: 50:e5:49:b3:fc:97 dhcp4: true wakeonlan: true
注意:您需要更改enp2s0
并使用扩展程序50:e5:49:b3:fc:97
保存它。我希望此配置不会禁用任何会在接下来的几周困扰我的东西。/etc/netplan/
.yaml
编辑:对于桌面,您应该renderer: networkd
用替换renderer: NetworkManager
,然后运行sudo netplan apply
。
答案2
这是一个老话题,但没有被接受的答案,我的问题也类似,只是它是一台双启动 MacOS 和 Ubuntu 18.04 的 Mac Mini;在 Mac 挂起时,我可以从 Windows 10 机器上 WOL;在 Ubuntu 挂起时什么也没有发生……
我也有:
marcelo@Ubuntu-Macmini:~$ sudo ethtool -s wlp3s0 wol g
[sudo] senha para marcelo:
Cannot get current wake-on-lan settings: Operation not supported
not setting wol
因此,我完成了所有步骤这个问题,更好地解释这里但它仍然不起作用;但我读过这个线和:
做了
sudo lshw -C network
*-network descrição: Ethernet interface produto: NetXtreme BCM57765 Gigabit Ethernet PCIe fabricante: ... nome lógico: enp2s0f0 ... autonegotiation=on broadcast=yes ***driver=tg3***
在此之后,知道司机是tg3:
sudo gedit /etc/default/acpi-support
我改变了
# Add modules to this list to leave them in the kernel over suspend/resume MODULES_WHITELIST=""
到
MODULES_WHITELIST="tg3"
重新启动网络服务后,它就可以正常工作了,但只有使用 Magic Packets 时才有效,这很酷;为了提供 Magic Packets,我使用了一个 Python 脚本,改编自这里;我说改编是因为这个脚本适用于 Python 2,而我的设置是 Python 3。希望这对某些人有帮助。
答案3
由于它在 Windows 中可以正常工作,因此您知道问题出在 Linux 操作系统中,因此解决方案是...视情况而定。无论哪种方式,您都需要知道网络接口的名称。运行以下命令:
ip a
具有 IPv4 地址的接口(不是环回接口)就是我们要找的接口。输出如下所示:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:f1:bb:ec brd ff:ff:ff:ff:ff:ff
inet 192.168.1.12/24 brd 192.168.1.255 scope global dynamic ens160
valid_lft 5919sec preferred_lft 5919sec
inet6 fe80::20c:29ff:fef1:bbec/64 scope link
valid_lft forever preferred_lft forever
所以这个系统上的界面是ens160
。
网络管理器
请参阅此帖子:如何在 Ubuntu 16.04 中启用网络唤醒 (WOL)如果下面的方法不管用,还有另一种方法(我公然偷来的机车循环),这也许就是您所需要的。
如果您使用 Ubuntu 桌面 ISO 安装系统,那么您将使用 NetworkManager 来控制网络接口,并且您需要执行以下操作:
Systemd 是 Ubuntu 决定采用的方式,因此我们最好习惯它,并在每次系统启动时使用它来打开 WOL。创建并添加以下内容:/etc/systemd/system/[email protected]
[Unit]
Description=Wake-on-LAN for %i
Requires=network.target
After=network.target
[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot
[Install]
WantedBy=multi-user.target
接下来我们需要启用该服务在启动时运行:
sudo systemctl enable wol@enp3
sudo systemctl start wol@enp3
网络计划
如果你更有冒险精神,安装了 Ubuntu Server,那么你的界面将通过 systemd-networkd 进行控制,Ubuntu 已添加 Netplan.io 前端来帮助配置它。目录中将有一个 YAML 文件,/etc/netplan/
格式为:0X-something.yaml
,让我们看一下:
/etc/netplan/50-cloud.init.yaml
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
ens160:
dhcp4: true
vlans:
mgmt.10:
id: 10
link: ens160
dhcp4: true
dhcp6: false
user.20:
id: 20
link: ens160
dhcp4: true
dhcp6: false
只需将“wakeonlan: true”添加到 ens160 部分即可。因此它看起来像这样:
...
network:
version: 2
ethernets:
ens160:
dhcp4: true
wakeonlan: true
vlans:
mgmt.10:
...
这是一个 YAML 文件,它们对间距非常挑剔,因此请确保您添加的文本与该部分中的其他文本直接对齐。
现在我们需要生成、测试和应用新的配置(生成步骤不是完全必要的,但为了完整性我在这里将其包含进来):
sudo netplan generate
sudo netplan try
假设测试成功,如果没有成功,配置将恢复,而且你很可能输入了错误的格式,现在运行:
sudo netplan apply
答案4
@LiveWireBT 的回答对我有用。
https://askubuntu.com/a/1072862/874871
apply
更改配置后,请不要忘记运行该命令。
$ sudo netplan apply