在 Linux 系统中安装 ipmitool 的核心方法是通过系统包管理器(如 yum 或 apt)安装 ipmitool 软件包,并加载 ipmi_devintf 和 ipmi_si 内核模块,从而实现对服务器 BMC(基板管理控制器)的带外管理。
为什么服务器运维需要 ipmitool
在企业级数据中心运维中,带外管理(Out-of-Band Management)是保障硬件可用性的底线,业内专家指出,当服务器操作系统崩溃、内核恐慌(Kernel Panic)或网络配置错误导致远程 SSH 无法连接时,通过 BMC 芯片直接控制硬件是唯一的救命稻草。
ipmitool 是一个开源的命令行实用程序,它实现了 IPMI(智能平台管理接口)标准,通过该工具,运维人员无需物理接触服务器,即可在远程终端完成以下操作:
- 强制重启或关机服务器。
- 查看 CPU 温度、风扇转速、电源状态等传感器数据。
- 配置 BMC 的网络 IP 地址、子网掩码和网关。
- 远程挂载 ISO 镜像安装操作系统。
- 查看硬件错误日志(SEL)。
行业共识认为,掌握 ipmitool 的安装与配置是 Linux 系统工程师在处理物理服务器时的必备技能,尤其是在管理大规模 x86 服务器集群时,其效率远高于手动进入 BIOS 或使用厂商自带的图形化 Web 界面。
CentOS 7 安装 ipmitool 怎么操作
在 RHEL 及其衍生版本(如 CentOS 7, Rocky Linux, AlmaLinux)中,ipmitool 包含在标准仓库中,安装过程相对简单,但关键在于内核驱动的加载。
安装步骤
- 使用 yum 安装软件包:
yum install -y ipmitool - 加载必要的内核模块:
ipmitool 需要与底层硬件通信,必须加载ipmi_si(系统接口)和ipmi_devintf(设备接口)驱动。
modprobe ipmi_si
modprobe ipmi_devintf - 设置开机自动加载:
为了避免重启后工具失效,需要将模块写入配置文件。
echo "ipmi_si" >> /etc/modules-load.d/ipmi.conf
echo "ipmi_devintf" >> /etc/modules-load.d/ipmi.conf
验证安装状态
安装完成后,可以通过尝试读取本地 BMC 信息来验证是否成功:ipmitool lan print 1
如果输出显示了 IP 地址、MAC 地址等详细信息,说明安装成功且驱动正常,如果提示 Could not open device at /dev/ipmi0
,通常是因为 ipmi_si 驱动未正确加载或硬件不支持 IPMI 2.0 标准。
Ubuntu ipmitool 安装与配置教程
Debian 系发行版(如 Ubuntu 20.04, 22.04)的安装逻辑与 CentOS 类似,但在包管理和驱动加载习惯上略有不同。
安装流程
- 更新软件源并安装:
sudo apt-get update
sudo apt-get install -y ipmitool - 检查驱动状态:
Ubuntu 通常在安装 ipmitool 时会自动尝试加载相关模块,但建议手动确认:
lsmod | grep ipmi - 若未加载,执行以下命令:
sudo modprobe ipmi_devintf
sudo modprobe ipmi_si
远程管理配置
在 Ubuntu 环境下,很多场景需要通过一台管理机控制另一台物理机,此时不需要加载本地驱动,而是使用远程模式。
- 远程连接基本语法:
ipmitool -I lanplus -H [BMC_IP] -U [用户名] -P [密码] [命令] - 示例:远程重启服务器
ipmitool -I lanplus -H 192.168.1.100 -U admin -P password power reset
ipmitool 核心实操命令详解
安装完成后,实际应用场景主要分为本地操作(Local)和远程操作(Remote)。
硬件状态监控
通过 ipmitool 可以实时获取服务器的物理健康状况,这在排查硬件故障时至关重要。
- 查看所有传感器状态:
ipmitool sensor list
该命令会列出所有温度、电压、风扇转速。重点关注状态为 “crit”(危急)或 “non-rec”(不可恢复)的项。 - 查看系统事件日志(SEL):
ipmitool sel list
通过日志可以快速定位是否发生了内存 ECC 错误或电源模块失效。 - 清除事件日志:
ipmitool sel clear
电源管理操作
这是 ipmitool 最常用的功能,支持在系统死机时强制干预。
- 查看当前电源状态:
ipmitool power status - 强制关机:
ipmitool power off - 强制开机:
ipmitool power on - 软重启(类似按下重启键):
ipmitool power reset
BMC 网络配置
在服务器初始化部署阶段,通常需要通过本地 shell 配置 BMC 的静态 IP,以便后续远程管理。
- 设置静态 IP 地址:
ipmitool lan set 1 ipaddr 192.168.1.100 - 设置子网掩码:
ipmitool lan set 1 netmask 255.255.255.0 - 设置默认网关:
ipmitool lan set 1 defgw ipaddr 192.168.1.1 - 设置 BMC 用户名和密码(假设用户 ID 为 2):
ipmitool user set password 2 "NewPassword123"
本地访问与远程访问对比分析
为了方便运维人员选择操作方式,下表对比了两种访问模式的区别:
| 维度 | 本地访问 (Local) | 远程访问 (Remote/LAN) |
|---|---|---|
| 通信路径 | 通过 KCS 接口直接访问 BMC | 通过网络接口 (LAN) 访问 BMC |
| 驱动依赖 | 必须加载 ipmi_si 等内核模块 |
无需本地驱动,仅需网络通畅 |
| 权限要求 | 需要 root 权限执行 | 需要 BMC 账号密码 |
| 适用场景 | 操作系统内配置、驱动调试 | 远程开关机、远程监控、死机恢复 |
| 速度/稳定性 | 极高,不受网络波动影响 | 取决于管理网络质量 |
ipmitool 无法连接 BMC 怎么办
在实际安装和使用过程中,经常会遇到连接失败的问题,根据近年来大量运维案例统计,故障原因通常集中在以下三个方面。
驱动加载失败
如果执行本地命令时提示 Could not open device,请检查 /dev/ipmi0 是否存在。
- 解决方法:重新执行
modprobe ipmi_si,如果报错,请检查主板 BIOS 中是否禁用了 IPMI 功能。
认证失败 (Authentication Error)
远程连接时出现 Authentication type 17 not supported 或 Invalid user name or password。
- 解决方法:
- 确认使用了
-I lanplus参数,IPMI 2.0 标准要求使用lanplus协议,而默认的lan协议仅支持 1.5 版本。 - 检查 BMC 用户权限是否为 “Administrator”。
网络不通或防火墙拦截
BMC 运行在独立的管理网口上,而非业务网口。
- 解决方法:
- 使用
ping测试 BMC IP 是否可达。 - 检查管理网络交换机是否划分了正确的 VLAN。
- 确认防火墙是否放行了 UDP 623 端口(IPMI 标准端口)。
从 IPMI 到 Redfish 的行业演进
虽然 ipmitool 依然是目前最普及的工具,但行业共识认为,IPMI 协议由于安全性较低(如密码传输加密强度不足)且配置复杂,正逐渐被 Redfish 标准取代。
Redfish 是由 DMTF 组织推出的新一代管理标准,它采用了 RESTful API 架构,使用 JSON 格式传输数据,可以通过简单的 curl 命令或 Python 脚本进行调用,相比 ipmitool,Redfish 提供了更强大的资源模型和更好的安全性,但在大多数存量服务器中,ipmitool 依然是最高效的快速诊断工具。
在 Linux 上安装 ipmitool 仅需简单的包管理操作与驱动加载,其核心价值在于为物理服务器提供了一套独立于操作系统的底层控制手段。
ipmitool linux 安装相关 Q&A
在虚拟化环境(如 VMware, KVM)中能安装 ipmitool 吗?
不能,ipmitool 依赖于物理主板上的 BMC 硬件芯片和 KCS 接口,虚拟机没有真实的 BMC 硬件,因此无法加载 ipmi_si 驱动,执行本地命令会报错,但你可以在虚拟机中安装 ipmitool,通过远程模式(-I lanplus)去管理外部的物理服务器。
安装 ipmitool 后执行命令需要 root 权限吗?
是的,无论是本地访问 /dev/ipmi0 设备文件,还是修改系统内核模块,都需要 root 权限,建议使用 sudo 或直接在 root 用户下操作。
ipmitool 能够解决服务器死机后的自动重启吗?
ipmitool 本身是一个手动工具,不能直接实现自动重启,但你可以结合 BMC 的 “Watchdog Timer”(看门狗定时器)功能,通过 ipmitool 配置看门狗,当操作系统在指定时间内没有给 BMC 发送“心跳”信号时,BMC 会认为系统已死机并自动触发硬件重启。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/488674.html



