esxi6.5web页面打不开排查

问题描述:

故障背景:

  1. vcenter管理平台中的其中一台exsi主机的web页面打不开(exsi6.5) https://192.168.99.25
  2. exsi主机内有正在运行的虚拟机

机器清单:

机器名ip机器类型
管理机192.168.99.225vcenter管理机(vsphere client)
exsi主机192.168.99.25exsi服务器(内有正在运行的虚拟机)

排查流程:

排查vSphere/vCenter配置问题(针对禁止直连,15-20分钟)

  • 检查并禁用直连限制
  • 在vCenter > 主机 > “Configure” (配置)> “Security Profile”(安全配置文件) > “Lockdown Mode”(锁定模式)确认已禁用。
  • image-20251111103757785
  • vSphere/vCenter配置禁止直连访问:在vCenter中,可能启用了“锁定ESXi主机”或“禁用直连vSphere Client”策略(ESXi 7.0+有此选项),或vCenter的Enhanced vMotion Compatibility(EVC)模式/集群设置限制了直连。vSphere Client通过vCenter连接成功,但直连被禁用。
  • 如图:EVC模式禁用,说明没有限制直连 image-20251111102842852

一、给服务器插上键盘显示器,看到exsi系统首页,输入root密码

  • 按F2,进入配置页面
  • 进入“系统自定义” > “故障排除选项”(Troubleshooting Options)
  • 使用方向键选择“Troubleshooting Options”,按 Enter 。
  • 启用 ESXi Shell
  • 选择“Enable ESXi Shell”,按 Enter ,当右侧显示“ESXi Shell is Enabled”即可。
  • (可选)同时建议启用 SSH
  • 在同一菜单下选择“Enable SSH”,按 Enter ,右侧显示“SSH is Enabled”。

二、进入命令行界面

  • 回到控制台主界面,按 Alt + F1 组合键
  • 屏幕会变黑并出现登录提示。
  • 输入你的管理员用户名(通常是 root )和密码,即可进入命令行。
  • ⚠️ 注意:如果未通过上述步骤启用 ESXi Shell,按 Alt + F1 只会出现一个闪烁光标,无法登录。
  • 操作完成后返回图形界面
  • 在命令行页面,按 Alt + F2 可以切回原来的图形化界面。

三、ESXi Shell界面操作:

ESXi 6.5 使用的是 Host Client 而不是 vSphere Client,所以不必检查vSphere Client ui服务是否存在,现在telnet连接22,443端口都没反应,先看一下是不是两张网卡导致的网络问题

2张网卡
1. 检查正确的服务状态

在 ESXi 6.5 中,Web 界面由不同的服务管理:

# 检查 ESXi 6.5 的 Web 服务状态
/etc/init.d/hostd status
/etc/init.d/vpxa status

# 检查反向代理服务(关键!)
/etc/init.d/rhttpproxy status
2. 重启 ESXi 6.5 特定的 Web 服务
# 停止服务
/etc/init.d/rhttpproxy stop
/etc/init.d/hostd stop

# 等待几秒
sleep 10

# 重新启动服务
/etc/init.d/hostd start
/etc/init.d/rhttpproxy start
3. 检查端口监听情况

由于 netstat 不可用,使用 ESXi 的命令:

# 检查端口监听
esxcli network ip connection list | grep -E "(443|902|80)"

# 或者使用
net-stats -l
da7aa169f27280d1b2c3d220f839bcda
d11ac80a91bebad164f721d725ac5f57
4. 检查 vmk1 (192.168.99.248) 的影响

这个额外的 vmkernel 端口可能是问题的根源:

# 查看所有 vmkernel 端口的详细信息
esxcli network ip interface list

# 检查默认网关和路由
esxcli network ip route ipv4 list
# 查看所有vmkernel接口(IP、子网、网关)
esxcli network ip interface ipv4 get -i vmk0
esxcli network ip interface ipv4 get -i vmk1 
bd14c2bcc54e301b29f778b5a577878f
dc429b356e3b3c2a4b444422809bbfeb

可能的问题:如果 vmk1 配置了网关,可能导致管理流量的路由混乱。

从以上的排查步骤可以得出结论:

  1. rhttpproxy 和 hostd 服务已成功重启
  2. 80 和 443 端口都在 LISTEN 状态
  3. 路由配置有问题!
65f54f7972885eee9d3728447ada67e4
路由配置冲突:
路由表显示:
default,0.0.0.0,192.168.99.1,vmk0,manual
192.168.0.0,255.255.0.0,0.0.0.0,vmk1,manual
192.168.99.0,255.255.255.0,0.0.0.0,vmk0,manual

问题在于vmk1 配置了一条 192.168.0.0/16 的路由,这可能会干扰到管理网络的路由。

临时禁用 vmk1 测试
6c5c388b78908b5403535b59f087567c
# 临时禁用 vmk1
esxcli network ip interface set -e false -i vmk1

# 测试 Web 访问是否恢复
# 如果恢复,说明 vmk1 配置有问题

# 重新启用(如果需要)
esxcli network ip interface set -e true -i vmk1

成功访问,问题解决

测试web页面成功访问,定位问题源于vmk1的路由条目192.168.0.0/255.255.0.0 via 0.0.0.0 on vmk1(这是一个本地/无网关的广域路由,覆盖了192.168.0.0到192.168.255.255的整个范围)。虽然管理IP(vmk0: 192.168.99.25)在192.168.99.0/24子网内,但这个vmk1路由可能导致:

  • 路由优先级冲突:ESXi在处理管理流量(e.g., HTTPS 443端口)时,如果流量被误判为匹配vmk1的广域路由,会绕过vmk0的默认路由(192.168.99.1),造成web服务(rhttpproxy/hostd)响应异常或丢包。
  • 为什么临时禁用vmk1有效:它切断了这个干扰路由,但不是永久方案,重启后会恢复。

后续步骤(永久生效):

已知vmk1这块网卡只用于虚拟机迁移用,我们现在用不到这块网卡,故决定从机器中删除

在vcenter中移除有问题的vmk1:如图

image-20251111171140768

检查:

# 查看完整路由表
esxcli network ip route ipv4 list
#没有出现vmk1
#测试是否将vmk1清理干净:
esxcli network  network ip interface set -e true -i vmk1
#显示没有vmk1,即使重启服务器也不会重复出现此次问题
6eaca1f13af05c7db7e7e1f109ee80fc

其他排查命令:

检查 ESXi 主机配置文件
# 查看管理网络配置
esxcli network ip interface ipv4 get -i vmk0

# 检查 DNS 配置
esxcli network ip dns server list
查看 Web 服务相关日志
# 查看最近的系统日志
tail -20 /var/log/messages

# 查看 hostd 日志中与 Web 相关的错误
grep -i error /var/log/hostd.log | tail -10
grep -i "443\|http" /var/log/hostd.log | tail -10
验证 SSL 证书状态

ESXi 6.5 有时会有 SSL 证书问题:

# 检查证书状态
/etc/init.d/hostd status | grep -i ssl

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部