如何关闭系统电源但仍使其在网络上可用

Rub*_*sch 11 networking file-server sleep wake-on-lan

我正在考虑在我的网络上安装一个文件服务器,用于提供数据和备份。

我希望这台机器随时可用,但我宁愿不一直开着它(为了省电)。

是否可以进行设置,以便在一段时间后自动挂起(或关闭电源),然后在我尝试连接时自动重新打开电源(在 LAN 上使用一些唤醒魔法,而无需发送明确的 WOL)包)?

Ste*_*n D 11

我很幸运使用PowerNap(它是为 ubuntu-sever 打包的,但源在那里,所以你应该能够在任何东西上编译它)在备份机器不做任何事情时挂起它们。但是,这不会自动唤醒它们。还有一个与 PowerNap 源 tarball 捆绑在一起的 PowerWake 程序(powerwake在 Ubuntu 中打包),它为 Wake-On-Lan 进程提供了一些抽象(例如,只需使用主机名就可以轻松发送 WOL),但它仍然不是自动的。

编辑。另外一个选项:

我对此知之甚少,因为我从未使用过它,但有些卡能够唤醒任何单播消息。您可以使用ethtool查看您的卡是否具有功能

# ethtool eth0 
Run Code Online (Sandbox Code Playgroud)

将 eth0 替换为您的网络设备。然后查看以“Supports Wake-on:”开头的行的输出。如果该行中列出了“u”,那么您可以在启动时执行以下操作(即,在 init 脚本或类似内容中):

ethtool -s eth0 wol u
Run Code Online (Sandbox Code Playgroud)

结合 PowerNap 或在某些条件下使机器进入睡眠状态的任何其他东西,这应该提供您正在寻找的东西。


War*_*ung 8

OS X 现在可以做到这一点,就像 Snow Leopard 一样。它是通过睡眠代理服务实现的。这几乎是自动的。唯一的要求是您的 LAN 上有第二个始终在线的 Apple 设备,可以充当睡眠代理。他们目前的低功耗嵌入式盒子都支持这一点,我相信:Airport、Time Machine 和 Apple TV。

不过,在一般情况下,我相信答案是否定的。我不知道任何其他操作系统已经实现了这样的服务。该技术是开源的,因此没有理由最终无法无处不在。看到广泛采用可能还太新。

您现在可能会问,为什么在 LAN 上需要第二个 Apple 盒子?

当 PC 处于睡眠状态时,内核(以及网络堆栈)不会运行,因此您的操作系统中没有代码可以响应您想要的那种“神奇”数据包。

操作系统不处理 LAN 唤醒魔术数据包。它们由网络接口​​ IC 识别,后者通过向 CPU 发送信号以将其从睡眠状态中释放出来进行响应。它可以做到这一点,因为 IC 在某些睡眠状态下仍保持通电状态。(这就是为什么某些机器上的 PC 处于“关闭”状态时以太网链路指示灯保持亮起的原因。)

Apple 技术起作用的原因是,就在 PC 进入睡眠状态之前,它会通知睡眠代理。睡眠代理然后安排暂时接受睡眠机器的流量,如果它得到一些有趣的东西,它会向 PC 发送一个 WOL 数据包并传递它收到的流量。

  • 与 NIC 故障转移相比,这不再是 ARP 中毒的使用。ARP 中毒一词带有意图,原因之一是:没有人试图用这种技术攻击任何东西。另一方面,睡眠代理服务是睡眠 PC 显式授权代理在睡眠时监视流量的一种方式。您不妨将电话信息服务称为身份盗窃,也可以将其称为 ARP 中毒。 (4认同)
  • “安排暂时接受睡眠机器的流量” - 就像 ARP 中毒一样?凉爽的。 (2认同)