如何设置VMware NAT模式下的固定内网IP地址?
- 内容介绍
- 文章标签
- 相关问答
在使用 VMware 的 NAT 模式时最常见的痛点之一就是虚拟机的内部 IP 经常变动。是在部署 AI Agent 或 Kubernetes 项目时频繁重启或迁移导致 IP 不稳定,给网络配置、端口映射甚至服务发现带来麻烦。
背景
我在一台配备 64GB 内存的 Windows 主机上通过 VMware 管理多台虚拟机。由于所有 VM 都使用 NAT 模式,默认会从 VMware 的 DHCP 服务获取地址。但这导致每次启动后都可能得到不同的内部 IP。为了解决这个问题,我决定手动为虚拟机设置固定内网 IP。并确保所有机器都在同一个子网内。
痛点
- 虚拟机启动后内部 IP 随机变化,影响容器编排和服务发现。
- DHCP 分配的地址与宿主机网络冲突,导致路由不通。
- 手工配置不统一,易出错。
从步骤一来看,确认 VMware NAT 子网与网关
1️⃣ 打开 VMware Workstation/Player → 菜单 Edit → Virtual Network Editor.
• 在 VMnet8 下查看 Subnet Mask,NAT Gateway。还有 NAT Network Address Range.
示例: Subnet Mask: 255.255.255.0 NAT Gateway: 192.168.182.1 NAT Network Address Range: 192.168.182.*
确定子网段与可用地址范围
为了避免冲突,将宿主机网络设定在同一子网之外例如选择 .10~ .50 范围作为静态分配区间。
说到步骤二。在宿主机上配置 VMnet8 网络接口
- Crtl+X → 控制面板 → 网络和共享中心 → 更改适配器设置
-
右键点击
LAPTOP-NETWORK-VMnet8,选择 “属性”。其实, - Select “Internet Protocol Version 4 ” and click “Properties”. 不要勾选“使用本地 DHCP 服务将 IP 分配给虚拟机”。 因为我们要手动指定静态地址。
- 输入以下信息:
| IP 地址 | 192.168.182..10 | ||
|---|---|---|---|
| 子网掩码 | 255.255..255.0. | ||
| 默认网关 | 192.168.182..1 | ||
| 首选 DNS 服务器 | 114.114..114.114. | ||
| 备用 DNS | 114.115..114.115. | ||
| 其他 DNS | 8. |
| 虚拟机 | IPv4 地址 | 子网掩码 | 默认网关 |
|---|---|---|---|
| vm-01 | 192.168.182.11 | 255.255.255.0.0 | 192.b168.b182.b1 |
| vm-02 | 192.b168.b182.12 | 同上 | 同上 |
Linux 示例
bash
sudo nmcli con mod "Ernet connection" ipv4.addresses "192.${sub}.182.${id}/16"
sudo nmcli con mod "Ernet connection" ipv4.gateway "192.${sub}.182.$gateway"
sudo nmcli con mod "Ernet connection" ipv4.dns "114.${sub}.114.${sub} 8.${sub}.8.${sub}"
sudo nmcli con up "Ernet connection"
说到步骤四。验证连通性
bash
ping -c3 192.${sub}.182.$vm_id
ping -c3 $gateway
如果两侧都能正常 ping 通,就说明固定内网 IP 配置成功。
常见错误与排查
| 错误情况 | 排查思路 |
|---|---|
| VM 无法访问外部网络 | 检查默认网关是否指向 VMware NAT 网关;确认宿主机关联的 VMnet8 已开启并无防火墙阻止。 |
| 两台 VM 地址冲突 | 确认每个 VM 的 hostid 不重复;检查 DHCP 范围是否覆盖了你手工分配的地址。 |
| DNS 无法解析域名 | 检查 DNS 是否正确配置;尝试直接使用 nslookup 或 dig 指向公网 DNS。 |
小结
通过上述步骤。你可以让所有 VMware NAT 模式下的虚拟机器拥有固定且统一的内部 IP,从而避免因随机分配导致的网络不稳定、端口映射失效等痛点。只需一次配置,即可让整个集群保持一致、易管理。祝你部署顺利,
在使用 VMware 的 NAT 模式时最常见的痛点之一就是虚拟机的内部 IP 经常变动。是在部署 AI Agent 或 Kubernetes 项目时频繁重启或迁移导致 IP 不稳定,给网络配置、端口映射甚至服务发现带来麻烦。
背景
我在一台配备 64GB 内存的 Windows 主机上通过 VMware 管理多台虚拟机。由于所有 VM 都使用 NAT 模式,默认会从 VMware 的 DHCP 服务获取地址。但这导致每次启动后都可能得到不同的内部 IP。为了解决这个问题,我决定手动为虚拟机设置固定内网 IP。并确保所有机器都在同一个子网内。
痛点
- 虚拟机启动后内部 IP 随机变化,影响容器编排和服务发现。
- DHCP 分配的地址与宿主机网络冲突,导致路由不通。
- 手工配置不统一,易出错。
从步骤一来看,确认 VMware NAT 子网与网关
1️⃣ 打开 VMware Workstation/Player → 菜单 Edit → Virtual Network Editor.
• 在 VMnet8 下查看 Subnet Mask,NAT Gateway。还有 NAT Network Address Range.
示例: Subnet Mask: 255.255.255.0 NAT Gateway: 192.168.182.1 NAT Network Address Range: 192.168.182.*
确定子网段与可用地址范围
为了避免冲突,将宿主机网络设定在同一子网之外例如选择 .10~ .50 范围作为静态分配区间。
说到步骤二。在宿主机上配置 VMnet8 网络接口
- Crtl+X → 控制面板 → 网络和共享中心 → 更改适配器设置
-
右键点击
LAPTOP-NETWORK-VMnet8,选择 “属性”。其实, - Select “Internet Protocol Version 4 ” and click “Properties”. 不要勾选“使用本地 DHCP 服务将 IP 分配给虚拟机”。 因为我们要手动指定静态地址。
- 输入以下信息:
| IP 地址 | 192.168.182..10 | ||
|---|---|---|---|
| 子网掩码 | 255.255..255.0. | ||
| 默认网关 | 192.168.182..1 | ||
| 首选 DNS 服务器 | 114.114..114.114. | ||
| 备用 DNS | 114.115..114.115. | ||
| 其他 DNS | 8. |
| 虚拟机 | IPv4 地址 | 子网掩码 | 默认网关 |
|---|---|---|---|
| vm-01 | 192.168.182.11 | 255.255.255.0.0 | 192.b168.b182.b1 |
| vm-02 | 192.b168.b182.12 | 同上 | 同上 |
Linux 示例
bash
sudo nmcli con mod "Ernet connection" ipv4.addresses "192.${sub}.182.${id}/16"
sudo nmcli con mod "Ernet connection" ipv4.gateway "192.${sub}.182.$gateway"
sudo nmcli con mod "Ernet connection" ipv4.dns "114.${sub}.114.${sub} 8.${sub}.8.${sub}"
sudo nmcli con up "Ernet connection"
说到步骤四。验证连通性
bash
ping -c3 192.${sub}.182.$vm_id
ping -c3 $gateway
如果两侧都能正常 ping 通,就说明固定内网 IP 配置成功。
常见错误与排查
| 错误情况 | 排查思路 |
|---|---|
| VM 无法访问外部网络 | 检查默认网关是否指向 VMware NAT 网关;确认宿主机关联的 VMnet8 已开启并无防火墙阻止。 |
| 两台 VM 地址冲突 | 确认每个 VM 的 hostid 不重复;检查 DHCP 范围是否覆盖了你手工分配的地址。 |
| DNS 无法解析域名 | 检查 DNS 是否正确配置;尝试直接使用 nslookup 或 dig 指向公网 DNS。 |
小结
通过上述步骤。你可以让所有 VMware NAT 模式下的虚拟机器拥有固定且统一的内部 IP,从而避免因随机分配导致的网络不稳定、端口映射失效等痛点。只需一次配置,即可让整个集群保持一致、易管理。祝你部署顺利,

