ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

VMware 常用命令速查:从 esxcfg-vswitch 到 vmkiscsi-tool 的排障清单

VMware 常用命令速查:从 esxcfg-vswitch 到 vmkiscsi-tool 的排障清单 1. ESXi 主机排障为什么绕不开这些命令如果你正在维护 VMware ESXi 主机尤其是遇到虚拟机网络不通、iSCSI 存储掉线、NAS 挂载失败、SSH 连不上这类问题时图形界面vSphere Client有时候会转圈、报错信息也不够具体。这时候真正能救场的是 ESXi 命令行里那一套esxcfg-*和vmkiscsi-tool工具。它们能直接告诉你虚拟交换机怎么配的、物理网卡挂到哪、防火墙端口开没开、iSCSI target 有没有连上。这篇内容面向 ESXi 主机运维和虚拟网络排障场景把esxcfg-vswitch、esxcfg-firewall、esxcfg-nas、vmkiscsi-tool这几个高频命令的典型用法、输出解读、逐条验证动作整理成一份可复制的排障清单。同时我会说明怎么借助 TaoToken 的统一 Key/API 通道把配置核对、命令输出整理、多主机比对这些重复动作串起来减少来回切换工具的时间。适合已经能 SSH 登录 ESXi 主机、但面对一堆esxcfg参数容易记混的运维同学。需要先说明一点ESXi 7.0 之后部分esxcfg-*命令被esxcli体系逐步替代但很多存量环境5.5/6.0/6.5/6.7里这些命令依然是最直接的排障入口。下面每条都给出可复制命令和验证动作你可以在实验环境先跑一遍再上生产。2. 前置准备SSH 通道与 TaoToken 统一 Key 通道排障第一步是能稳定登录 ESXi 主机。默认情况下 ESXi 的 SSH 服务是关闭的你需要在 DCUI直接控制台或 vSphere Client 里先启用。启用后直接用终端登录ssh rootesxi-host-ip登录后先确认版本不同版本命令行为有差异vmware -v输出类似VMware ESXi 6.7.0 build-xxxxxxxx记下主版本号后面查命令兼容性会用到。接下来是我实际排障时觉得效率提升明显的一步把命令输出、配置核对、多主机比对这些文本处理动作通过 TaoToken 的统一 API 通道接进来。TaoToken 提供统一的 Key 和 API 入口你可以用同一个 Key 调用模型对话能力把esxcfg-vswitch -l的输出粘进去让它帮你比对差异、生成核对清单或者把报错信息整理成排查步骤。具体操作路径先到 TaoToken 控制台 创建 API KeyKey 管理页在 API Keys接入文档参考 TaoToken 文档想直接对话验证模型效果用 模型对话。API 基础地址是https://taotoken.net/api不带 UTM 参数配置时直接填这个。注意TaoToken 在这里的角色是帮你整理和核对配置文本、生成排障清单不是替代 ESXi 本身的命令执行。命令还是要在 ESXi 主机上跑TaoToken 负责把输出变成可读的结论。如果你长期做编码或 Agent 类工作可以看 Coding PlanClaude Code 相关接入参考 ClaudeCodeAnthropic。3. 可复制配置虚拟交换机与网卡命令清单3.1 esxcfg-vswitch 查看与创建虚拟交换机先看当前虚拟交换机全貌esxcfg-vswitch -l输出会列出每个 vSwitch 的名称、端口数、上行链路vmnic、以及挂在上面的 portgroup。重点看三列Uplinks是否为空、Portgroups里有没有你预期的网络标签、MTU是否符合存储网络要求iSCSI/vMotion 常要 9000。查看物理网卡状态esxcfg-nics -l输出里Link为Up才算物理链路正常Speed和Duplex也要确认。如果某块网卡Link是Down先查交换机侧端口和线缆别急着改 vSwitch 配置。创建一个新虚拟交换机并挂两块物理网卡esxcfg-vswitch -a vSwitch1 esxcfg-vswitch -A internal vSwitch1 esxcfg-vswitch -L vmnic1 vSwitch1 esxcfg-vswitch -L vmnic2 vSwitch1逐条解释-a新建 vSwitch-A在 vSwitch 上新建 portgroup名字叫internal-L把物理网卡挂上去。执行完再跑一次esxcfg-vswitch -l确认vSwitch1的 Uplinks 里出现 vmnic1 和 vmnic2。删除操作要格外小心别把管理网络所在的 vSwitch 删了esxcfg-vswitch -u vmnic1 vSwitch2 esxcfg-vswitch -D internal vSwitch1 esxcfg-vswitch -D vSwitch1-u是移除上行链路-D是删除 portgroup 或整个 vSwitch。删之前一定先esxcfg-vswitch -l确认这个 vSwitch 上没有管理口或 vMotion 口。3.2 创建 vmkernel 接口用于 vMotion 和 iSCSIvMotion 和 iSCSI 都需要 vmkernel 接口通常不配网关esxcfg-vswitch -a vSwitch2 esxcfg-vswitch -A vm kernel vSwitch2 esxcfg-vswitch -L vmnic3 vSwitch2 esxcfg-vmknic -a vm kernel -i 172.16.1.141 -n 255.255.252.0esxcfg-vmknic -a创建 vmkernel 接口-i是 IP-n是子网掩码。创建后用下面命令确认esxcfg-vmknic -l输出里能看到vmk0、vmk1等接口及其对应 portgroup 和 IP。如果 IP 没出现检查 portgroup 名字是否和-a时一致大小写和空格都算。3.3 esxcfg-firewall 防火墙端口排查查看所有已知服务及开关状态esxcfg-firewall -s查询具体服务比如 SSH 客户端esxcfg-firewall -q sshclient输出会显示该服务是enabled还是disabled以及对应端口。开启和关闭esxcfg-firewall -e sshclient esxcfg-firewall -d sshclient-e启用-d禁用。排障时如果发现某个端口不通先用-q确认服务状态再查物理网络和上游防火墙别一上来就改 ESXi 防火墙规则。3.4 esxcfg-nas 挂载与重连 NAS添加 NAS 数据存储esxcfg-nas -a isos -o nas.example.com -s isos-a是本地标签-o是 NAS 服务器地址-s是共享名。列出当前 NAS 连接esxcfg-nas -l如果 NAS 显示不可用或挂载丢失强制重连esxcfg-nas -r esxcfg-nas -l-r会重新连接所有已配置的 NAS 设备再-l看结果。如果还是失败检查 NAS 侧导出权限和 ESXi 主机到 NAS 的网络连通性。3.5 vmkiscsi-tool 连接 iSCSI target启用软件 iSCSIesxcfg-swiscsi -e查询状态用-q禁用用-d。添加 target IPvmkiscsi-tool -D -a 172.16.1.133 vmhba40-D表示对发现地址操作-a添加vmhba40是 iSCSI 适配器名用esxcfg-scsidevs -a可以查到。列出当前 target 连接vmkiscsi-tool -l -T vmhba40输出里能看到 target 名称、状态、IP。如果状态不是connected检查网络、target 侧 ACL、CHAP 认证配置。4. 验证请求与成功结果解读配置改完后逐条验证比一次性重启服务更安全。下面是我常用的验证顺序。先看虚拟交换机整体esxcfg-vswitch -l成功标志目标 vSwitch 的 Uplinks 列出正确 vmnicPortgroups 包含你创建的标签MTU 符合预期。再看 vmkernel 接口esxcfg-vmknic -l成功标志vmk 接口 IP、掩码、portgroup 三者对应正确。防火墙esxcfg-firewall -q sshclient成功标志输出Service sshclient is enabled或对应端口已放行。NASesxcfg-nas -l成功标志共享显示为mounted或available没有unavailable。iSCSIvmkiscsi-tool -l -T vmhba40成功标志target 状态为connected且esxcfg-scsidevs -a能看到对应 LUN。如果你想把多台主机的输出做比对可以把这些命令结果保存成文本通过 TaoToken 的 模型对话 粘贴进去让它帮你列出差异项和可疑配置。API 调用方式参考 接入文档基础地址https://taotoken.net/api。5. 本篇常见错排查错误一esxcfg-vswitch -L报Invalid uplink原因通常是 vmnic 名字写错或者该网卡已被其他 vSwitch 占用。先用esxcfg-nics -l确认网卡名再用esxcfg-vswitch -l看它挂在哪个 vSwitch 上。一块物理网卡不能同时挂两个 vSwitch 做上行链路。错误二创建 vmkernel 接口后 IP 不生效检查 portgroup 名字是否和esxcfg-vmknic -a里的名字完全一致包括空格。vm kernel和vmkernel是两个不同的 portgroup。另外确认 vSwitch 上已挂上行链路。错误三esxcfg-firewall -q查不到服务服务名拼写要准确比如sshclient不是ssh-client。可以用esxcfg-firewall -s列出所有已知服务名再查。错误四NAS 挂载后显示 unavailable先vmkping nas-ip确认网络通再检查 NAS 侧是否允许该 ESXi 主机 IP 访问共享。esxcfg-nas -r重连后如果仍失败看/var/log/vmkernel.log里的 NFS 相关报错。错误五iSCSI target 添加后不显示 LUNvmkiscsi-tool -l -T vmhba40看 target 是否 connected。如果 connected 但没有 LUN检查 target 侧 LUN masking 和 ESXi 的 iSCSI 适配器是否已启用。必要时用esxcfg-swiscsi -s强制重新扫描。错误六改完配置忘了重启管理服务部分配置变更后需要重启管理服务才生效service mgmt-vmware restart重启期间 vSphere Client 会短暂断开属正常现象。生产环境建议在维护窗口操作。6. 把命令清单接进你的日常排障流程上面这些命令单独跑不难难的是每次排障都要重新回忆参数、比对多台主机输出、整理成报告。我的做法是把常用命令存成一个脚本模板输出统一保存到带时间戳的文件里然后通过 TaoToken 的 API 通道把文本送进模型做差异分析和清单生成。这样多主机环境下的配置漂移能更快发现。如果你还没配 Key先到 API Keys 创建一个接入细节看 TaoToken 文档。长期做运维自动化或 Agent 的可以了解 Coding Plan。最后提醒一句esxcfg-vswitch -D和esxcfg-nas -d这类删除操作执行前一定先-l确认目标管理网络所在的 vSwitch 和 portgroup 千万别动。命令本身不复杂复杂的是知道自己正在删什么。
返回列表