我在通过 PHY 和单播进行 LAN 唤醒时遇到一些问题。我可以通过 ping 或 ssh 关闭已关闭的计算机来唤醒系统,但只能在前 30 秒内完成。这是为什么,可能是什么原因呢?
我将脚本放入70wol
其中/usr/lib/pm-utils/sleep.d
并使其可执行,显然它会被执行,因为它可以工作:
#!/bin/bash
ethtool -s eth0 wol pug
我正在进行 Debian 测试,网卡是 Intel DH87RL 上的 Intel I217-V,驱动程序是 Intel 2.5.4 e1000e.ko
答案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 系统上。