IPMI 使用什么端口?UDP 623 与各厂商 BMC 端口汇总
IPMI over LAN 只用一个端口:UDP 623。但日常远程管理还会用到 BMC 的 Web 界面(TCP 443)、远程控制台和虚拟介质,这几个端口各厂商并不相同,放行防火墙前要按型号逐项核对。
IPMI 协议本身只用 UDP 623
IPMI 使用什么端口,取决于你问的是协议本身还是整套远程管理。协议本身的答案很简单:IPMI over LAN 走 UDP 623。IPMI 1.5 使用 RMCP(Remote Management Control Protocol),IPMI 2.0 使用带加密和更完善认证的 RMCP+,两者都封装在 UDP 623 里,这也是 IANA 为 ASF-RMCP 登记的端口号。部分 BMC 还会监听 UDP 664(ASF 安全 RMCP),实际管理工具几乎不用。
几个容易误解的地方:
- 只有 BMC 一侧固定 623。ipmitool 之类的客户端用随机高位源端口发包,BMC 从 623 回包到这个源端口。防火墙必须允许这条 UDP 回程:带连接跟踪的防火墙会自动处理,老式无状态 ACL 需要额外写一条反向规则。
- SOL 不需要额外端口。串口重定向(Serial over LAN)跑在同一条 RMCP+ 会话里,放行了 623 就能用。
- 带内 IPMI 不走网络。在服务器操作系统里通过
/dev/ipmi0(KCS 接口)执行 ipmitool,不经过网口,与端口无关。 - 端口可以在命令里指定。如果 BMC 确实改了端口(少见),ipmitool 用
-p参数指定:
ipmitool -I lanplus -H 10.20.0.15 -p 623 -U admin -P '密码' chassis power status
远程管理实际用到的端口清单
真正让人头疼的不是 623,而是 BMC 上的其他服务。一台服务器的带外管理通常涉及下面这些端口:
| 用途 | 默认端口 | 协议 | 说明 |
|---|---|---|---|
| IPMI over LAN(RMCP/RMCP+、SOL) | 623 | UDP | 标准固定,各厂商一致 |
| Web 管理界面、Redfish、WS-Man | 443(80 多为跳转) | TCP | 部分厂商的 HTML5 控制台也复用 443 |
| SSH 命令行(RACADM、iLO CLI、SMASH CLP) | 22 | TCP | 多数默认开启,不用时可关闭 |
| SNMP 采集与告警 | 161 / 162 | UDP | 162 是 BMC 向监控服务器发 Trap |
| 远程控制台(KVM,独立客户端或 Java) | 因厂商而异 | TCP | 见下表 |
| 虚拟介质(挂载 ISO) | 因厂商而异 | TCP | 部分厂商与控制台共用端口 |
| VNC 服务(部分 BMC 提供) | 5900 或 5901 | TCP | 需在 BMC 里手动开启 |
“服务器远程控制端口号是多少”这个问题,答案落在最后三行:控制台与虚拟介质的端口没有统一标准,每家自己定。
各厂商 BMC 默认端口对照
下表是主流 BMC 的出厂默认值,固件版本不同会有出入,以厂商当前文档为准。
| 厂商 / BMC | Web | SSH | IPMI | 远程控制台 | 虚拟介质 | 其他 |
|---|---|---|---|---|---|---|
| Dell iDRAC7/8/9 | 443 | 22 | UDP 623 | TCP 5900 | TCP 5900 | VNC 服务 TCP 5901(Enterprise 许可开启后) |
| Dell iDRAC6 | 443 | 22 | UDP 623 | TCP 5900(键鼠)、5901(视频) | TCP 3668 / 3669 | 老机型端口拆得更细 |
| HPE iLO 4/5 | 443 | 22 | UDP 623 | TCP 17990 | TCP 17988 | iLO 5 的 IPMI over LAN 出厂默认关闭,需手动开启 |
| 超微 Supermicro | 443 | 22 | UDP 623 | TCP 5900(Java iKVM);HTML5 走 443 | TCP 623 | 虚拟介质用的是 TCP 623 |
| 联想 XCC | 443 | 22 | UDP 623 | TCP 3900 | TCP 3900 | — |
| 华为 iBMC | 443 | 22 | UDP 623 | TCP 2198 | TCP 8208 | VNC 服务 TCP 5900 |
| 思科 CIMC | 443 | 22 | UDP 623 | TCP 2068 | TCP 2068 | — |
| AMI MegaRAC 白牌 | 443 | 22 | UDP 623 | 因主板厂商而异,常见 5900 或 7578 | 常见 5120–5123,或与控制台共用 | 以主板厂商文档为准 |
几点实际经验:
- iDRAC 和超微都用 5900,但含义不同:iDRAC 的 5900 是虚拟控制台和虚拟介质共用;超微的 5900 只给 Java iKVM,挂 ISO 要另外放行 TCP 623。
- iLO 的 17990 和 17988 是 HPE 独有的端口号,在防火墙上很容易被漏掉,表现为网页能登录、控制台打不开。
- HTML5 控制台不一定只走 443:超微的 HTML5 iKVM 复用 443,而 iDRAC9 的 HTML5 虚拟控制台仍然要放行 5900。稳妥的做法是把 443 与控制台、虚拟介质端口一起放行,不要只开 443。
防火墙怎么放行
原则是:BMC 只对管理网开放,来源限定为运维跳板机或管理系统所在的地址段,不对公网开放任何端口。下面是一台 Linux 网关把管理网 10.10.0.0/24 与 BMC 网段 10.20.0.0/24 隔开时的规则:
# 允许管理网访问 BMC 网段的 IPMI 与常用 TCP 服务
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -p udp --dport 623 -j ACCEPT
iptables -A FORWARD -s 10.10.0.0/24 -d 10.20.0.0/24 -p tcp -m multiport --dports 22,443,5900,5901 -j ACCEPT
# 放行已建立连接的回程包(UDP 623 的回包也靠这条)
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 其余进入 BMC 网段的流量一律丢弃
iptables -A FORWARD -d 10.20.0.0/24 -j DROP
如果机房里混有 HPE、华为等品牌,把 17990、17988、2198、8208 等端口按实际型号加进 --dports 列表;有超微还要加一条 TCP 623。SNMP 采集单独放行 UDP 161;Trap 是 BMC 主动发往监控服务器的 UDP 162,方向相反,规则要写在另一侧。
怎么测试端口通不通
# UDP 623:显示 open 说明收到 RMCP 响应;open|filtered 表示没被拒绝但也没应答
nmap -sU -p 623 --script ipmi-version 10.20.0.15
# 直接用 ipmitool 探测,比端口扫描更可靠
ipmitool -I lanplus -H 10.20.0.15 -U admin -P '密码' mc info
# TCP 端口(Web、控制台、虚拟介质),逐个测试
for p in 22 443 5900; do nc -zv -w 3 10.20.0.15 $p; done
Windows 上可以用 Test-NetConnection 10.20.0.15 -Port 443 检查 TCP,但它不能测 UDP,623 还是要靠 ipmitool。
顺手多做一项检查:nmap -sU -p 623 --script ipmi-cipher-zero 10.20.0.15。老固件的 BMC 常常开着 RMCP+ 的 Cipher Suite 0,这个套件不校验密码,任何知道用户名的人都能建立会话。扫描结果提示存在时,在 BMC 的 IPMI 设置里关闭该套件,或者升级固件。这也是 623 端口绝不能对公网开放的原因之一。
ipmitool 报错怎么读:
| 现象 | 常见原因 |
|---|---|
长时间无响应后提示 Unable to establish IPMI v2 / RMCP+ session |
UDP 623 被拦、BMC 未开启 IPMI over LAN,或 BMC 网口没通 |
RAKP 2 HMAC is invalid |
密码错误 |
Insufficient privilege level |
账号权限不是 Administrator,或 LAN 通道的权限上限被限制 |
| nmap 显示 623 open 但 ipmitool 超时 | 中间设备只放行了去程没放回程,或 ipmitool 使用的加密套件被 BMC 禁用 |
开关 IPMI over LAN 与修改端口
近几年的 BMC 固件出于安全考虑,出厂时往往关闭了 IPMI over LAN,只保留 Web 和 Redfish。如果 nmap 显示 623 被过滤而防火墙规则没问题,先检查 BMC 里的开关:
- Dell iDRAC9:iDRAC Settings → Connectivity → Network → IPMI Settings,勾选 Enable IPMI Over LAN,并把 Channel Privilege Level Limit 设为 Administrator;命令行执行
racadm set iDRAC.IPMILan.Enable 1。 - HPE iLO 5:Security → Access Settings → Network,打开 IPMI/DCMI over LAN;iLO 4 在 Administration → Access Settings。
- 联想 XCC:BMC Configuration → Network → Service Enablement and Port Assignment,启用 IPMI。
- 超微:Configuration → Port 页面列出各服务及端口状态。
- 华为 iBMC:在服务管理页面开启 IPMI 相关服务。
UDP 623 由标准固定,主流 BMC 都不提供修改入口,只能开或关。Web、SSH、控制台、虚拟介质、VNC 这些 TCP 端口大多可以改。以 iDRAC 为例:
racadm set iDRAC.WebServer.HttpsPort 8443
racadm set iDRAC.SSH.Port 22
racadm set iDRAC.VirtualConsole.Port 5900
racadm set iDRAC.VNCServer.Enable 1
racadm set iDRAC.VNCServer.Port 5901
iLO 在 Access Settings 页面修改 SSH、Web、Remote Console、Virtual Media 端口;超微在 Configuration → Port;XCC 在 Service Enablement and Port Assignment。
要不要改?在独立管理 VLAN 里,改端口带来的安全收益很小,代价是所有管理工具、监控脚本和防火墙规则都要跟着改,一旦有台机器忘了同步就会失联。更稳妥的做法是保持默认端口,把精力放在访问来源控制、关闭不用的服务和及时升级固件上。
在管理系统里怎么落地
机房里品牌一多,每台机器该放行哪些端口、控制台该用哪种客户端,很难靠人记。Toplink DCIM 的做法是在每个机房部署从节点,从节点接入 BMC 所在的管理网就近连接,运维人员只需访问 DCIM 后台,不必为每个人的电脑逐一开通到 BMC 的防火墙策略。IPMI 远程管理页面列出了针对 iDRAC、iLO、iBMC、超微等主流 BMC 做过适配的控制台类型;BMC 地址段可以在 IP 地址管理里标记为 IPMI 类型单独统计,哪台机器的管理口用的哪个地址,一查便知。
常见问题
IPMI 623 端口是 TCP 还是 UDP?
标准的 IPMI over LAN(RMCP/RMCP+)只用 UDP 623。个别厂商会另外在 TCP 623 上运行虚拟介质等私有服务,例如超微的 BMC,所以防火墙规则要把 UDP 和 TCP 分开写。
Redfish 用什么端口?
Redfish 是跑在 HTTPS 上的 REST 接口,与 BMC 的 Web 界面共用 TCP 443,入口路径是 /redfish/v1。放行了 443 就能用,不需要额外端口。
IPMI 端口可以改成别的吗?
UDP 623 由标准固定,主流 BMC 都不允许修改,只能开关;Web、SSH、控制台、虚拟介质这些 TCP 端口通常可以在 BMC 的服务设置里修改。
机房里 BMC 端口需要对公网开放吗?
不需要,也不建议。BMC 端口只应对管理网或跳板机开放,暴露在公网的 623 端口会被持续扫描,而 BMC 拥有服务器的完全控制权。