VMware Workstation NAT 网络配置指南
- 一、三种网络模式对比
- 1. 桥接模式(Bridged)
- 2. NAT 模式(Network Address Translation)
- 3. 仅主机模式(Host-Only)
- 三种模式对比总结
- 二、宿主机配置检查
- 1. 确认 VMnet8 网卡状态
- 2. 确认 VMnet8 IP
- 3. 确认 VMware 服务运行中
- 4. 添加防火墙规则
- 三、VMware 虚拟网络编辑器配置
- 四、虚拟机网卡设置
- 五、虚拟机内部网络配置(CentOS)
- 静态 IP 配置
- 验证配置
- 六、常见问题排查
- 问题一:VMnet8 是 Not Present
- 问题二:虚拟机 ping 不通 192.168.168.1
- 第一步:确认虚拟机有 IP(在虚拟机里执行)
- 第二步:确认默认网关正确(在虚拟机里执行)
- 第三步:确认宿主机 VMware 服务正常(在宿主机 PowerShell 里执行)
- 第四步:排查 Windows 防火墙(在宿主机管理员 CMD 里执行)
- 第五步:确认虚拟机网络适配器选的是 NAT(最容易忽略的一步)
- 问题三:能 ping 通宿主机但无法访问外网
- 问题四:宿主机 ping 不通虚拟机
- 七、SSH 连接虚拟机
一、三种网络模式对比
VMware 提供三种网络模式,选错模式是连不上虚拟机最常见的原因。
1. 桥接模式(Bridged)
虚拟机直接接入宿主机所在的物理网络,相当于局域网里多了一台独立的机器。
路由器 ├── 宿主机 (192.168.1.3) ├── 虚拟机 (192.168.1.x) ← 和宿主机同网段 └── 其他局域网设备特点:
- 虚拟机 IP 必须和宿主机同一网段
- 局域网内其他设备可以直接访问虚拟机
- 虚拟机需要从路由器获取 IP(或手动配置同网段静态 IP)
- 宿主机换网络环境(如切换 WiFi),虚拟机网络可能失效
适合场景:需要局域网其他机器访问虚拟机,或模拟真实网络环境。
2. NAT 模式(Network Address Translation)
VMware 在宿主机上创建虚拟网卡 VMnet8,虚拟机通过 VMnet8 与宿主机通信,再由宿主机做地址转换访问外网。
虚拟机 (192.168.168.102) ↓ VMnet8 虚拟交换机 ↓ 宿主机 VMnet8 网卡 (192.168.168.1) ↓ VMware NAT Service ↓ 宿主机真实网卡 → 外网特点:
- 虚拟机有独立的私有网段(默认 192.168.168.x)
- 虚拟机可以访问外网,但局域网其他设备无法直接访问虚拟机
- 宿主机和虚拟机可以互相通信
- 网络配置固定,不受宿主机网络环境变化影响
NAT 模式三个固定 IP:
| 角色 | IP | 说明 |
|---|---|---|
| 宿主机 VMnet8 | 192.168.168.1 | 宿主机在虚拟网络中的 IP |
| VMware 网关 | 192.168.168.2 | 虚拟机的默认网关,固定是 .2 |
| DHCP 服务 | 192.168.168.254 | 为虚拟机自动分配 IP |
适合场景:本地开发测试,只需要虚拟机能上网,不需要被局域网其他设备访问。
3. 仅主机模式(Host-Only)
VMware 创建一个完全隔离的私有网络(VMnet1),虚拟机只能和宿主机通信,无法访问外网。
宿主机 VMnet1 网卡 (192.168.137.1) ↓ VMnet1 虚拟交换机 ↓ 虚拟机 (192.168.137.x) ↗ 无法访问外网特点:
- 虚拟机和宿主机可以互通
- 虚拟机完全无法访问外网
- 最安全的隔离模式
适合场景:安全测试、搭建完全隔离的内网环境。
三种模式对比总结
| 模式 | 虚拟机访问外网 | 局域网访问虚拟机 | 宿主机访问虚拟机 | 配置难度 |
|---|---|---|---|---|
| 桥接 | ✅ | ✅ | ✅ | 中(需同网段 IP) |
| NAT | ✅ | ❌ | ✅ | 低(自动分配) |
| 仅主机 | ❌ | ❌ | ✅ | 低 |
本文使用 NAT 模式。
二、宿主机配置检查
1. 确认 VMnet8 网卡状态
打开 PowerShell(管理员),执行:
Get-NetAdapter|Select-ObjectName,StatusVMnet8 必须是Up状态,如果是 Not Present 或 Disabled,需要在 VMware 虚拟网络编辑器里还原默认设置。
2. 确认 VMnet8 IP
Get-NetIPAddress-InterfaceAlias'VMware Network Adapter VMnet8'-AddressFamily IPv4正常应该显示192.168.168.1/24。
3. 确认 VMware 服务运行中
Get-Service'VMware NAT Service','VMnetDHCP'|Select-ObjectName,Status两个服务都必须是Running。如果没有,执行:
Start-Service'VMnetDHCP','VMware NAT Service'4. 添加防火墙规则
Windows 防火墙默认可能拦截 VMnet8 网段的流量,需要手动放行:
# 允许 VMnet8 网段入站 ICMPnetsh advfirewall firewall add rule name="Allow VMnet8 ICMP"protocol=icmpv4dir=in action=allow remoteip=192.168.168.0/24# 允许 VMnet8 网段入站 TCP(SSH 等)netsh advfirewall firewall add rule name="Allow VMnet8 TCP"protocol=tcpdir=in action=allow remoteip=192.168.168.0/24三、VMware 虚拟网络编辑器配置
- 打开 VMware Workstation
- 菜单 →编辑→虚拟网络编辑器
- 点右下角“更改设置”(需要管理员权限)
- 选中VMnet8,确认以下配置:
类型:NAT 子网 IP:192.168.168.0 子网掩码:255.255.255.0- 点击“NAT 设置”,确认:
网关 IP:192.168.168.2- 点击“DHCP 设置”,确认:
起始 IP:192.168.168.128 结束 IP:192.168.168.254四、虚拟机网卡设置
右键虚拟机 →设置→网络适配器,选择:
● NAT:用于共享主机的 IP 地址注意不要选"自定义"里的 VMnet8,直接选 NAT 选项。
五、虚拟机内部网络配置(CentOS)
静态 IP 配置
编辑网卡配置文件:
sudovi/etc/sysconfig/network-scripts/ifcfg-ens33内容如下:
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.168.102 NETMASK=255.255.255.0 GATEWAY=192.168.168.2 DNS1=8.8.8.8 DNS2=114.114.114.114保存后重启网络:
sudosystemctl restart network# 或sudonmcli connection reloadsudonmcli connection up ens33验证配置
# 查看 IPipaddr show ens33# 查看路由,确认 default via 192.168.168.2iproute show# ping 宿主机 VMnet8ping192.168.168.1-c3# ping 外网ping8.8.8.8-c3六、常见问题排查
排查方法论:网络不通问题要从两端向中间逼近——先确认宿主机这端的虚拟网卡和服务正常,再确认虚拟机这端的 IP、网关配置正确,最后排查中间的防火墙和 VMware 设置。不要跳步,每一步都要用命令验证,不要靠肉眼猜。
问题一:VMnet8 是 Not Present
原因:VMware 虚拟网卡未正确安装。
解决:VMware → 编辑 → 虚拟网络编辑器 → 还原默认设置。
问题二:虚拟机 ping 不通 192.168.168.1
⚠️ 这是最常见的问题,必须按顺序逐步排查,不能跳步。
每一步确认通过后再进行下一步,否则无法准确定位根因。
第一步:确认虚拟机有 IP(在虚拟机里执行)
ipaddr show- ✅ 看到
192.168.168.x→ 进入第二步 - ❌ 只有
127.0.0.1→ IP 未分配,检查ONBOOT=yes和BOOTPROTO配置,重启网络服务
第二步:确认默认网关正确(在虚拟机里执行)
iproute show- ✅ 看到
default via 192.168.168.2→ 进入第三步 - ❌ 没有 default 路由 → 执行
sudo ip route add default via 192.168.168.2,并检查配置文件里的GATEWAY=192.168.168.2
第三步:确认宿主机 VMware 服务正常(在宿主机 PowerShell 里执行)
Get-Service'VMware NAT Service','VMnetDHCP'|Select-ObjectName,Status- ✅ 两个都是 Running → 进入第四步
- ❌ 有 Stopped →
Start-Service 'VMnetDHCP','VMware NAT Service'
第四步:排查 Windows 防火墙(在宿主机管理员 CMD 里执行)
# 临时关闭防火墙测试netsh advfirewallsetallprofiles state off关闭后在虚拟机里再 ping 一次192.168.168.1:
- ✅ 通了 → 是防火墙问题,重新开启并添加规则(见第二节第4条)
- ❌ 还是不通 → 进入第五步
第五步:确认虚拟机网络适配器选的是 NAT(最容易忽略的一步)
VMware → 右键虚拟机 → 设置 → 网络适配器,必须选:
● NAT:用于共享主机的 IP 地址 ← 选这个不能选:
○ 自定义:特定虚拟网络 VMnet8 ← 不要选这个两者虽然底层都走 VMnet8,但选"自定义 VMnet8"时 VMware 不会自动接入 NAT 服务,导致虚拟机拿到 IP 但发出的包没有经过 NAT 转发,宿主机收不到。这是最隐蔽的坑。
改完后重启虚拟机网络:
sudosystemctl restart network再次 ping 验证。
排查流程总结:
虚拟机有 IP? ↓ 否 → 检查网卡配置文件 ONBOOT/BOOTPROTO ↓ 是 网关是 192.168.168.2? ↓ 否 → 添加默认路由 / 修改配置文件 GATEWAY ↓ 是 VMware 服务 Running? ↓ 否 → 启动 VMnetDHCP 和 VMware NAT Service ↓ 是 关防火墙后能通? ↓ 是 → 添加防火墙入站规则放行 192.168.168.0/24 ↓ 否 虚拟机网卡选的是 NAT 而非自定义 VMnet8? ↓ 否 → 改成 NAT 模式,重启网络 ↓ 是 → 重置 VMware 虚拟网络编辑器(还原默认设置)问题三:能 ping 通宿主机但无法访问外网
原因:DNS 未配置或 NAT 服务异常。
解决:
# 检查 DNScat/etc/resolv.conf# 手动添加 DNSecho"nameserver 8.8.8.8"|sudotee/etc/resolv.conf# 重启 NAT 服务(宿主机)Restart-Service'VMware NAT Service'问题四:宿主机 ping 不通虚拟机
NAT 模式下宿主机默认可以 ping 通虚拟机(通过 VMnet8),如果不通:
# 检查虚拟机防火墙sudosystemctl status firewalldsudosystemctl stop firewalld# 检查 iptablessudoiptables-L-n|grepDROP七、SSH 连接虚拟机
配置好网络后,在宿主机 Windows 上用 SSH 连接虚拟机,就不需要在 VM 窗口里操作了:
ssh root@192.168.168.102或者用 XShell、MobaXterm 等工具连接,彻底解决虚拟机无法复制粘贴的问题。
虚拟机里确保 SSH 服务开启:
sudosystemctlenable--nowsshdsudosystemctl status sshd