如何使用任何数据包唤醒我的 PC,而不仅仅是一个魔术数据包?

Nat*_*man 6 networking wakeonlan

目前,我可以通过从 LAN 上的另一台设备发送一个魔术包来唤醒我的 PC。但是,当我从网络外部 (WAN) 发送数据包时,PC 不会开机,即使我已指示我的路由器将端口 9 上的 UDP 流量转发到 PC。如果我运行wireshark安装wireshark 在机器上并通过 WAN 发送魔法数据包,它确实被 PC 接收了。

这个相关的问题似乎表明 NAT 穿越以某种方式修改了数据包,这阻止了它实际唤醒 PC。接受的答案表明:

取消勾选“只允许魔术包唤醒计算机”

但是,此说明适用于 Windows 而不是 Ubuntu。

是否有等效的设置或命令可以指示我的网卡接受任何数据包?

技术信息

  • 卡:瑞昱半导体有限公司 RTL8111/8168/8411
  • 路由器: Netgear Nighthawk X6 R8000

yus*_*shi 3

我本周创建了一个问题,
在解决问题时,我不希望启用的不仅仅是魔法数据包来唤醒 PC
我的解决方案可能会帮助那些发现此问题
ethtool -s enp3s0 wol g 只允许魔法数据包,
ethtool -s enp3s0 wol pumbg 接受 ping、arp、广播等的人。

如果您希望该设置持续存在,您还需要创建一个服务:
etc/systemd/system/wol.service 如下所示:

[Unit]
Description=Configure Wake-up on LAN

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s enp3s0 wol g

[Install]
WantedBy=basic.target
Run Code Online (Sandbox Code Playgroud)

/etc/netplan/youryamlfile
仅当您编辑包含wakeonlan: true时才会应用此服务:

      ethernets:
          enp3s0:
                  addresses: [192.168.0.99/24]
                  gateway4: 192.168.0.1
                  wakeonlan: true
                  nameservers:
                    addresses: [192.168.0.1]
Run Code Online (Sandbox Code Playgroud)


小智 0

只是想为不同的 WOL 类型添加更多详细信息(来自 ethtool man)

\n
       wol p|u|m|b|a|g|s|f|d...\n              Sets Wake-on-LAN options.  Not all devices support\n              this.  The argument to this option is a string of\n              characters specifying which options to enable.\n              p   Wake on PHY activity\n              u   Wake on unicast messages\n              m   Wake on multicast messages\n              b   Wake on broadcast messages\n              a   Wake on ARP\n              g   Wake on MagicPacket\xe2\x84\xa2\n              s   Enable SecureOn\xe2\x84\xa2 password for MagicPacket\xe2\x84\xa2\n              f   Wake on filter(s)\n              d   Disable (wake on nothing).  This option\n                  clears all previous options.\n
Run Code Online (Sandbox Code Playgroud)\n