服务器系统崩了、连 SSH 都进不去,传统远程管理就束手无策了。IPMI 就是为这种场景准备的:它工作在操作系统之下,只要机房还在供电,就能远程看硬件状态、开关机、装系统。这篇记录 IPMI 的基本概念和 ipmitool 的常用操作,安装与无 BMC 环境的报错行为在 Rocky 9 容器实测过,远程电源操作需要真实 BMC,未实跑。

IPMI 是什么

IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一个通用的硬件管理接口标准,用来监视服务器的物理特征:温度、电压、风扇、电源、机箱入侵等。它最大的价值在于独立于 CPU、BIOS 和操作系统——无论开机还是关机,只要接通电源就能管理服务器。

这套体系的核心是 BMC(Baseboard Management Controller,底板管理控制器),一块焊在主板上的嵌入式管理芯片,相当于平台管理的”大脑”。它通过主板传感器采集数据并记录事件日志,能力覆盖:串口访问、故障日志与 SNMP 警报、系统事件日志(SEL)与传感器读取、电源控制,以及文本控制台重定向(用于 BIOS 设置和系统控制台)。

日常接触到的入口有两种:各厂商的带外管理 Web 界面(Dell iDRAC、HP iLO,本质都是 BMC),以及本文的主角——命令行工具 ipmitool。通过 Web 界面能做的事包括:通电状态下远程开关机重启、远程操作 BIOS、远程装系统、改管理口网络配置、设置 RAID。命令行则把这些能力脚本化,批量纳管几十台机器时是刚需。(IPMI 之外,业界还有更新一代的 Redfish REST API,思路一脉相承,ipmitool 依然是存量服务器运维的通用底座。)

使用前提与安装

两个前提:一是主板上有 BMC(主流服务器基本都带,采购时确认);二是本机监控需要内核 OpenIPMI 支持(Linux 自带,装包后加载 ipmi 模块即可)。

1
2
# CentOS 7 用 yum,Rocky 9 用 dnf,包名相同
yum install -y OpenIPMI ipmitool

Rocky 9 容器实测,包正常安装,ipmitool-1.8.18、OpenIPMI-2.0.36。装完顺手确认内核模块已加载:lsmod | grep ipmi 应能看到 ipmi_devintf、ipmi_si 等条目,没有就 modprobe ipmi_devintf 手动加载一次——本机 sensor list 报设备节点不存在,多数是这一步没到位。在没有 BMC 的容器里跑命令,正好能看到两类典型报错:

配图1

前一个报错说明本机没有 BMC 设备节点(装了 OpenIPMI 驱动、有 BMC 的机器不会出现);后一个说明远程会话没建立起来——排查管理口 IP 是否可达、是否开启 IPMI over LAN。这两条报错覆盖了新手最常撞上的两种故障,能读懂它们,ipmitool 的排错就入门了。

核心场景速查

先给场景索引,按要做的事直接跳:

我要…… 用哪条命令
远程开机/关机/硬重启 power on / power off / power reset
看电源状态 power status
看传感器/硬件健康 sensor list(本机免 -H)
查历史故障记录 sel list
查管理口网络配置 lan print 1
改 IPMI 用户密码 user set password <id> <新密码>
救活卡死的管理口 mc reset warm

远程操作另一台机器时,-H 指带外管理口的 IP,-U/-P 是 IPMI 账号密码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看电源状态
ipmitool -H yourIP -U myuser -P mypassword power status

# 开机
ipmitool -H yourIP -U myuser -P mypassword power on

# 关闭电源
ipmitool -H yourIP -U myuser -P mypassword power off

# 断电重启
ipmitool -H yourIP -U myuser -P mypassword power reset

# 重启 BMC 自身(管理口卡死时用)
ipmitool -I lanplus -H yourIP -U myuser -P mypassword mc reset warm

本机监控自己的传感器不需要 -H,直接 ipmitool sensor list 即可——走的是内核 OpenIPMI 驱动,不出网。查硬件问题时光看瞬时值不够,还要翻历史:ipmitool sel list 输出系统事件日志,哪天几点风扇异常、谁触发了重启都有记录,sel elist 给更友好的解读视图,确认处理完后 sel clear 清空。想知道 BMC 自己的网络配置(管理口 IP 是否被改过),用 ipmitool lan print 1,不用进 BIOS;交接机器、怀疑密码泄露时,先用 user list 看账号,再用 user set password <id> <新密码> 换掉密码。

注:sel/lan print 等依赖 BMC 的子命令未实跑,用法来自 ipmitool(1) 手册;sensor list、-H 远程两条已在无 BMC 容器验证到”报错行为”一层。

参数速查表

参数 作用 示例值
-H 带外管理口 IP 192.168.1.120
-U IPMI 用户名 admin
-P IPMI 密码(会留在命令历史,见注意事项) mypassword
-I lanplus 指定 IPMI v2.0/RMCP+ 接口,远程操作建议加上 lanplus
-f 从文件读密码,脚本化时替代 -P /etc/ipmi.pw

更多子命令查 man ipmitool。

注意事项

  • 管理口必须独立强密码并限定内网。IPMI 权限极大且历史上多次爆出高危漏洞,暴露公网是重大安全隐患。
  • power reset 是硬重启,不通知操作系统,生产机器慎用——相当于直接按住电源键。
  • BMC 本身也可能卡死,mc reset warm 能远程救活管理口,不用跑机房。
  • 密码别裸奔在命令历史里:脚本化时用配置文件或 -f 从文件读密码,交互时用完清 history。
  • SEL 日志要定期清。事件日志写满后新事件记不进去,巡检时顺手 sel clear,重要记录先导出留存。
  • 远程会话建不起来按顺序查三样:管理口网络是否可达;防火墙是否放行 UDP 623(IPMI over LAN 走 RMCP+,是 UDP 而不是 TCP);BMC 端是否启用了 lanplus。

小结

回到开头:SSH 进不去不等于只能跑机房——IPMI 活在操作系统之下,只要机器插着电,power on、sensor list、sel list、mc reset warm 这几条命令就能完成开关机、看健康、查故障、救管理口四件事。装好 ipmitool,把管理口 IP、账号密码放进你的运维笔记,下次半夜告警时用得上。


本文由作者 2020-2024 年间的 CSDN 博客文章重构而来,原发布于 CSDN。