解锁vSphere小技能:最常用的 ESXCLI 命令汇总

Lear 2025-07-28 11:00:00
Categories: > > Tags:

解锁vSphere小技能:最常用的 ESXCLI 命令汇总

在日常运维中,我们通常会使用 vSphere Client(VMware 提供的图形化管理界面) 或基于 Web 的 vSphere Web/HTML5 Client 来管理 ESXi 主机和整个 VMware 环境。

虽然大部分配置和操作都可以通过 GUI 进行,但总会有一些关键参数无法在图形界面中显示或修改。这时,你就需要更底层、更强大的方式来操控——也就是命令行接口(CLI)或我们常说的“控制台(Console)”。

CLI 不仅可以访问隐藏设置,还支持对系统进行全面且精细的管理操作。除了通用的类 Linux 命令外,ESXi 还提供了专属的命令集合——ESXCLI

为了帮助你更高效地管理 VMware 环境,本文将以命令目录的方式,系统整理出最常用的 ESXCLI 命令,这些命令都属于 ESXi Shell 命令体系的一部分,值得收藏学习。一、如何打开 ESXi Shell 控制台?

默认情况下,ESXi Shell 是被禁用的,无论是本地访问还是远程访问(SSH)均不可用。这意味着,在未启用 Shell 或 SSH 前,你将无法执行任何 ESXi Shell 命令。

VMware 之所以这样设计,是出于安全性考虑:避免未经授权的 CLI 操作破坏主机配置或暴露系统漏洞。

通过默认 ESXi 界面启用控制台

当你可以直接接触 ESXi 主机的物理控制台(即连接了显示器和键盘的情况),可以使用主机默认界面(DCUI)来启用 Shell 和 SSH:

图片通过 VMware Host Client(Web 页面)启用控制台访问

图片通过 vCenter 和 vSphere Client 启用控制台访问

图片二、通过 SSH 连接到 ESXi 主机

图片

图片

三、ESXCLI 命令概览ESXCLI 是 ESXi Shell 的一部分,是一个强大的命令行框架,用于管理虚拟基础架构中的各个组件(包括硬件、网络、存储等),并能在底层对 ESXi 主机本身进行控制。从技术角度讲,ESXCLI 实际上是一个 Python 脚本,位于 ESXi 主机的路径 /bin/esxcli.py。所有的 ESXCLI 命令都必须在 ESXi Shell(控制台)环境下运行。你可以通过执行以下命令,定位 esxcli 命令的位置并了解 ESXCLI 的相关信息:which esxclils -l /sbin/esxcli

图片

通过查看控制台输出,你可以确认 esxcli 是一个用 Python 编写的脚本,位于 ESXi 主机的 /sbin/ 目录下。

如果你想查看该脚本的具体内容,可以使用 ESXi 自带的文本编辑器 vi 来打开它。

ESXCLI 的基本语法格式如下:**esxcli [options] {namespace}+ {cmd} [cmd options]**也就是说,ESXCLI 由多个“分支”组成,这些分支即为 ESXCLI 命令的主要分类——命名空间(namespaces)。需要注意的是,ESXCLI 命令区分大小写,与 ESXi 中其他控制台命令类似,使用时需严格遵循大小写规则。运行以下命令可以列出当前 ESXi 版本支持的全部 ESXCLI 命令及命名空间:esxcli esxcli command list

不同版本的 ESXi 支持的 ESXCLI 命令可能存在差异;随着 ESXi 的不断迭代更新,新的命令和功能会被不断加入。

因此,ESXi 8.0 版本中常用的 ESXCLI 命名空间(Namespaces)列表如下:

主要的 ESXCLI 命令通常以动词形式呈现,用于表示具体的操作动作,例如:

比如,你可以输入以下命令来查看某个命名空间下的所有可用子命令:

esxcli network,直接回车,这将列出 network 命名空间中支持的所有子命令。

进一步,你可以继续深入查看更具体的子命令,比如:

**esxcli network vm,直接回车,**该命令会列出 network vm 命名空间下与虚拟机网络相关的所有操作命令。

通过这种方式,你可以像浏览目录一样逐层探索 ESXCLI 命令结构,即使不记得完整命令也能轻松定位所需操作。

图片

ESXCLI 的日志文件位于以下路径:/var/log/esxcli.log

当某条 ESXCLI 命令执行失败时,相关错误信息会被记录到该日志文件中。如果命令执行成功,则不会向该日志文件写入任何内容。因此,当你在排查命令执行问题时,可以优先查看该日志文件获取详细的错误信息,有助于快速定位问题根源。四、常用 ESXCLI 命令汇总
在了解了 ESXCLI 命令的基本工作原理之后,接下来我们将介绍一些在 VMware vSphere 环境中非常实用的 ESXCLI 命令示例。本章节的命令清单将按照命名空间(namespace)分类组织,便于查阅和理解。例如网络(network)、存储(storage)、系统(system)等类别,分别对应 ESXCLI 命令的核心功能模块。
用于查看 ESXi 硬件信息的常用命令通过使用 hardware 命名空间,可以查看主机中已安装硬件设备的详细信息。

除了默认的背景屏幕和主菜单提示(例如:“<F2> Customize System/View Logs <F12> Shut Down/Restart” 以及管理主机的 IP 地址),你还可以通过命令设置自定义的欢迎消息。设置自定义欢迎信息后,黑屏界面将只显示你设置的消息内容。如果需要提醒用户操作,可以在自定义信息中提示“请按 F2”,避免使用者产生困惑自定义欢迎消息可以用来在未登录状态下,隐藏连接到 ESXi 主机显示器上的敏感信息,增强安全性。设置自定义欢迎消息示例:esxcli system welcomemsg set -m=”Welcome to SZYY! Press F2”查看当前欢迎消息:

esxcli system welcomemsg get

通过此命令,可以验证当前是否已经设置了自定义欢迎消息。

ESXCLI Network 命令集介绍

Network 是 ESXCLI 中最大的命名空间之一,包含了大量用于网络配置和管理的命令。

接下来,我们将重点介绍一些在网络诊断和故障排查中非常实用的命令,帮助你快速定位和解决网络相关问题。

图片

图片

出于安全考虑,建议始终保持 ESXi 防火墙处于启用状态。

network命名空间包含大量命令,本章仅介绍其中最基础且常用的部分。ESXCLI 可以配置非常丰富的网络参数,但完整详尽的操作讲解较为繁琐,超出了本篇文章的范围。ESXCLI Storage 命令集介绍storage命令集允许你查看和管理存储相关的设置。

如何使用 ESXCLI 检查硬盘 SMART 状态

S.M.A.R.T.(自我监控、分析与报告技术)是硬盘内置的一项健康监控机制,在 VMware ESXi 环境中同样适用。
通过读取硬盘的 S.M.A.R.T. 数据,管理员可以及时识别潜在的磁盘问题。

如果 S.M.A.R.T. 检测到异常指标,如过高的重映射扇区计数、读取错误率或温度问题,您可以提前规划磁盘更换,防止因存储故障造成的业务中断。

图片查看 ESXi 主机中的 iSCSI 适配器列表在 VMware vSphere 环境中,iSCSI(Internet Small Computer System Interface) 是一种常用的块级共享存储访问协议,广泛用于连接外部 SAN 存储设备。为了简化对 iSCSI 配置与诊断的操作,ESXi 提供了专门的 iscsi 命名空间,允许管理员通过命令行方式执行各类 iSCSI 相关的任务,包括适配器管理、目标连接、网络绑定等。使用以下命令可以查看 iscsi 命名空间下可用的子命令:esxcli iscsi输出将显示包括如下子模块在内的可用命令集合:

查看 iSCSI 适配器列表:esxcli iscsi adapter list重新发现与扫描 iSCSI 适配器:esxcli iscsi adapter discovery rediscover -A vmhba65esxcli storage core adapter rescan -A adapter_name如果你不想指定具体的适配器(使用 -A adapter_name),可以使用 –all 参数对所有存储适配器进行重新扫描。图片检查ESXi VIB包在 VMware vSphere 环境中,ESXi 所使用的软件包通常以 VIB 文件(vSphere Installation Bundle) 的形式进行分发。

VIB 文件是什么?
可以理解为一种类似“容器”的打包格式,内部包含:

通常,多个 VIB 文件会打包在一个 ZIP 压缩文件中,作为安装包整体进行传输与部署。

查看已安装的 VIB 软件包要列出当前 ESXi 主机上已安装的所有 VIB 软件包,可执行以下命令:

esxcli software vib list

此命令将显示每个 VIB 包的详细信息,包括名称、版本、供应商、安装日期等。对进行补丁审计或检查驱动兼容性尤为有用。

安装 VIB 软件包(需维护模式)

在部署新驱动、补丁或自定义模块时,可通过以下命令安装 VIB 文件:

esxcli software vib install -d

/vmfs/volumes/datastore1/patches/patch_name.zip

通过 ESXCLI 管理虚拟机操作

在 VMware ESXi 环境中,除了使用 vSphere Web Client 或 vCenter GUI 工具之外,我们还可以通过 ESXCLI 命令行工具 来对虚拟机(VM)进行精细控制和诊断操作。

ESXCLI 提供了 vm 子命令,用于查看和管理当前 ESXi 主机上的虚拟机运行状态。

查看当前运行的虚拟机列表:

esxcli vm process list

该命令将列出当前所有在运行状态的虚拟机,包括以下信息:

图片如果某台虚拟机无法通过 GUI 关闭,或已处于非响应状态,可以通过以下命令强制终止其进程:esxcli vm process kill –type=[soft|hard|force] –world-id=<WorldID>esxcli vm process kill -w 75498 -t softesxcli vm process kill -w 75498 -t hard参数说明:–type 可选值:

--world-id:从上面 process list 获取到的虚拟机 World ID✅ 推荐优先使用 soft 模式,若无效再考虑 hard 或 force除了 ESXCLI,你还应该掌握的 ESXi Shell 常用命令你可以直接通过以下命令,在 ESXi Shell 中打开 DCUI(Direct Console User Interface):dcui注意:这个命令只能在直接连接到主机的终端中使用(如 iDRAC、iLO、物理显示器,或串口),不能在通过 SSH 登录时使用。在使用 esxtop 命令打开任务管理器界面后,你可以通过快捷键切换不同的性能监控视图。这对于定位 ESXi 主机上的性能瓶颈非常高效。

快捷键 模块名称 说明
C CPU 查看各个逻辑核心的使用率、负载等信息
I Interrupt 显示中断请求(IRQ)相关的性能数据
M Memory 查看主机内存使用情况,包括空闲、共享等
N Network 监控物理和虚拟网络设备的数据包流量
D Disk Adapter 显示磁盘适配器的 IO 性能信息
U Disk Device 显示物理磁盘设备的延迟、吞吐量等数据
V Disk VM 查看各虚拟机层级的磁盘 IO 性能信息
P Power Mgmt 查看主机的电源状态与节能策略相关数据

📁 文件管理与日志分析

命令 说明
ls -l /vmfs/volumes/ 查看所有数据存储及其内容
df -h 查看各存储挂载点的使用情况(类似 Linux)
du -h /vmfs/volumes/datastore1/VM_NAME/ 检查某台虚拟机目录的占用空间
cat /var/log/vmkernel.log 查看核心日志文件,诊断硬件或驱动问题
tail -f /var/log/hostd.log 实时跟踪 hostd 日志(主机服务相关)
tail -f /var/log/vpxa.log 跟踪 vCenter Agent 日志,排查连接问题

🔌 网络与服务排查

命令 说明
esxcfg-vswitch -l 显示标准虚拟交换机及其端口组配置
esxcfg-nics -l 列出所有物理网卡及其状态
ping <目标IP> 网络连通性测试
nc -zv <IP> <PORT> 检查端口连通性(ESXi 7.0+ 默认支持 nc 命令)

🛠 服务管理与故障修复

命令 说明
/etc/init.d/hostd restart 重启主机守护服务(hostd)
/etc/init.d/vpxa restart 重启 vCenter Agent(vpxa)
vim-cmd vmsvc/getallvms 显示所有注册的虚拟机及其 VMID
vim-cmd vmsvc/power.getstate <VMID> 获取虚拟机电源状态
vim-cmd vmsvc/power.off <VMID> 关闭虚拟机(逻辑方式)
vim-cmd vmsvc/unregister <VMID> 从 ESXi 中注销虚拟机(慎用)

🔐 用户与权限

命令 说明
esxcli account list 查看现有本地用户
esxcli account add -c -u username 创建用户
esxcli system permission set –id username –role Admin 授权用户为管理员

🚨 快速查看主机信息

命令 说明
vmware -v 显示当前主机的 VMware ESXi 版本
uptime 查看主机运行时长与平均负载
`esxcfg-info less`

五、总结

在 VMware vSphere 环境中,除了 vSphere Client 和 Host Client 提供的图形化界面外,命令行工具同样是系统管理员不可或缺的利器。通过 ESXi Shell 或远程 SSH 访问,你可以深入操作系统组件、网络设置、存储配置、VIB 软件包管理以及虚拟机生命周期控制。

本文汇总了大量常用且高效的 ESXCLI 命令,帮助你完成以下任务:

借助这些命令,你不仅能执行图形界面无法完成的高级配置,还可以更快速地完成批量任务,极大提升运维效率。