iBMC 远程管理:无需物理接触即可开关服务器
背景
家里有一台华为 RH2288V3 服务器,通过路由器拨号上网。由于服务器没有连接显示器和键盘,每次需要开关机都要跑到机房去按电源键,非常不方便。
好在华为服务器自带了 iBMC(集成管理控制器),可以通过网络远程管理服务器,包括开关机、查看状态等。iBMC 独立于主系统运行,只要服务器接通电源,iBMC 就一直在线。
环境信息
| 服务器型号 | 华为 RH2288V3 |
| iBMC 管理口 IP | 10.10.10.43 |
| iBMC 用户名/密码 | root / 067212 |
| 服务器 IP | 10.10.10.42 |
iBMC 常用命令
通过 SSH 连接到 iBMC 管理口后,可以使用以下命令:
1. 查看电源状态
ssh root@10.10.10.43
ipmcget -d powerstate
输出示例:
Power state : On # 已开机
Power state : Off # 已关机
2. 远程开机
ssh root@10.10.10.43
ipmcset -d powerstate -v 1
执行后会提示确认,输入 Y 即可。输出 Control fru0 power on successfully. 表示开机成功。
参数说明:
-v 0:正常关机-v 1:开机-v 2:强制关机
3. 远程关机
ssh root@10.10.10.43
ipmcset -d powerstate -v 0
4. 强制关机(相当于长按电源键)
ssh root@10.10.10.43
ipmcset -d powerstate -v 2
⚠️ 强制关机会导致未保存的数据丢失,仅在系统无响应时使用。
一键开关机脚本
为了方便使用,可以写一个简单的 Python 脚本来操作:
开机脚本
import subprocess
IP = "10.10.10.43"
USER = "root"
PASS = "你的iBMC密码"
cmd = [
r"C:\Program Files\PuTTY\plink.exe",
"-ssh", "-pw", PASS,
"-no-antispoof",
f"{USER}@{IP}",
"ipmcset -d powerstate -v 1"
]
result = subprocess.run(cmd, input="y\n", capture_output=True, text=True)
print(result.stdout)
查看状态脚本
cmd = [
r"C:\Program Files\PuTTY\plink.exe",
"-ssh", "-pw", PASS,
"-no-antispoof",
f"{USER}@{IP}",
"ipmcget -d powerstate"
]
result = subprocess.run(cmd, input="y\n", capture_output=True, text=True)
print(result.stdout)
注意事项
- iBMC 的 SSH 服务使用旧版加密算法,部分新版本 SSH 客户端可能需要添加兼容参数:
-o KexAlgorithms=+diffie-hellman-group14-sha1 - Windows 下推荐使用 PuTTY 自带的
plink.exe命令行工具来连接 iBMC - 服务器从按下开机到系统完全启动大约需要 2-3 分钟
- 建议在服务器系统内先执行
shutdown -h now正常关机,再通过 iBMC 断电,避免数据损坏 - 如果 iBMC Web 界面无法访问,可以尝试用 SSH 命令行方式,更稳定可靠
总结
有了 iBMC 远程管理,可以随时随地对服务器进行开关机操作,不需要物理接触服务器。配合之前配置的 DDNS 自动更新域名解析,整个服务器已经实现了完全远程管理。