多年来,我已经在许多 Linux 设备上成功使用 LAN 唤醒功能。它运作良好。
不过,我家里还有一台 Mac Mini。我注意到它会进入睡眠状态,并且有两个与我睡眠时拥有的任何 Linux 机器不同的独特属性:
它仍然响应网络上的 ping。
它将在传入连接时自动唤醒
ssh
,无需 LAN 唤醒。
第二个属性最终非常好:它会在不使用时自动进入睡眠状态并节省电量,并且当我想要 ssh 进入它时不需要任何额外的想法来打开电源。它只是自动醒来。我注销后,15 分钟后它会再次进入睡眠状态。
我的假设是这是因为苹果控制着硬件和软件堆栈。因此,虽然全行业的 LAN 唤醒是一种基于魔术数据包(无需操作系统交互)的网络设备功能,但 Mac 神奇的“LAN 唤醒并且仍然响应 ping”是因为它们实际上并没有让整个操作系统进入睡眠状态和/或让一个单独的网络堆栈仍在睡眠模式下运行。但这只是一个猜测。
我很好奇是否有人在 Linux 机器上见过或实现过这种“Wake-on-incoming-SSH”?或者说,这种特殊的魔力只能在苹果设备上找到,他们通过软件控制硬件,并且可以以业界其他公司无法做到的方式做到这一点?
答案1
ethtools 会帮助您,但硬件必须满足您的需求。
# ethtool interface | grep Wake-on
# ethtool eth0 | grep Wake-on
Supports Wake-on: pumbag
Wake-on: d
唤醒值定义触发唤醒的活动:
d
(已禁用)p
(物理层活动)u
(单播活动)m
(多播活动)b
(广播活动)a
(ARP 活动)g
(魔包活动)
如果您需要某种“传入 SSH 唤醒”,请尝试
# ethtool -s interface wol u