通过 PHY 和单播进行 LAN 唤醒仅在 pm-suspend 后的前 30 秒内有效

通过 PHY 和单播进行 LAN 唤醒仅在 pm-suspend 后的前 30 秒内有效

我在通过 PHY 和单播进行 LAN 唤醒时遇到了一些问题。我可以通过 ping 或 ssh 关闭机器来唤醒系统,但只能在前 30 秒内唤醒。这是为什么?可能是什么原因造成的?

我将脚本 70wol 放入 /usr/lib/pm-utils/sleep.d 并使其可执行,由于它可以工作,因此显然它会被执行:

#!/bin/bash
ethtool -s eth0 wol pug

我在 Debian 测试中,NIC 是 Intel DH87RL 上的 Intel I217-V,驱动程序是 Intel 2.5.4 e1000e.ko

这与 Windows 8.1 系统完美兼容,所以我猜测这是某种驱动程序或操作系统问题。

答案1

好吧,我真傻,没想到 Windows 和 Linux 默认的 ARP 超时时间正好是 30 秒,你可以通过执行以下命令查看

netsh interface ipv4 show interface 2

在 cmd.exe 中,其中 2 必须替换为你的 NIC 的 Idx,可以通过发出以下命令获取

netsh interface ipv4 show interfaces

在 Linux 上输入

cat /proc/sys/net/ipv4/neigh/default/base_reachable_time_ms

在你的 bash 中,查看默认的 ARP 超时时间(以毫秒为单位)。

因此,解决方案是设置静态 ARP 地址,以便通过 SSH 或 SMB 等方式唤醒系统。为此,请执行以下操作

arp -s 10.0.0.200 00-10-54-CA-E1-40

在 Windows 上

arp -s 10.0.0.200 00:10:54:CA:E1:40

在你的Linux系统上。

相关内容