有没有什么方法可以判断 Linux 机器是否被网络唤醒数据包唤醒?

有没有什么方法可以判断 Linux 机器是否被网络唤醒数据包唤醒?

我正在寻找一种方法(以编程方式或其他方式)来确定我的机器是否被 WOL 唤醒(比如说,Ubuntu Server 盒)。

这是一个双重问题,我想知道我是否可以:

a)连接一个设备,当机器从睡眠状态唤醒时,该设备会听到被唤醒的消息,并且

b) 然后可以以某种方式确定唤醒是否是由于 WOL 造成的

我不太关心这是通过什么机制(如果有的话)实现的,但我真正感兴趣的是这是否可能。

也许如果有一些文件记录唤醒/睡眠时间,我可以编写一个小程序循环并偶尔检查文件是否有变化,但不知道我需要做什么才能弄清楚它是否是 WOL(或者是否存在这样的文件)。

谢谢

答案1

要确定你的机器是否已经唤醒,你可以测试是否可以访问它,就像访问其他机器一样,看看它是否在那里:

  • telnet 绑定到机器启动的服务的某个端口
  • 如果已配置,请使用 snmp

至于你是否能够知道你的机器是否已经通过 WOL 启动,这是不可能的,因为 WOL 中涉及的所有元素(即魔术包、以太网卡和 BIOS)之间的通信都发生在操作系统甚至已经启动。

答案2

您需要另一个始终开启的设备来持续监控线路上的 WOL 数据包。这样的设备必须相对智能。理论上,另一台运行混杂模式工具的计算机应该能够捕获 WOL 数据包。

设备必须始终处于打开状态并扫描网络连接。传感器可能会漏掉它,但它应该可以工作。 简而言之,基本上就是另一台 PC。 虽然可能有一些网络设备可以做到这一点,但我对此并不了解。我从未使用过,但至少存在这样的可能性,即装有 Linux 固件的交换机可以做到这一点。

Linux 路由器/交换机固件产品设备支持页面

相关内容