ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Windows下ipmitool 1.8.19安装与实战:带外管理服务器指南

Windows下ipmitool 1.8.19安装与实战:带外管理服务器指南 简介面向 Windows 服务器管理员的 IPMITool 1.8.19 工具包可在操作系统异常或宕机时通过 IPMI 带外通道完成硬件监控、电源控制、事件日志查看、固件升级与远程 KVM 等操作适合数据中心运维、远程排障与自动化脚本管理。压缩包共 12 个文件大小约 4.69MB核心为 ipmitool.exe、ipmievd.exe 两个可执行程序cygwin1.dll 等 6 个运行所需动态库以及 lt-ipmitool.c、lt-ipmievd.c 两个源码文件并附有对应的 wrapper 辅助程序既可直接在 Windows 命令行调用也为二次编译和研究实现保留了素材。目前已有 1918 人学习下载利用 IPMI 独立于操作系统的特性可快速定位电源、传感器与系统日志层面的异常减少现场处理成本提升大规模服务器集群的管理效率。做服务器运维最怕的就是半夜机器失联机房网线断了、系统卡死不响应、远程桌面连不上如果平时没有把带外管理配好就只能祈祷第二天能亲自跑一趟机房。IPMI智能平台管理接口就是用来解决这个问题的而 ipmitool 是操作 IPMI 最常用的命令行工具。这篇文章我会围绕 ipmitool 1.8.19 在 Windows 环境下的实际使用讲清楚这个版本解决了什么问题、怎么装、怎么用、遇到坑怎么排给正在折腾带外管理的朋友一份能直接照着操作的参考。我最早是从 Linux 服务器上接触 ipmitool 的那时候都是在 CentOS 上敲命令。后来接手的 Windows 服务器越来越多才发现 Windows 下做硬件级远程管理同样需要这套工具而且微软自带的 BMC 管理界面并不能覆盖所有场景。ipmitool 1.8.19 是相对成熟稳定的一个版本我在多台戴尔、惠普和超微服务器上验证过读传感器、开关机、看日志这些核心功能都很顺畅。如果你是刚接触 ipmitool 的运维新手或者是需要在 Windows 环境管理第三方服务器的工程师这篇文章会比较合适。我会从工具来源、安装方式、常用命令、故障排查几个维度展开尽量把容易踩的坑一次说清楚。1. 为什么在 Windows 下还需要 ipmitool1.1 IPMI 与带外管理的概念服务器主板上有独立的 BMC基板管理控制器它不依赖操作系统、不依赖 CPU 是否在运行只要接上电源和网络就能通过 IPMI 协议进行管理。这套机制叫带外管理意思是数据不经过操作系统这条“主路”而是走一条独立的“旁路”。机房断电、系统死机、网络配置写错只要 BMC 还活着你依然能远程开机、关机、看硬件健康状态。ipmitool 就是和 BMC 对话的客户端工具它把 IPMI 协议封装成一条条命令。你在电脑上执行ipmitool -I lanplus -H 192.168.1.10 -U admin -P password chassis power on实际上就是在向对方的 BMC 发指令。Windows 版的 ipmitool 和 Linux 版功能基本对齐日常用量最大的传感器读取和电源控制都没有缩水。1.2 选择 1.8.19 版本的原因ipmitool 在 1.8.18 之后有一段时间没怎么更新1.8.19 是作者们集中修复了一批问题后发布的版本主要改进集中在修复了某些服务器平台下 LANPlus 握手的兼容性、修正了部分传感器数据解析错误、以及解决了 Windows 环境下编译链的问题。简单说1.8.19 比之前版本更稳对 Windows 用户更友好。有个实际案例可以说明版本差异我在一台超微 X11 主板上用旧版 1.8.14 执行sensor list有四五个风扇转速读不出来换成 1.8.19 后全部正常。所以如果你手头是近几年的服务器建议直接用 1.8.19 或更新的版本别在一个老版本上反复怀疑人生。2. Windows 下获取与安装 ipmitool2.1 官方源和第三方封装版怎么选在 Windows 上安装 ipmitool 不像 Linux 那样有apt install ipmitool一条命令搞定主要有两个渠道一个是 IPMITOOL 官方发布的源码包需要自己编译对大多数运维来说成本偏高另一个是社区打包的 Windows 二进制版本通常已经编译好 exe 和依赖库解压即用。我的建议是直接找社区编译好的 1.8.19 二进制包。下载时注意看压缩包内是否有ipmitool.exe和libcrypto.dll这两个文件缺了libcrypto.dll会在执行带加密参数的命令时报错。有些打包版本还会附带pcre3.dll和readline.dll这些是依赖库一起保留就行。下载后我习惯放在C:\tools\ipmitool这个无空格、无中文的路径下因为 Windows 命令行工具对路径里的空格处理很别扭比如使用 PowerShell 调用时偶尔会解析错误。放到干净路径能省掉不少麻烦。2.2 环境变量配置与版本校验把压缩包解压后找到ipmitool.exe的目录将它加入系统环境变量 PATH。这样以后打开 CMD 或 PowerShell 都能直接执行ipmitool不需要每次 cd 到工具目录。配置完环境变量后重新打开命令行窗口输入下面的命令验证版本ipmitool -V如果能看到版本号输出说明安装成功。我顺手把ipmitool.exe所在目录加入 Windows Defender 的白名单避免某些杀毒软件误报命令行工具。虽然这个工具本身没有恶意行为但 Windows 安全中心的“受控文件夹访问”策略有时会拦截它读取系统信息。3. 核心命令实操从查硬件到远程开关机3.1 连接参数解释与用户名密码处理先理解一下 ipmitool 最基础的连接参数后面所有命令都用得上。我用一组实际能跑通的命令来做说明ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 sdr list-I lanplus指定使用 RMCP 协议这个协议带加密是现在服务器 BMC 默认支持的连接方式。-H目标服务器的 BMC IP 地址。-UBMC 的用户名。-PBMC 的密码。sdr list读取传感器数据仓库里面的所有传感器记录。有几点值得注意-I lanplus在 1.8.19 版本中兼容性已经做得不错如果连接失败可以试试老的-I lan协议这个走的是早期 IPMI 1.5 规范不加密但兼容老设备。密码尽量用引号包起来防止特殊字符被命令行解析错误。不要长时间在命令行里明文传密码Windows 命令行日志和历史记录会记录这些信息。我习惯先用ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 user list验证能连通后再执行具体命令临时用一下没问题别把它写进计划任务里反复执行。3.2 读取硬件信息与传感器状态日常巡检中最常用的两个命令是sdr list和sensor list。前者输出精简的传感器列表后者输出更详细的传感器读数。以一台 Dell PowerEdge R740 为例执行结果大致包含以下几类指标传感器类型典型描述正常范围参考温度类CPU1 Temp、CPU2 Temp、System Board Inlet Temp20℃ 到 70℃ 之间风扇类Fan1 RPM、Fan2 RPM、FAN31000 到 15000 RPM电压类CPU1 VCORE、PS1 Voltage0.8V 到 1.5V 之间电源类PS1 Status、PS2 StatusPresence / Power Good整机类System Level、Power Meter无异常传感器多的机型sensor list输出能到几十行甚至上百行直接看会眼花。我会先用sdr list过滤出状态异常的条目再单独查看对应的传感器。比如查看 CPU 温度ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 sensor get CPU1 Temp这个命令会显示该传感器的当前值、上下限阈值、状态。如果读到na或者No Reading可能是 BMC 固件和传感器类型不兼容这时先确认服务器 BMC 固件是否已经更新到官方最新版本。3.3 电源管理与开机自检操作远程开机是带外管理最刚需的功能。服务器如果已经宕机操作系统层面做不了任何操作只能通过 BMC 发电源指令。我用过的命令大致如下# 查看当前电源状态 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis power status # 远程开机 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis power on # 远程关机相当于按下电源键触发ACPI关机流程 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis power off # 强制重启不经过操作系统直接断电重启 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis power cycle # 执行一次瞬时断电再上电 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis power resetchassis power cycle和chassis power reset看起来都是重启实际有细微差别。reset是立刻重新启动不保证电源短暂断电cycle是模拟按电源键关机再开机会更彻底。如果服务器内存故障导致自检卡住通常我会先power off等 20 秒再power on比直接用cycle成功率更高。还有chassis identify命令开启服务器面板上的 UID 指示灯方便机房现场同事快速定位机器这在托管机房场景非常实用# 开启 UID 灯 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis identify on # 关闭 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 chassis identify off3.4 查看系统事件日志与用户管理服务器宕机后第一件事就是翻 BMC 日志看看宕机前发生了什么。ipmitool 查系统事件日志的术语是 SELSystem Event Log常用命令如下# 查看所有日志条目 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 sel list # 查看日志条数 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 sel info # 清空日志排障完成后最好清掉避免日志堆积导致无法记录新事件 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 sel clear日志里常见的关键词有Temperature温度越界、Power Unit电源模块异常、Fan风扇转速异常、Memory内存 ECC 错误。比如出现Memory Component Disabled的条目基本可以锁定某根内存条故障了不用再去 OS 层面逐个排查。BMC 用户管理同样可以用命令行完成适合做批量初始化时使用# 查看当前用户列表 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 user list # 给 ID 为 4 的用户重置密码 ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 user set password 4 NewPass123密码设置方面有个隐藏规则不同品牌的 BMC 对密码复杂度要求不同戴尔 iDRAC 要求至少 4 位超微则可能要求包含大小写。我遇到过在戴尔上设置的用户密码策略没有问题但同一套密码在超微 BMC 上怎么都建不了查了文档才发现超微要求 8 位以上且包含特殊字符。4. 常见故障排查与 Windows 环境特有问题4.1 连接超时与认证失败在 Windows 上跑 ipmitool最常见的报错就是Error: Unable to establish IPMI v2 / RMCP session和Error: Unable to connect LAN session。前者说明 lanplus 协议握手没成功后者说明网络层就不通。我整理的排查思路如下先 ping BMC IP确认网络可达。同一台服务器的管理口和业务口是两个独立网口很多服务器默认只开启其中一个检查一下是不是插错口了。确认 BMC IP 没有冲突登录服务器管理界面查看网络配置有时候 DHCP 分配的和静态配置的 IP 重叠导致连接随机失败。如果 ping 通但 lanplus 报错试试-I lan老协议。有的老固件虽然开着 IPMI over LAN但 RMCP 支持不完整用老协议能连上。检查用户名密码默认账号名称不一定是 admin戴尔是 root惠普是 Administrator超微是 ADMIN。我第一次连惠普服务器时用 admin 试了半天连不上后来才发现必须用 Administrator。确认 BMC 的 IPMI over LAN 是否启用有些服务器出厂默认禁用需要进 BIOS 或管理界面开启。Windows 防火墙有时会拦截 ipmitool 的出站 UDP 623 端口虽然多数情况下出站不会被拦但如果你把 Windows 防火墙规则调到了严格模式记得放行ipmitool.exe或者端口UDP 623。用以下命令查看当前端口占用和防火墙入站规则netstat -an | findstr 6234.2 命令输出乱码与编码问题Windows 命令行默认代码页是 GBKipmitool 输出的英文信息一般没问题但如果传感器名称里包含特殊字符或者 BMC 返回了多字节字符串CMD 窗口可能出现乱码。遇到这种情况我一般切换到 PowerShell 执行或者先执行一下chcp 65001切换成 UTF-8 代码页。还有一种更隐蔽的情况ipmitool 输出被反病毒软件拦截导致命令无响应。Windows Defender 或第三方杀软可能会对命令行工具读取硬件信息的行为报警。可以临时把工具目录加入信任区再测试。这不是 ipmitool 本身的问题但在 Windows 下确实需要多一步兼容设置。4.3 常见问题速查表现象原因解决方法无法 ping 通 BMC IP管理口没接网线或交换机关闭检查物理链路确认管理口指示灯正常ping 通但报 RMCP 错误BMC 固件过老升级 BMC 固件或改用-I lan用户名密码正确但认证失败默认账号不是 admin查询该品牌默认账号或用浏览器登录管理界面确认sensor list有大量naBMC 固件和硬件不兼容升级 BMC 固件检查是否为主板自带的传感器命令执行后转圈不退出防火墙拦截或 BMC 响应慢延长超时时间-N 5 -R 3检查 UDP 623sel list无输出SEL 日志为空或指针异常执行sel info查看状态必要时sel clear后重试4.4 使用技巧超时参数与批量脚本在自动化巡检场景中一条 ipmitool 命令如果遇到 BMC 无响应默认超时时间可能会拖很久影响整个脚本的效率。我一般会加上超时参数来限制ipmitool -I lanplus -H 192.168.1.10 -U admin -P admin123 -N 5 -R 3 sensor list-N 5表示单次握手超时时间为 5 秒-R 3表示最多重试 3 次。这样即使 BMC 无响应最多等待十几秒就会返回结果不会干等几分钟。Windows 下批量巡检服务器推荐写一个批处理脚本把所有 BMC IP 放在一个文本文件里逐行循环执行命令。我之前的做法是先导出所有巡检结果到一个 CSV 文件再用 Excel 做条件格式筛选异常项echo off for /f %%i in (bmc_list.txt) do ( echo %%i ipmitool -I lanplus -H %%i -U admin -P admin123 sdr list result_%%i.txt )运行后每条服务器的传感器状态都会落在独立结果文件中再配合findstr nr Upper Critical result_*.txt快速找出温度越界的传感器。如果你手头机器数量超过 20 台建议直接用 PowerShell 的ForEach-Object并行处理效率会明显提升。5. Windows 下 ipmitool 的局限与替代方案5.1 Windows 与 Linux 版本的差异虽然 Windows 版 ipmitool 核心功能完整但某些高级子命令在 Windows 下支持有限。比如ipmitool mc管理控制器命令、ipmitool pef平台事件过滤配置在 Windows 二进制版本中可能编译不完整执行时会提示Command not supported in this build。遇到这种情况建议在 Linux 跳板机上执行或者换用服务器厂商自带的 BMC 管理工具。另外Windows 版没有内置的串口通信支持如果你要通过 COM 口连接 BMC需要额外安装 USB 转串口驱动并手动指定串口号ipmitool -I open -H 127.0.0.1 -p com1 sel list在 Windows 下-I open通常对应的是本机 BMC 接口如果 Windows 能直接访问 BMC但在很多台式机上这个接口并不可用。我遇到过联想和戴尔的台式机虽然有 Intel AMT 的主动管理技术但 Windows 下 ipmitool 无法直接读取传感器必须加载厂商的驱动程序或转用 AMT 工具。5.2 什么时候该换用厂商工具ipmitool 是通用协议工具好处是跨品牌统一操作坏处是没法调用厂商特有功能。比如戴尔的 iDRAC 固件查看、升级、设置 RAID惠普的 iLO 专用日志、远程控制台这些都不是 IPMI 标准协议里的内容必须用各自的工具或者 Web 界面操作。我的原则是日常巡检和标准化操作电源控制、传感器查看、SEL 日志一律用 ipmitool做到脚本统一管理涉及固件升级、远程挂载 ISO 安装系统这类深度操作再用厂商工具。这样既保证了效率也避免折腾不完的兼容问题。5.3 安全配置建议用 ipmitool 远程管理服务器本质上是将 BMC 的管理接口暴露在网络上这会带来安全风险。我强烈建议给 BMC 设置独立的管理 VLAN禁止从业务网络直接访问在交换机上限制只有跳板机所在网段才能连到 BMC。密码方面不要用默认密码即使在内网也要设置高强度密码。在 Windows 的 IPMI 工具使用中一个容易被忽略的细节尽量用至少 16 位且包含特殊字符的 BMC 密码并且定期更换。不同厂商的 BMC 固件对加密算法支持程度不同旧固件可能还在用不安全的算法做会话加密这种情况下即便密码再长也存在被中间人攻击的风险。如果能升级固件尽量升级到支持 SHA256 哈希的版本。6. 实际项目中总结的经验最后分享几个我在 Windows 环境下用 ipmitool 的实操心得踩过坑之后才慢慢摸出来的规律。一是关于路径的问题Windows 命令行的引号、转义、环境变量各个版本都不一样尤其是 PowerShell 和 CMD 对命令参数的处理差异很大。我的经验是能不用引号就不用引号必要时把命令存成.bat文件执行避免交互式命令行反复处理转义。二是关于 BMC IP 分配的问题有条件的话给每台服务器固定一个管理 IP并纳入监控系统。我之前有台机器 DHCP 租约到期后换了 IP结果远程脚本全部失联最后靠管理员手动登录交换机查看 ARP 表才找回来。服务器 BMC 管理 IP 一定要静态分配这比什么高可用都实在。三是关于命令执行结果的保存和审计Windows 命令行工具的输出如果重定向到文本文件默认编码可能是 ANSI用记事本打开中文系统下没问题但如果你用 PowerShell 的Get-Content读取可能会乱码。建议统一在脚本里指定输出格式或者用chcp 65001保证输出为 UTF-8。本文还有配套的精品资源点击获取
返回列表