家里断电后服务器如何自动重启?聊聊几种实用的方案
家里跑服务的朋友可能都遇到过这种情况:半夜跳闸停电或者宽带光猫重启,结果来电后服务器没跟着醒过来,一堆服务直接掉线,还得远程或者跑去机房手动按开关,极其折磨人。今天就来聊聊,怎么让服务器在断电恢复后自动重启,乖乖上线干活。
一、 最基础的操作:BIOS 设置
绝大多数服务器和台式机主板,BIOS 里其实都自带了断电恢复状态的选项。这是最省事、成本最低的方法,适合绝大多数物理机环境。
重启电脑,狂按 Del 或 F2 进 BIOS 设置(不同主板按键不同,看屏幕提示)。在 "Power Management"(电源管理)或者 "Advanced"(高级)选项卡里,找一个类似 "Restore on AC Power Loss"、"AC Back" 或者 "State After G3" 的设置项。
BIOS 设置界面,找到 AC Power Loss 或类似选项
这里通常有三个选项:
- Power Off / Keep Last State:保持断电前的状态(默认)。如果断电前是关机,来电后还是关机;如果是开机则开机。
- Power On:通电后自动开机。这是我们要选的。
- Last State:也就是记忆状态。
直接把它改成 "Power On",保存并退出。这样下次市电恢复,机器就会直接启动,无需人工干预。这个方法对绝大多数独服、NAT 小鸡甚至你放在家里吃灰的旧电脑都有效。
二、 局域网唤醒(Wake-on-LAN,WoL)
如果你的设备 BIOS 里找不到上面的选项,或者你想更灵活地控制(比如只唤醒特定机器),可以利用 WoL 技术。
前提条件是网卡支持。在 BIOS 的网络设置里开启 "Wake-on-LAN" 或 "PXE Boot" 相关选项,进入系统(Windows 或 Linux)后,也要在网卡驱动属性里勾选 "允许此设备唤醒计算机"。
怎么做自动重启?你需要一个始终在线的“中控”设备,比如软路由、树莓派或者是 NAS。市电恢复后,这个中控设备先启动(记得中控设备要设为来电自启),然后运行脚本,发送一个 Magic Packet(魔术数据包)给目标服务器的 MAC 地址,强制它唤醒。这种方法适合家里有多台设备,且不想动 BIOS 的高级玩家。
企业级服务器通常配备 IPMI/iDRAC 远程管理界面
三、 IPMI / iDRAC / BMC 的远程管理
如果你用的是正规的二手服务器(比如 Dell R系列、HP DL系列),恭喜你,这些企业级设备通常自带独立的远程管理芯片:Dell 叫 iDRAC,HP 叫 iLO,通用的叫 IPMI 或 BMC。
这些管理口有自己的网卡和独立电源(只要插了电),哪怕服务器关机,管理口也是活着的。
- 连接到管理口的 IP。
- 在 Web 界面里找到电源管理选项。
- 设置 "Power Restore Policy" 为 "Always Power On"。
不仅如此,IPMI 还支持查看电源状态、监控温度,甚至虚拟控制台,完全不需要物理接触机器。玩服务器的佬佬们,这个功能可以说是标配,一定要利用起来。
四、 外部硬件:智能插座与 PDU
有时候 BIOS 被锁住了,或者设备实在太奇葩,改不了设置怎么办?那就从电源源头上下手。
1. DIY 方案(带警示) 理论上可以用继电器或者智能家居插座配合逻辑电路,检测来电后给服务器主板的开机针脚(Power Switch Pins)一个瞬间的短路信号,模拟按开机键。但这需要动烙铁,还得懂电路,手滑容易把主板烧了,新手慎试。
2. 智能插座循环通断 现在很多智能插座(比如涂鸦、米家系)支持“自动化”。设置一个逻辑:检测到插座“由断电变为通电”状态,延迟 1 分钟,然后暂停通电 5 秒,再恢复通电。这样相当于物理断电重启,强迫机器重启。但这前提是机器 BIOS 是默认通电自启或者你确定机器会响应这种硬重启。
3. 智能 PDU 机房里的标准做法是用智能 PDU(Power Distribution Unit)。高端 PDU 支持按计划任务重启端口,或者监控总电源,一旦掉电恢复,自动按顺序重启下挂设备。虽然对于个人玩家来说有点杀鸡用牛刀,但如果你家里有个小机柜,上个准系统 PDU 也是很享受的体验。
五、 软件层面的兜底(系统级脚本)
硬件层面搞定了,软件层面也可以加一层保险。比如写个 Python 或 Shell 脚本,定时检测外网连通性。如果发现自己连不上网(比如刚来电还没开机),或者检测到关键服务挂了,就尝试调用本地的重启命令或者发送告警(配合 Telegram Bot 等)。
不过注意,软件脚本只有在机器启动后才有效,如果机器根本没醒,软件也是跑不起来的,所以这只是一个辅助手段。
总结
- 最推荐:直接进 BIOS 改 "Power On",简单粗暴无副作用。
- 企业级玩家:检查并利用好 IPMI/iDRAC 的电源策略。
- 多设备环境:弄个一直开着的软路由,配合 Wake-on-LAN 脚本喊醒其他设备。
- 最后手段:实在没办法,考虑智能插座硬控或联系机房管理员(如果是 VPS,直接发工单让 IDC 帮跳线开机)。
搞定这个设置,以后出门再也不怕家里跳闸导致服务长跪不起了,稳稳的幸福。

评论已关闭