故障现象

  1. 基础现象:通过映射的域名/地址(如https://10.0.0.234:8443 或 https://idrac-mapping:8443)登录 iDRAC 时,浏览器直接弹出「Bad Request」提示,部分浏览器会显示「400 Bad Request」错误码,无法进入 iDRAC 登录页面;
  2. 排查特征:跳过映射,直接使用 iDRAC 静态IP(如 https://192.168.0.120)登录,可正常进入登录页面、完成认证,排除 iDRAC 本身故障、账号密码错误、网络不通等问题;
  3. 辅助特征:更换浏览器、清除缓存/Cookie后,映射登录仍报相同错误;若映射地址带自定义端口(非443),错误现象一致,核心原因均为「映射地址与 iDRAC Host Header 校验不匹配」。

方法核心原理

iDRAC Web 服务器默认开启 Host Header 校验(防止 Host Header 攻击),当映射的域名/访问地址与 iDRAC 自身配置不匹配时,请求会被拒绝,报 400 Bad Request。

本方法通过 racadm 命令关闭 Host Header 校验,快速绕过地址匹配限制,实现正常登录,属于应急解决方案,不推荐长期开启。

问题解决逻辑

核心矛盾:映射地址未被 iDRAC 识别,导致其发送的 Host 请求头被 iDRAC Web 服务器拒绝;

解决思路:不修改映射配置、不调整 iDRAC DNS 配置,直接临时关闭 iDRAC 的 Host Header 校验功能,允许所有 Host 请求头访问,快速解决登录问题(应急优先);

后续衔接:登录成功、完成所需操作(如配置修改、固件升级、故障排查)后,建议立即恢复 Host Header 校验,降低安全风险,同时建议切换为长期解决方案(方法1)。

前置准备

  • SSH工具
  • iDRAC 的账号密码(需管理员权限)
  • SSH 直连:电脑通过SSH连接 iDRAC 静态IP(默认端口22),账号密码为 iDRAC 管理员账号(如root/calvin);

完整操作步骤

  1. 连接 iDRAC(以 SSH 直连为例):打开终端/CMD,输入命令:ssh root@iDRAC静态IP(替换为自己的 iDRAC IP,如 ssh [email protected]),回车后输入 iDRAC 管理员密码(输入时不显示,输完回车即可)。
  2. 关闭 Host Header 校验:

    输入命令(复制即可,无需修改):
    
    racadm set idrac.webserver.HostHeaderCheck 0

    说明:0=关闭校验,1=开启校验(默认值),执行后会提示“Success”,表示命令执行成功。

  3. 重启 iDRAC Web 服务(实际测试不重启好像也可以):

    输入命令:
    
    racadm racreset soft

    说明:soft 表示软重启,仅重启 Web 服务,不影响 iDRAC 其他功能,也不影响服务器正常运行,重启耗时约1-2分钟。

  4. 验证操作结果:

    等待1-2分钟后,用映射的域名/地址重新登录 iDRAC,若能正常进入登录页面,无 Bad Request 提示,即为操作成功。
    

关键注意事项

  • 安全风险:关闭 Host Header 校验会降低 iDRAC Web 服务的安全性,可能遭受 Host Header 欺骗攻击,仅用于应急登录,问题解决后建议尽快改回开启状态
  • 重启说明:必须执行 racreset soft 命令重启 Web 服务,否则配置不生效;软重启不影响服务器业务,无需担心业务中断。
  • 命令补充:后续恢复开启校验的命令:

    racadm set idrac.webserver.HostHeaderCheck 1

    执行后同样需重启 Web 服务(racadm racreset soft)。

  • 异常处理:若执行命令提示“Permission denied”,说明账号无管理员权限,更换 root 账号重试;若提示命令不存在,检查 racadm 工具是否安装到位,或 SSH 连接是否正常。

其他补充建议

    1. 应急优先,长期优化:本方法仅用于紧急登录,登录后建议立即配置「方法1:添加手动DNS条目」,既保证映射正常使用,又开启 Host Header 校验,兼顾安全与可用性(具体命令可参考相关操作文档);
    1. 提前备份配置:操作前建议通过 iDRAC Web 界面或 racadm 命令备份 iDRAC 当前配置(racadm getconfig -f idrac-backup.cfg),避免误操作导致配置丢失,便于快速回滚;
    1. 固件定期升级:若频繁出现映射登录异常,建议升级 iDRAC 固件至最新稳定版(如 iDRAC9 升级至6.20+),修复已知的 Host Header 校验相关 Bug,减少故障复发;
    1. 映射配置规范:映射时优先使用 HTTPS 协议(与 iDRAC 默认协议一致),禁用 HTTP 映射;若需使用自定义端口,需在 iDRAC 中添加对应端口配置,同时更新 ManualDNSEntry,避免端口不匹配导致的二次故障;
    1. 账号权限管控:避免使用 root 账号长期操作,可创建具有 racadm 操作权限的普通管理员账号,仅在应急操作时使用,降低账号泄露带来的安全风险;
    1. 故障记录归档:每次出现 Bad Request 错误时,记录映射地址、操作时间、解决步骤及恢复情况,形成故障台账,后续出现同类问题可快速定位,提升排查效率。

其他方案

方案1:添加手动DNS条目

让 iDRAC 识别映射的 FQDN/域名,通过 racadm(本地/SSH/远程)执行:

# 替换为你的映射域名(如 idrac-server01.example.com)
racadm set idrac.webserver.ManualDNSEntry "idrac-server01.example.com"
# 重启Web服务生效
racadm racreset soft
  • 若有多个映射域名,用逗号分隔:racadm set idrac.webserver.ManualDNSEntry "idrac01.example.com,idrac01.bmc"
  • 验证:racadm get idrac.webserver.ManualDNSEntry

参考链接:

  • [iDRAC8内网访问webserver没有任何问题,但是通过公网访问或者二级代理请求访问出现400访问错误的解决方案。 - 星小梦 - 博客园]

https://www.cnblogs.com/XingXiaoMeng/p/17060182.html

最后修改:2026 年 01 月 28 日
如果觉得我的文章对你有用,请随意赞赏