如何从 Linux 向 Windows 发送魔术包

Don*_*... 10 networking linux wireless-networking ethernet wake-on-lan

我正在尝试使用 pi 中的 WOL(局域网唤醒)唤醒我的电脑。我在设备管理器中为我的以太网适配器启用了 LAN 唤醒,并在我的 bios 中启用了它。当计算机关闭时,以太网端口的灯会亮起。

现在,在我的 pi 上,这就是我尝试发送魔法数据包的方式:

root@raspberry:~# wakeonlan 00:11:22:33:44:55 使用 00:11:22:33:44:55
发送魔法包到 255.255.255.255:9

当我发送这个命令时,我收到一条消息,它正在发送数据包,但我的 PC 没有打开。

00:11:22:33:44:55 是我的 Windows 上以太网端口的 mac 地址。pi 和我的电脑在同一个网络上。我是第一次尝试这个,所以请评论我是否做了任何卑鄙愚蠢的事情。

我的电脑运行 Windows 7 Ultimate。
Pi 运行 Raspbian (linux)。

注意:我用上面的地址替换了我的真实 mac 地址。

小智 7

您的命令看起来正确。因此,接下来我将使用流量捕获工具前往 Windows PC 进行故障排除。

要查看数据包是否真的到达了 PC,您可以安装 Wireshark,选择要监控的相关接口,开始捕获,然后在显示过滤器中键入“wol”。然后再次从您的 Pi 向 Windows 机器发送一个wakeonlan 数据包。您应该会看到此流量出现在捕获中。


附加信息

WOL 行为 请注意,在您的示例中,WOL 仅适用于同一子网,因为 MAC 地址是仅跨越单个广播域的第 2 层寻址方法。

MAC 地址结构 前三个块 (::**) 应该是供应商唯一的物理硬件。默认情况下,虚拟机是唯一绕过 MAC 寻址标准的设备。您必须手动告诉物理设备伪装其 MAC 地址。

获取 MAC 地址 的更好方法 其次,获取 MAC 地址的更好方法是转到命令提示符并键入ipconfig /all. 或 开始 > 控制面板 > 网络和 Internet > 网络和共享中心 > 更改适配器设置 > 右键单击​​(相关界面)> 状态 > 详细信息 物理地址是您的 MAC 地址,将使用“-”而不是“:”。请注意,您仍然必须在 Pi 上将“:”与 wakeonlan 命令一起使用。

我希望以上有所帮助。对不起,如果这不清楚,我是超级用户发帖的新手

Wireshark 捕获设置示例 - 1:

Wireshark 捕获设置示例 - 1

Wireshark 捕获设置示例 - 2:

Wireshark 捕获设置示例 - 2


小智 5

当涉及到您的 PC 时,您必须确认 3 件事。您的 Pi 似乎正在发出信号,因此假设它正常工作是相当安全的。

您已经说过您已检查过它们,但我之前已经自行关闭了 bios,因此请仔细检查。

  1. 为 WOL 启用了 Bios

这在大多数设备上默认处于禁用状态,因此请重新验证它是否已启用。

  1. 操作系统中的设备(以太网)为 WOL 启用

转到您的设备管理器并单击您的网络适配器。找到您的设备并右键单击属性。单击电源管理并确保已启用它。

能源管理

  1. 防火墙已为 WOL 开放 *** 我没有看到您对此发表评论。

WOL 通常通过端口 7 或端口 9。我建议在您的防火墙上打开这两个端口,直到您完成此操作,然后在设置好后关闭一个。9 比较常见。

有一些软件程序可以帮助解决这个问题,但大多数时候我发现它们不仅有用,而且令人困惑。