IPMI带外管理教程
IPMI介绍
需求
有的时候,ssh无法连接到服务器,如
- 死机,需要重启
- 服务器的临时路由表配错,造成ssh无法访问服务器,需要重启
类似情况,为了能不亲自去机房就管理服务器,需要使用远程控制装置,也即带外管理,IPMI即是其中一种。
带外管理
- 经过服务器所在的工作网络 来连接服务器(如通过ssh),此通道名曰数据通道。由数据通道理服务器,称带内管理。当服务器或工作网络出现物理故障时,就无法带内管理。
- 使用独立的管理通道连接服务器,不论开机与否,也不论工作网络是否正常,均可进行连接与控制。由管理通道管理服务器,称带外管理。
IPMI的原理
IPMI 独立于 CPU BIOS 和 操作系统,故不论开机否,皆可监视控制服务器。ipmi 是一种规范的标准,其中最重要的物理部件就是 BMC (Baseboard Management Controller),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。
配置IPMI
有两种方法配置IPMI:进入BIOS或使用impitool软件。进入BIOS配置IMPI,详见IPMI远程管理功能使用介绍.docx。而impitool方法介绍如下,以下操作均在服务器上,用ssh连接之即可完成
安装ipmitool
sudo apt install ipmitool
ipmi的网络配置
显示ipmi的网络配置
sudo ipmitool lan print 1
返回
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5 PASSWORD
: User : MD2 MD5 PASSWORD
: Operator : MD2 MD5 PASSWORD
: Admin : MD2 MD5 PASSWORD
: OEM : MD2 MD5 PASSWORD
IP Address Source : Static Address
IP Address : 192.168.245.33
Subnet Mask : 255.255.255.0
MAC Address : ac:1f:6b:a7:0b:39
SNMP Community String : public
IP Header : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP : 192.168.245.97
Default Gateway MAC : 00:00:00:00:00:00
Backup Gateway IP : 0.0.0.0
Backup Gateway MAC : 00:00:00:00:00:00
802.1q VLAN ID : Disabled
802.1q VLAN Priority : 0
RMCP+ Cipher Suites : 1,2,3,6,7,8,11,12
Cipher Suite Priv Max : XaaaXXaaaXXaaXX
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
Bad Password Threshold : 0
Invalid password disable: no
Attempt Count Reset Int.: 0
User Lockout Interval : 0
IPMI的网络有两模式:
-
自动获取(dhcp),设置方法如下:
sudo ipmitool lan set 1 ipsrc dhcp它会自动获取到ipmi的ip、掩码、网关
-
静态(static),设置方法如下
sudo ipmitool lan set 1 ipsrc static需要自己配ipmi的ip、掩码、网关
-
设置ipmi的ip
sudo ipmitool lan set 1 ipaddr <ipmi的ip>
- 设置ipmi的掩码
sudo ipmitool lan set 1 netmask <ipmi的掩码>
- 设置ipmi的网关
sudo ipmitool lan set 1 defgw ipaddr <ipmi的网关>
配置imp账号
-
查看通道
sudo ipmitool channel info [<通道号>==0,1,2,3...,12, 无13, 14,15; 缺省=15]一般 15号通道返回, 表示支持网页图形界面控制, 此通道的用户需要开
ipmi=on权限, 才能用网页远程控制Channel 0xf info: Channel Medium Type : System Interface Channel Protocol Type : KCS Session Support : session-less Active Session Count : 0 Protocol Vendor ID : 71541号通道返回如下, 表示支持 ipmi 协议, 此通道的用户需要开
ipmi=on权限, 才能用ipmi命令搞远程控制Channel 0x1 info: Channel Medium Type : 802.3 LAN Channel Protocol Type : IPMB-1.0 Session Support : multi-session Active Session Count : 0 Protocol Vendor ID : 7154 Volatile(active) Settings Alerting : enabled Per-message Auth : enabled User Level Auth : enabled Access Mode : always available Non-Volatile Settings Alerting : enabled Per-message Auth : enabled User Level Auth : enabled Access Mode : always available -
查看用户
sudo ipmitool user list [<通道号>==0,1,2,3...,12, 无13, 14,15; 缺省=15]ID Name Callin Link Auth IPMI Msg Channel Priv Limit 1 true false false Unknown (0x00) 2 ADMIN true false false Unknown (0x00) 3 true false false Unknown (0x00) 4 true false false Unknown (0x00) 5 true false false Unknown (0x00) 6 true false false Unknown (0x00) 7 true false false Unknown (0x00) 8 true false false Unknown (0x00) 9 true false false Unknown (0x00) 10 true false false Unknown (0x00)一般服务器出厂自带的用户名
ADMIN,其出厂权限如下:- 15号通道, 即缺省通道
sudo ipmitool user list # 缺省channel号 是 15ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN true false false Unknown (0x00) 【下面的命令用此id=2】【需callin=true,浏览器才能登录】- 1号通道
sudo ipmitool user list 1 # 1 是channel 号, 一般不改返回
ID Name Callin Link Auth IPMI Msg Channel Priv Limit 2 ADMIN false false true ADMINISTRATOR (0x00) 【IPMI=true才能使用ipmi的命令行登录】 -
若返回如上, 则不需要改用户权限
-
若权限不对, 则执行以下命令
sudo ipmitool channel setaccess 15 2 callin=on link=off ipmi=on privilege=0x0 # 缺省channel号 是 0 # 和 sudo ipmitool channel setaccess 1 2 callin=off link=off ipmi=on privilege=0x4 # 1 是 channel 号 # 2是用户号, 根据`sudo ipmitool user list [1]`返回的用户号来写 # Privilege-level=AdministratorPrivilege levels
privilege的取值-
0x0- Unknown [初始化为这个, 可以不改] -
0x1- Callbac -
0x2- User -
0x3- Operator -
0x4- Administrator [如果要改, 一般就设成这个] -
0x5- OEM Proprietary -
0xF- No Access
得到上述所需权限
-
-
交互地修改密码: 对所有通道的第2号用户重设密码
sudo ipmitool user set password 2然后输入两边密码
junipmi或直接非交互地执行
sudo ipmitool user set password 2 <密码> && sudo sed -i '$d' /root/.zsh_history删去最后1行 避免暴露密码
数据线路与管理线路
线路连接
ipmi的网口接线有两种方法:
- 独立线路:
- 管理线路:一根单独的网线,一段插在服务器上,另一端插在一个交换机上,然后通到外网。此线路仅供ipmi使用。
- 数据线路:另一单独的网线,一段插在服务器上,另一端插在另一交换机上,然后通到外网。此线路供ssh、http(s)等使用,ipmi不用。
- 共用线路:上述两线路合并成一个。优点是可以节约一个服务器的网络插口,以及交换机;缺点是,当数据线路坏了,就得去机房修,ipmi用不了。参考
ip设置
不论哪种接线,服务器有以下两个IP(通常是局域网IP):
/etc/network/interfaces之eth0(或enp97s0f0等) 的address(即ip)- 上文设置的ipmi的ip
此二IP必须不同。若是同一个IP,企图用端口区分——ipmi用特定的端口,而ssh、http(s)等用其他特定端口,则从无法连接到ipmi,例如,用浏览器访问此IP,则会显示的是服务器的http(s)的页面,而非ipmi管理页面。
NAT
为了能在外网用浏览器连接ipmi管理服务器,需要在ipmi的网关上,设置NAT,使得<ipmi的网关的外网ip>:<ipmi的NAT端口> 转发到 >ipmi的ip>:443。其中443是ipmi的https端口。
ipmi各种连接端口
以 Supermicro IPMI (firmware SMT_X9_218) 为例
| 端口 | 对应协议 | 协议版本 |
|---|---|---|
| 22/tcp | ssh | Dropbear sshd 2012.55 (protocol 2.0) |
| 80/tcp | http | lighttpd |
| 443/tcp | https | lighttpd |
| 623/tcp | ipmi-rmcp | SuperMicro IPMI RMCP |
| 623/udp | IPMI | ? |
| 1900/udp | UPnP SSDP | ? |
| 5900/tcp | vnc, ikvm (远程桌面重定向) | VNC (protocol 3.8) |
| 5985/tcp | wsman | ? |
| 49152/tcp | upnp | ntel UPnP reference SDK 1.3.1 (Linux 2.6.17.WB_WPCM450.1.3; UPnP 1.0) |
详见:
从外部连接ipmi
有多种方法从其他机器连接ipmi来管理服务器:浏览器、命令行工具SMCIPMITool、专用GUI工具IPMIView,详见简介。一般用浏览器就好了。
浏览器
机房的局域网内,浏览器访问https://<ipmi的ip>;机房外的网络,浏览器访问https://<ipmi的网关的外网ip>:<ipmi的NAT端口>
然后在如下界面中输入ipmi账号和密码

更多用法,详见IPMI远程管理功能使用介绍.docx。
桌面远程操控
ipmi 支持基于 iKVM 技术, 将服务器的桌面图像发送到远端, 进行桌面远程控制. 有两种方法来实现, 分别是 浏览器中的iKVM/HTML5 和 本地程序Java iKVM Viewer. 此二方法等效.
浏览器中iKVM/HTML5
本法可直接在浏览器中进行远程桌面控制, 本地程序Java iKVM Viewer比方便. 但老旧版本的服务器的ipmi不支持iKVM/HTML5功能, 在下图中找不到iKVM/HTML5按钮.
在浏览器中连上ipmi的控制页面 (如上文), 如下点击如下

于是浏览器弹出另一个标签页, 内容如下, 在此可进行服务器桌面的远程操控.

使用Java iKVM Viewer
本法依赖于本地的Java, 用以运行 jnlp 文件来加载 Java iKVM Viewer, 以进行远程桌面控制.
获得jnlp文件
在浏览器中连上ipmi的控制页面 (如上文), 然后如下点

或者点击如下

浏览器会下载一个文件 launch.jnlp. 这个文件需要本地安装有Java才能运行.
端口修改
若你采用了 ssh的端口映射 来连接远程服务器, 则需要把 launch.jnlp 中的端口改成ssh映射到的本地端口.
例如, 若连接服务器采用命令为
ssh <用户名>@<跳板机> -L <ipmi-https-本地端口>:localhost:443 \
<ipmi-ipmi命令行工具-本地端口>:localhost:623 \
<ipmi-ikvm-本地端口>:localhost:5900
其中 443 是ipmi的https默认端口, 623 是ipmi的命令行工具默认端口, 5900 是ipmi的ikvm默认端口.
则需要把 launch.jnlp 文件第一行的 443 改为 <ipmi-https-本地端口>,
<jnlp spec="1.0+" codebase="https://localhost:443/">
文件结尾的 5900 改为 <ipmi-ipmi命令行工具-本地端口>, 5900 改为 <ipmi-ikvm-本地端口>.
<application-desc main-class="tw.com.aten.ikvm.KVMMain">
<argument>localhost</argument>
<argument>+0eyiVR7u06ENfW</argument>
<argument>2875U+A==</argument>
<argument>null</argument>
<argument>63630</argument>
<argument>5900</argument>
<argument>623</argument>
<argument>0</argument>
<argument>0</argument>
</application-desc>
</jnlp>
启动远程连接
双击 launch.jnlp 文件, 然后会依次弹出窗口如下,
- 点
继续

- 等完成
验证, 啥也别点

- 点
运行

- 然后弹出
Java iKVM Viewer窗口, 在其中可以进行远程桌面控制.

报错Authentication failed
如果从一个服务器下载了 launch.jnlp,重启服务器或过了一段时间服务器端的ikvm登陆令牌就会变化,导致之前下载的 launch.jnlp文件结尾那段里写的令牌 +0eyiVR7u06ENfW 和 2875U+A==失效,
<application-desc main-class="tw.com.aten.ikvm.KVMMain">
<argument>localhost</argument>
<argument>+0eyiVR7u06ENfW</argument>
<argument>2875U+A==</argument>
<argument>null</argument>
<argument>63630</argument>
<argument>5900</argument>
<argument>623</argument>
<argument>0</argument>
<argument>0</argument>
</application-desc>
</jnlp>
此时运行 launch.jnlp会报错“Authentication failed”(如下图),无法连接远程桌面。

解决办法:重新从ipmi控制网页下载launch.jnlp(其中的令牌更新了),然后运行launch.jnlp,才能连上远程桌面。
终端
命令格式
ipmitool除了可以直接在服务器上配置ipmi(见上文),还可以从另一台电脑的终端 远程地控制服务器的ipmi。格式:
ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] <ipmi的命令>
-
-p <远程ipmi的端口>: 缺省为623,即iipmi-rmcp协议的默认端口。当使用NAT,将服务器集群的ipmi的公网ip:ipmi的公网端口NAT 成某服务器的ipmi的内网ip:ipmi的内网端口,则此参数写为-H <服务器集群的ipmi的公网ip> -p <ipmi的公网端口> -
-P <远程ipmi的密码>: 此参数若不加,则为交互式输入ipmi的密码,推荐之;否则加此参数,要输入密码明文(不建议) -
<ipmi的命令>: 相当于在服务器上执行了命令sudo ipmitool <ipmi的命令>,例如<ipmi的命令>=lan print 1,以显示远程服务器上显示ipmi的网络配置
常用的<ipmi的命令>
chassis power status:查看远程服务器电源状态chassis power reset:重启远程服务器, 相当于按重启机箱上的按键, 掉电后立即上电chassis power reset: 重启远程服务器, 从掉电到上电有1秒钟的间隔chassis power off:关闭远程服务器电源chassis power on:然后再开启远程服务器. 这样也相当于按重启机箱上的按键
服务器死机处置办法
以下操作均等效于按机箱上的电源键. 不推荐用power reset, 而是先power off再power on, 因为直接 power reset 掉电后立即上电, 不知道是否关机成功, 而先 power off 再power on 则可根据返回判断是否关机成功.
用浏览器重启
首先考虑用浏览器连接ipmi:
- 点
Power Down, 看见Power On按钮从灰变亮, 则说明关电源成功. - 此时再点
Power On, 看见Power On按钮从亮变灰, 且点Refresh Console Preview后显示开机界面, 则说明开机成功.

用命令重启
若用浏览器连ipmi重启服务器不成功, 则尝试用命令行重启服务器
- 关机
sudo ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] chassis power off
返回如下则关机成功
Chassis Power Control: Down/Off
- 开机
sudo ipmitool -H <远程ipmi的ip> -p <远程ipmi的端口> -I lanplus -U <远程ipmi的用户名> [-P <远程ipmi的密码>] chassis power on
返回如下则开机成功
Chassis Power Control: Up/On
返回如下则是<远程ipmi的密码>输入错误
Error: Unable to establish IPMI v2 / RMCP+ session
- 浏览器上查看
然后在浏览器上ipmi页面, 点 Refresh Console Preview 后显示开机界面, 则说明开机成功.
远程控制开机界面
若上面虽然重启成功, 但ssh仍然连不上去, 则说明操作系统启动失败. 此时需要用桌面远程操控来进入recovery模式, 进行修复. 操作方法详见 linux开机界面.
看门狗安装
看门狗原理
BMC 上运行了一个计时器,称看门狗。操作性上运行了喂狗的守护进程,每隔几秒(如10秒)去重置 BMC 上的计时器,让它恢复起始计时(如300秒)。若因内内核死机(panic)、内存冻结等,没法及时喂狗,则计时器会持续倒计时。数到0秒时,“狗饿死咬人”,即 BMC 会执行预定操作,如让服务器重启、断电。注意,不是看门狗让系统死机,是若死机则看门狗让系统重启。
安装配置方法 手动执行
- 安装喂狗进程
sudo apt install ipmitool # 安装ipmi的命令行工具
sudo apt install watchdog # 安装喂狗进程
- 配置喂狗进程:
sudo vim /etc/watchdog.conf, 确认有以下几行,若被注释则解注释,若value不同则改之,若无此行则加此行
watchdog-device = /dev/watchdog # 狗的驱动 在文件系统下显示为一个特殊文件 /dev/watchdog,喂狗即每几秒往当中写东西,若此文件不更新,则狗“饿死”(倒计时耗尽)“咬人”(执行action)
watchdog-timeout = 300 # 狗的倒计时秒数
interval = 10 # 喂狗的间隔秒数
realtime = yes #
priority = 1
- 设置喂狗进程开机自启
sudo vim /etc/modules, 行尾添加
ipmi_watchdog
- 设置action:以下是失败的探索
设置计时到0后的操作默认为’reset’,即重启服务器,如需修改,则可尝试如下办法,来源,但此方法【我实验过无效】:
sudo vim /etc/default/openipmi, 确认有以下几行,若被注释则解注释,若value不同则改之,若无此行则加此行
IPMI_Watchdog=yes
IPMI_WATCHDOG_OPTIONS="timeout=240 action=reset" # action的其他选项 'none', 'power_cycle', 'power_off'
-
重启服务器,以使上述配置生效。重启之后测试:
- 开机自启
lsmod | grep ipmi返回
ipmi_devintf ipmi_si ipmi_watchdog # 必需要有这个 ipmi_msghandler- 喂狗进程状态
service watchdog status返回中必需有如下字样,表面喂狗进程持续运行
active (running)- 查看看门狗状态:连续执行多次
sudo ipmitool mc watchdog get返回
Watchdog Timer Use: SMS/OS (0x44) Watchdog Timer Is: Started/Running # 需要是Started/Running Watchdog Timer Actions: Hard Reset (0x01) # 需要是Hard Reset Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 300 sec Present Countdown: 292 sec # 多执行几次 这个数不小于 300 - 10 (喂狗间隔) -
死机测试:当上述测试正常,且目前无要运行的用户任务,则可在服务器上,用下法人为制造死机(来源),看看300秒后能否自动重启。若可以,说明看门狗能正常工作。
sudo su echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger
安装与测试脚本
安装脚本
sudo apt install ipmitool -y
sudo apt install watchdog -y
sudo mv /etc/watchdog.conf /etc/watchdog.conf_backup
sudo cat <<- EOM | sudo tee /etc/watchdog.conf > /dev/null
# ping = 172.31.14.1
# ping = 172.26.1.255
# interface = eth0
# file = /var/log/messages
# change = 1407
# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
# max-load-1 = 24
# max-load-5 = 18
# max-load-15 = 12
# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
# min-memory = 1
# allocatable-memory = 1
# repair-binary = /usr/sbin/repair
# repair-timeout = 60
# test-binary =
# test-timeout = 60
# The retry-timeout and repair limit are used to handle errors in a more robust
# manner. Errors must persist for longer than retry-timeout to action a repair
# or reboot, and if repair-maximum attempts are made without the test passing a
# reboot is initiated anyway.
# retry-timeout = 60
# repair-maximum = 1
watchdog-device = /dev/watchdog
watchdog-timeout = 300
# Defaults compiled into the binary
# temperature-sensor =
# max-temperature = 90
# Defaults compiled into the binary
# admin = root
interval = 10
# logtick = 1
# log-dir = /var/log/watchdog
# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime = yes
priority = 1
# Check if rsyslogd is still running by enabling the following line
# pidfile = /var/run/rsyslogd.pid
EOM
sudo echo ipmi_watchdog | sudo tee -a /etc/modules > /dev/null
# 确认安装成功
echo '---------------------------------------------------'
sudo ipmitool mc watchdog get
echo '---------------------------------------------------'
cat /etc/watchdog.conf
echo '---------------------------------------------------'
cat /etc/modules
重启
sudo reboot
测试脚本
lsmod | grep ipmi_watchdog; echo;
service watchdog status; echo;
for i in {1..5}; do sudo ipmitool mc watchdog get; echo; if [ $i -ne 5 ]; then sleep 3; fi; done
死机测试
echo 1 | sudo tee /proc/sys/kernel/sysrq
echo c | sudo tee /proc/sysrq-trigger
取消看门狗
若要让之后每次开机, 看门狗都关着, 需要如下设置:
-
从
sudo vim /etc/modules, 删去ipmi_watchdog -
重启系统
sudo reboot -
再次开机后, 看门狗还是开着的, 会持续倒计时, 一直数到 0, 然后自动重启系统. 自动重启前, 看门狗的状态为:
$ sudo ipmitool mc watchdog get Watchdog Timer Use: SMS/OS (0x44) Watchdog Timer Is: Started/Running # 看门狗是开着的 Watchdog Timer Actions: Hard Reset (0x01) # 到 0 重启系统 Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 600 sec Present Countdown: 230 sec # 持续减少, 到 0 重启系统 -
自动重启后, 看门狗变成了 stopped, 此后每次重启系统都是这样的:
$ sudo ipmitool mc watchdog get Watchdog Timer Use: SMS/OS (0x04) Watchdog Timer Is: Stopped # 变成stop了 Watchdog Timer Actions: Hard Reset (0x01) Pre-timeout interval: 0 seconds Timer Expiration Flags: 0x10 Initial Countdown: 600 sec Present Countdown: 0 sec
没有reset持续倒计时 - 抢救方法
若 ipmi_watchdog 模块之前一直在用,之后首次开机没有加载 ipmi_watchdog 模块(可能情况如:上文取消看门狗初次重启后,或 ipmi_watchdog 模块开机加载失败 ,等等原因),就会出现如下情况:
看见 sudo ipmitool mc watchdog get 返回
Watchdog Timer Use: SMS/OS (0x44)
Watchdog Timer Is: Started/Running
Watchdog Timer Actions: Hard Reset (0x01) # 只要不是none
Pre-timeout interval: 0 seconds
Timer Expiration Flags: 0x10
Initial Countdown: 300 sec
Present Countdown: 292 sec # 在不断减小,不reset
这表明电脑将很快执行重启、断点等action。故请立即执行
sudo ipmitool mc watchdog off
如此,倒计时关了,不再用担心被关机。
而后执行如下命令,以设置action=none。此设置立即生效,且只要开机不加载 ipmi_watchdog 模块,此设置在之后开机后依然有效,参考。若开机加载 ipmi_watchdog 模块,则实际执行的是 /etc/watchdog.conf 设置,而非如下设置。
sudo ipmitool raw 0x06 0x24 0x04 0x00 0x00 0x10 0xb8 0x0b
如此,会得到action=none, timeout=0xb8 0x0b= 300 s
$ sudo ipmitool mc watchdog get
Watchdog Timer Use: SMS/OS (0x44)
Watchdog Timer Is: Started/Running
Watchdog Timer Actions: No action (0x00)
Pre-timeout interval: 0 seconds
Timer Expiration Flags: 0x00
Initial Countdown: 300 sec
Present Countdown: 288 sec
看门狗的开关
- 查看看门狗配置
sudo ipmitool mc watchdog get
- 关看门狗,不再倒计时
sudo ipmitool mc watchdog off
- 依照最新的看门狗行为设置 启动看门狗
sudo ipmitool mc watchdog reset
看门狗行为设置
sudo ipmitool raw 0x06 0x24 0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ>
# sudo ipmitool raw | 0x06 0x24 | 0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ>
# |所设是看门狗 | 设置参数
0x06 0x24:所设置是看门狗
- 第一段 netfn:
0x06= "App Application Requests” - 第二段 cmd:
0x24= "Set Watchdog Timer”
0x04 0x<XX> 0x00 0x10 0x<YY> 0x<ZZ> :看门狗的设置参数,详见。以下只讲解action和实践,来源 :
- action:
0x<XX>

- 倒计时时长:范围 0.1(0X0001) ~6553.5(0XFFFF) seconds

例如
0xc8 0x00 = 0x00c8 x 100ms = 20,000 ms =20 s
0x00 0x0c= 0x0c00 x 100ms = 307 s
0xb8 0x0b = 0x0bb8 x 100ms = 300 s
https不安全-SSL证书过期
服务器端添加自签名证书
创私钥 ipmi.pem
openssl genrsa -out ipmi.pem 2048
用私钥 ipmi.pem 制备证书 ipmi.cert
openssl req -new -key ipmi.pem -out ipmi.cert
交互输入如下
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:Beijing
Locality Name (eg, city) []:Beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:THU
Organizational Unit Name (eg, section) []:XXX-Lab
# 也可不填
Common Name (e.g. server FQDN or YOUR name) []:localhost
# 其他的项目可以乱填,但这个必须写【localhost】,才能用ssh -L端口映射ipmi到localhost后,能安全地连接ipmi
Email Address []:aaaa@xxx.yyyy.cn
# 邮箱随便填
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
# 可不填, 直接回车
An optional company name []:
# 可不填, 直接回车
用私钥 ipmi.pem 签证书 ipmi.cert , 有效820天 (tls服务器证书有效期必需<=825天 出处)
openssl x509 -req -days 820 -in ipmi.cert -signkey ipmi.pem -out ipmi.cert
然后将 ipmi.cert 上传到 New SSL Certificate, ipmi.pem 上传到 New Private Key, 再点 Update.

若显示提交成功, 则会重启ipmi设备 (不是操作系统重启), 一分钟后重新登录此页面, 则有了一个自签名的SSL证书.
浏览器端设置
把刚才的证书添加到本地的钥匙串
- mac:
# 若仅为当前用户添加, catalina系统还允许如此操作
security import ipmi.pem -k ~/Library/Keychains/login.keychain
# 若需为所有用户添加, 但catalina系统不允许如此操作了
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ipmi.pem
设置浏览器允许访问不安全的localhost
- chrome 浏览器 访问如下url
chrome://flags/#allow-insecure-localhost
此项改成enable, 即可访问 https://127.0.0.1:<端口>
- firefox: 无需设置即可访问
https://127.0.0.1:<端口> - safari: 可直接访问
https://localhost:<端口>; 若无法访问之, 可访问https://127.0.0.1:<端口>; 欲修复https://localhost:<端口>的访问, 需