ESXi 重启网络服务用什么命令?安全操作与避坑完整指南
在 ESXi 主机运维中,修改 IP 地址、网关、DNS 或排查网络异常时,经常需要重启网络服务,但很多老运维仍在使用早已过时的危险命令,导致管理网络中断、虚拟机业务断连,甚至需要重启主机才能恢复。ESXi 6.7/7.0/8.0 全系列版本官方推荐的安全重启命令为 **esxcli network ip connection restart**,它仅重置 TCP/IP 连接状态,不会中断现有业务流量。本文详细讲解正确命令的用法、适用场景、旧命令的致命危害、分步操作与应急回滚方案,帮助运维规避网络重启导致的生产事故。
一、核心结论:唯一安全的网络重启命令
首先明确所有 ESXi 运维必须牢记的核心规则:
- ✅官方推荐安全命令(全版本通用):
esxcli network ip connection restart - ❌绝对禁止生产环境使用:
services.sh restart network、/etc/init.d/network restart
两者的本质区别在于重启范围完全不同:
esxcli network ip connection restart:仅重置 ESXi 主机的 TCP/IP 协议栈连接状态,刷新 IP、网关、DNS 配置,不会中断正在运行的虚拟机网络,也不会断开当前 SSH 连接- 旧的
services.sh命令:会强制重启整个网络服务进程,关闭所有虚拟交换机、VMkernel 网卡和物理网卡,导致所有虚拟机网络中断、管理连接断开,且无法自动恢复
二、为什么旧命令不能用?致命危害详解
services.sh restart network是 ESXi 5.x 时代的遗留命令,在 ESXi 6.5 及以前版本还能勉强使用,但从 ESXi 6.7 开始,VMware 重构了网络架构,该命令的行为发生了根本性变化,成为生产环境的 “定时炸弹”。
2.1 执行旧命令的后果
- 所有虚拟机网络立即中断:虚拟交换机被强制关闭,所有虚拟机的网卡失去连接,业务完全停止
- 管理网络永久断开:VMkernel 管理网卡被重启后,SSH 和 Web 客户端连接全部断开,无法远程管理主机
- 无法自动恢复:网络服务重启后,很多情况下虚拟交换机和 VMkernel 网卡不会自动重新启用,必须通过服务器的远程管理卡(iDRAC/ILO/IMM)手动恢复
- 可能导致主机隔离:如果主机在 vCenter 集群中,网络中断会触发 HA 机制,导致虚拟机被强制迁移到其他主机,引发业务震荡
2.2 官方明确声明
VMware 在 ESXi 6.7 的发布说明中明确指出:services.sh restart network命令不再受支持,使用该命令可能导致不可预测的网络故障,所有网络配置变更后的重启操作,必须使用esxcli network ip connection restart命令。
三、正确命令详解:esxcli network ip connection restart
3.1 命令作用与原理
该命令的核心作用是刷新 ESXi 主机的 TCP/IP 协议栈配置,使新修改的 IP 地址、子网掩码、默认网关、DNS 服务器等配置立即生效,同时重置所有异常的 TCP 连接。
它的工作原理是:
- 保留所有虚拟交换机、VMkernel 网卡和物理网卡的运行状态
- 重新加载 TCP/IP 协议栈的配置参数
- 关闭所有处于 TIME_WAIT、CLOSE_WAIT 等异常状态的 TCP 连接
- 建立新的 TCP 连接,应用新的网络配置
整个过程不会中断任何正在传输的数据包,虚拟机网络和管理连接都能保持正常,是唯一安全的网络重启方式。
3.2 适用场景
该命令适用于以下所有需要刷新网络配置的场景:
- 修改了 ESXi 主机的管理 IP 地址、子网掩码或默认网关
- 修改了 DNS 服务器地址或搜索域
- 修改了静态路由表
- 网络连接异常,出现 TCP 连接卡住、无法访问外部网络等问题
- 防火墙规则修改后需要刷新网络连接
3.3 完整执行步骤
- 通过远程管理卡备份连接:执行任何网络操作前,先登录服务器的 iDRAC/ILO 远程控制台,以防 SSH 连接意外断开
- SSH 登录 ESXi 主机:使用管理员账号通过 SSH 连接到 ESXi 主机
- 执行重启命令:
esxcli network ip connection restart - 验证配置生效:
# 查看IP地址配置 esxcli network ip interface ipv4 get -i vmk0 # 查看网关配置 esxcli network ip route ipv4 list # 测试网络连通性 ping 网关IP ping 8.8.8.8 - 确认业务正常:登录 vCenter 或 ESXi Web 客户端,确认所有虚拟机网络正常运行
四、其他常用网络管理命令
除了重启 TCP/IP 连接,ESXi 还提供了一系列精细化的网络管理命令,可以针对单个组件进行重启,进一步降低操作风险。
4.1 重启单个 VMkernel 网卡
如果只修改了某个 VMkernel 网卡的配置(如 vMotion、vSAN 网卡),可以只重启该网卡,不影响其他网络:
# 禁用VMkernel网卡 esxcli network ip interface set -e false -i vmk1 # 启用VMkernel网卡 esxcli network ip interface set -e true -i vmk1注意:不要重启管理网卡 vmk0,否则会断开 SSH 连接。
4.2 重启标准虚拟交换机
如果某个标准虚拟交换机出现异常,可以单独重启该交换机:
# 禁用vSwitch0 esxcli network vswitch standard set -e false -v vSwitch0 # 启用vSwitch0 esxcli network vswitch standard set -e true -v vSwitch0警告:重启虚拟交换机会导致连接到该交换机的所有虚拟机网络短暂中断,需在业务低峰期执行。
4.3 查看网络连接状态
# 查看所有TCP/UDP连接 esxcli network ip connection list # 查看VMkernel网卡配置 esxcli network ip interface ipv4 get # 查看路由表 esxcli network ip route ipv4 list # 查看物理网卡状态 esxcli network nic list五、应急回滚:不小心用了旧命令怎么办?
如果不小心在生产环境执行了services.sh restart network命令,导致网络中断,按照以下步骤紧急恢复:
- 立即登录远程管理卡:通过服务器的 iDRAC/ILO/IMM 远程控制台登录 ESXi 主机的 DCUI 界面
- 进入网络配置菜单:在 DCUI 界面选择 “Configure Management Network”
- 重新配置管理网络:确认 IP 地址、子网掩码、网关、DNS 配置正确,保存配置
- 重启管理网络:选择 “Restart Management Network”,重启管理网络服务
- 验证连接:测试 SSH 和 Web 客户端是否能正常连接
- 恢复虚拟机网络:如果虚拟机网络仍未恢复,逐个重启虚拟交换机或虚拟机网卡
六、运维最佳实践与避坑指南
- 永远不要用旧命令:无论在什么场景下,都不要使用
services.sh restart network或/etc/init.d/network restart命令 - 操作前备份连接:执行任何网络操作前,必须先登录远程管理卡,确保有备用的管理通道
- 业务低峰期操作:所有网络配置变更和重启操作,都应在业务低峰期执行,并提前通知相关人员
- 先测试后生产:在测试环境验证所有网络操作流程,确认无误后再在生产环境执行
- 配置变更前备份:修改网络配置前,记录原有配置参数,以便出现问题时快速回滚
- 避免远程执行:如果可能,尽量通过远程管理卡的本地控制台执行网络重启操作,避免 SSH 连接断开
七、全文总结
ESXi 主机网络重启的唯一安全命令是 **esxcli network ip connection restart**,它仅重置 TCP/IP 协议栈连接状态,不会中断虚拟机业务和管理连接,适用于所有需要刷新网络配置的场景。旧的services.sh restart network命令会导致所有网络中断,生产环境绝对禁止使用。
日常运维中,应严格遵循官方推荐的操作规范,优先使用精细化的网络管理命令,操作前做好备份和应急准备,避免因网络重启导致的生产事故。掌握正确的网络操作命令,是保障虚拟化环境稳定运行的基础。
