由于(我猜)无法追踪的网络唤醒数据包而导致计算机启动

网络工程 线鲨 网络唤醒
2021-07-06 08:00:11

我们的 LAN 中有一台台式计算机,它在手动关闭后几乎每隔几秒钟就会保持启动。

我从一开始就怀疑这是 LAN 唤醒问题,看起来是这样:如果在关闭计算机之前断开以太网电缆,问题就会消失。此外,虽然 BIOS 没有禁用 WOL 的特定选项,但它有一个省电选项,可以在计算机未运行时关闭网卡,这也解决了问题。

问题是我找不到谁在发送 WOL 数据包。我正在使用捕获过滤器“ether proto 0x0842 或 udp”使用 Wireshark 嗅探整个 LAN,如http://wiki.wireshark.org/WakeOnLAN 中所建议的那样,它没有检测到任何内容。但是当我从网络上的不同计算机手动发送 WOL 数据包时,Wireshark 确实会捕获这些数据包。

在捕获进出这台计算机的所有流量时,我也没有看到任何奇怪的东西。

更新

此“模式匹配唤醒”选项已在计算机上启用。根据https://superuser.com/questions/560175/what-is-wake-on-pattern-match-in-network-card-preferences,默认模式为:magic packet、NetBIOS name query、TCPv4 SYN、TCPv6 SYN , IPv6 邻居请求。

其他 PC 也启用了此选项,但它们不会随机唤醒。我将检查这台计算机是否正在接收任何这些。

计算机的电源管理选项

3个回答

谜团已揭开。

Windows 7 计算机不断从同一 LAN 中的另一台计算机接收到 9100 端口的 TCP SYN 数据包,因此在激活“模式匹配唤醒”时唤醒。

此端口由网络打印机使用。Windows 7 电脑的 IP 曾经属于一台废弃已久的 HP 打印机。

发送数据包的计算机很旧,并且它始终处于开启状态,因为它有时用于运行仅适用于 Windows XP 的软件。这台计算机仍然配置了旧的网络打印机,指向现在属于有问题的 Windows 7 计算机的本地 IP 地址。打印队列中还有文件,所以Windows XP电脑不断地向Windows 7电脑发送TCP SYN包,以为是网络打印机。从 Windows XP 中删除旧打印机及其关联的 TCP/IP 打印机端口解决了该问题。

我无法使用 Wireshark 从我的两台计算机之间捕获这种流量。我必须在受影响的计算机上安装它并在禁用混杂模式的情况下运行它。

据推测,在整个 LAN 段上以混杂模式侦听,没有过滤器,会产生太多流量(否则,您可以这样做)。

如果您的集线器是真正的集线器,而不是“交换集线器”,则可以将不断唤醒的计算机插入集线器上的一个端口,然后将运行 Wireshark 的机器插入另一个端口,这样您就只能进行物理嗅探进出该机器的流量。然后您可以不使用过滤器进行捕获,并且当机器处于睡眠状态时,大概仍然看不​​到大量流量。

您可能已经尝试过一个建议,但请检查是否有更新的 NIC 驱动程序。如果计算机制造商没有驱动程序,您甚至可能想从 NIC 制造商那里获取驱动程序。我的一个朋友在使用英特尔 NIC 的全新开箱即用型 Dell 上遇到了问题,并且在他安装了更新的驱动程序之前导致了坏包问题。

您没有说明您使用的是哪个操作系统,但如果是 Windows,请检查 NIC 的电源管理设置。确保取消选中“允许此设备唤醒计算机”(或选中该框以确保只有魔术包唤醒它)。 在此处输入图片说明