我最近为自己购买了一台 HP 机架服务器,用作个人文件服务器。该服务器目前位于我的床下,因为我没有其他地方可以放置它。对于那些不知道(因为我不完全)这个服务器是很响。
我需要能够在白天的很多时间访问我的文件,并且由于我的服务器的情况,每天晚上在墙上将其关闭(它喜欢突然没有明显原因地启动)是'确实不是一个选择。我会真的就像服务器可以一直保持开机状态一样,但在不使用时进入睡眠状态,这样风扇就会通过 LAN 关闭(如果没有其他情况)。服务器也运行 Debian。
如果由于某种原因无法进行这种设置,我可以满足于让机器在一天中的某个时间(或晚上)关闭并在早上再次启动,或者类似的效果。
除了使用 LAN 唤醒/睡眠之外,我对如何完成此类任务知之甚少。
答案1
另外,查看服务器是否有管理处理器(例如,HP 的品牌名称是 iLO,Sun/Oracle 的品牌名称是 ILOM,Fujitsu 的品牌名称是 IRMC)。
管理处理器是一个独立的小型处理器和一个网络接口,只要系统接通电源,它们就始终处于供电状态。它可以用来远程访问服务器的主要部分,甚至可以随意关闭和重新打开服务器的电源。如果您的服务器有此功能,并且您可以使其工作,则不需要 LAN 唤醒:您只需连接到管理处理器(通常使用 Web 浏览器)并告诉它为服务器的主要部分供电即可。服务器。
答案2
确保您的网卡和主板支持WOL(局域网唤醒)使用ethtool <interface>
以确认
创建一个 cron 来每天下午 5 点关闭计算机
将 17 更改为每天您想要关闭它的时间
将以下内容添加到 /etc/crontab
0 17 * * * root shutdown -h now
接下来,您需要网络上的第二台计算机来发送“神奇数据包”
在第二台计算机上,您可以使用wakeonlan <mac address>
它来唤醒第一台计算机。
使用与上面列出的相同方法将wakeonlan 放入cron 中。我们将在示例中使用上午 9 点。将以下内容添加到 /etc/crontab
0 9 * * * root wakeonlan `<mac address of your other server>`
另请检查您的路由器,它可能支持发送局域网唤醒数据包。
答案3
经过无数次的尝试和磨难,让我的服务器按照它的指示去做,解决我的声音太大问题的最好方法就是把它放在车库里,希望在寒冷的夜晚不会发生水损坏(这不应该,因为服务器将 24/7 运行)。
感谢所有提供实际技术帮助的人,但似乎我想要的理想情况无法完成。
答案4
我也遇到了完全相同的问题,经过一番工作后得到了解决方案。
对于 LAN 唤醒,我使用 OpenWRT 路由器以太唤醒队列。我有一个防火墙规则,它将新的连接包发送到 netfilter 队列中。该队列连接到 etherwake-nfqueue。该用户空间工具将 WoL 数据包发送到服务器,并在再次可达时释放该数据包。这里有一个关于如何实现这一目标的很好的教程:https://github.com/mister-benjamin/etherwake-nfqueue-openwrt
对于挂起,我找不到一个程序可以实现我想要的效果,即在没有网络连接到我的服务器的特定端口时挂起。例如,我想在访问 Nextcloud 实例时不挂起,但我不关心其他连接。我决定编写一个小型 python 脚本,它支持使用合约工具检查活动网络连接、使用 fcntl 进行活动锁定以及正在运行的进程。如果有人感兴趣,我将脚本上传到 GitHub:https://github.com/7ritn/suspend_watch
请注意,如果让您的服务器在 22、80 或 443 等标准端口上检测到流量时被唤醒,您需要预期它会被测试基本漏洞的对手频繁唤醒。