前言

最近在维护几台浪潮NF5280M4服务器时,BMC和BIOS固件版本很低,升级了一下固件版本。本以为一切顺利,没想到升级后BMC的KVM远程控制台死活打不开。拿一台库存NF5280M4服务器折腾了挺长时间,最终发现是Java配置的细节导致的。记录一下排查过程。

问题现象

升级固件后,通过浏览器访问BMC管理界面,点击KVM控制台时,浏览器下载jviewer.jnlp文件,但双击运行后Java Web Start报错:“无法启动该应用程序”。
浪潮服务器BMC的KVM无法启动-1.webp
起初以为是常见的安全策略问题,于是按照常规操作将BMC的IP地址添加到Java控制面板的"例外站点"列表中,但问题依旧存在。
浪潮服务器BMC的KVM无法启动-2.webp

排查过程

第一步:确认Java版本

折腾很久,没办法只能发邮件咨询浪潮官方技术支持,得到反馈:BMC固件4.46.0版本,打开KVM需要使用Java 1.8版本。
检查本地环境,发现当前安装的Java版本是1.7。卸载Java,重新安装Java 1.8.0版本(1.8.0_131版本)。然而升级后重新打开jviewer.jnlp,依然报错:“无法启动该应用程序”。
浪潮服务器BMC的KVM无法启动-3.webp 浪潮服务器BMC的KVM无法启动-4.webp

第二步:检查Java高级配置

从头开始梳理,想到这台电脑之前因为其他服务器的问题修改过Java配置。打开Java控制面板,进入"高级"选项卡,发现之前勾选了多个SSL/TLS相关的安全选项,而且报错也提示与SSL相关。
浪潮服务器BMC的KVM无法启动-5.webp
逐一排查后发现,使用与SSL2.0兼容的ClientHello格式这个选项是罪魁祸首!当勾选此选项时,打开jviewer.jnlp就会提示报错:“无法启动该应用程序”,取消勾选后立即恢复正常。

浪潮服务器BMC的KVM无法启动-6浪潮服务器BMC的KVM无法启动-7

推荐的SSL/TLS配置

经过测试,建议Java控制面板->高级->安全中的配置如下:

  • 取消勾选:使用与SSL2.0兼容的ClientHello格式
  • 保留/建议勾选

    • 使用TLS 1.0
    • 使用TLS 1.1
    • 使用TLS 1.2

浪潮服务器BMC的KVM无法启动-12.webp

其他常见问题及解决

在解决过程中,还遇到了一些衍生问题,一并分享:

1. 浏览器无法下载jviewer.jnlp文件

  • 现象:点击KVM按钮后,浏览器提示"请检查互联网连接状况",无法下载文件。

浪潮服务器BMC的KVM无法启动-11.webp

  • 原因:现代浏览器(特别是Chrome)对Java Applet和JNLP文件的支持越来越差,安全策略限制严格。
  • 解决:推荐使用Firefox(火狐浏览器)访问BMC,兼容性最佳。IE浏览器也可作为备选,但需注意ActiveX控件设置。

2. Java安全级别设置

除了SSL配置,还需要确保:

  • 在Java控制面板"安全"选项卡中,将BMC的IP添加到例外站点列表
  • 安全级别建议设置为"高"或"中"(不要设置为"非常高",会阻止所有未签名应用)

完整解决方案总结

如果你也遇到浪潮NF5280M4(或其他使用Java KVM的浪潮服务器)无法启动远程控制台的问题,按以下步骤排查:

  1. Java版本:安装Java 1.8(推荐1.8.0_131或1.8.0_201等早期update版本,过于新的版本可能也有兼容性问题)
  2. 浏览器选择:使用Firefox访问BMC,避免Chrome/Edge的下载拦截
  3. 例外站点:在Java控制面板中将BMC IP添加到例外站点
  4. SSL配置:取消勾选"使用与SSL2.0兼容的ClientHello格式",推荐启用TLS 1.0/1.1/1.2选项

结语

这次排障经历再次证明:服务器硬件维护中,软件环境的配置细节往往比硬件本身更容易成为"坑"。特别是Java这种版本迭代快、安全策略变化大的运行时环境,保持适度的"保守"(使用经过验证的版本和配置)比追求最新版更稳妥。