【VMware Workstation NAT 网络配置指南】

一、三种网络模式对比

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说明
宿主机 VMnet8192.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-Object Name,Status

VMnet8 必须是 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-Object Name,Status

两个服务都必须是 Running。如果没有,执行:

Start-Service 'VMnetDHCP','VMware NAT Service'

4. 添加防火墙规则

Windows 防火墙默认可能拦截 VMnet8 网段的流量,需要手动放行:

# 允许 VMnet8 网段入站 ICMP
netsh advfirewall firewall add rule name="Allow VMnet8 ICMP" protocol=icmpv4 dir=in action=allow remoteip=192.168.168.0/24

# 允许 VMnet8 网段入站 TCP(SSH 等)
netsh advfirewall firewall add rule name="Allow VMnet8 TCP" protocol=tcp dir=in action=allow remoteip=192.168.168.0/24

三、VMware 虚拟网络编辑器配置

  1. 打开 VMware Workstation
  2. 菜单 → 编辑虚拟网络编辑器
  3. 点右下角 “更改设置”(需要管理员权限)
  4. 选中 VMnet8,确认以下配置:
类型:NAT
子网 IP:192.168.168.0
子网掩码:255.255.255.0
  1. 点击 “NAT 设置”,确认:
网关 IP:192.168.168.2
  1. 点击 “DHCP 设置”,确认:
起始 IP:192.168.168.128
结束 IP:192.168.168.254

四、虚拟机网卡设置

右键虚拟机 → 设置网络适配器,选择:

● NAT:用于共享主机的 IP 地址

注意不要选"自定义"里的 VMnet8,直接选 NAT 选项。


五、虚拟机内部网络配置(CentOS)

静态 IP 配置

编辑网卡配置文件:

sudo vi /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

保存后重启网络:

sudo systemctl restart network
# 或
sudo nmcli connection reload
sudo nmcli connection up ens33

验证配置

# 查看 IP
ip addr show ens33

# 查看路由,确认 default via 192.168.168.2
ip route show

# ping 宿主机 VMnet8
ping 192.168.168.1 -c 3

# ping 外网
ping 8.8.8.8 -c 3

六、常见问题排查

排查方法论:网络不通问题要从两端向中间逼近——先确认宿主机这端的虚拟网卡和服务正常,再确认虚拟机这端的 IP、网关配置正确,最后排查中间的防火墙和 VMware 设置。不要跳步,每一步都要用命令验证,不要靠肉眼猜。

问题一:VMnet8 是 Not Present

原因:VMware 虚拟网卡未正确安装。

解决:VMware → 编辑 → 虚拟网络编辑器 → 还原默认设置。

问题二:虚拟机 ping 不通 192.168.168.1

⚠️ 这是最常见的问题,必须按顺序逐步排查,不能跳步。

每一步确认通过后再进行下一步,否则无法准确定位根因。

第一步:确认虚拟机有 IP(在虚拟机里执行)
ip addr show
  • ✅ 看到 192.168.168.x → 进入第二步
  • ❌ 只有 127.0.0.1 → IP 未分配,检查 ONBOOT=yesBOOTPROTO 配置,重启网络服务
第二步:确认默认网关正确(在虚拟机里执行)
ip route 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-Object Name,Status
  • ✅ 两个都是 Running → 进入第四步
  • ❌ 有 Stopped → Start-Service 'VMnetDHCP','VMware NAT Service'
第四步:排查 Windows 防火墙(在宿主机管理员 CMD 里执行)
# 临时关闭防火墙测试
netsh advfirewall set allprofiles state off

关闭后在虚拟机里再 ping 一次 192.168.168.1

  • ✅ 通了 → 是防火墙问题,重新开启并添加规则(见第二节第4条)
  • ❌ 还是不通 → 进入第五步
第五步:确认虚拟机网络适配器选的是 NAT(最容易忽略的一步)

VMware → 右键虚拟机 → 设置 → 网络适配器,必须选:

● NAT:用于共享主机的 IP 地址   ← 选这个

不能选:

○ 自定义:特定虚拟网络 VMnet8   ← 不要选这个

两者虽然底层都走 VMnet8,但选"自定义 VMnet8"时 VMware 不会自动接入 NAT 服务,导致虚拟机拿到 IP 但发出的包没有经过 NAT 转发,宿主机收不到。这是最隐蔽的坑。

改完后重启虚拟机网络:

sudo systemctl 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 服务异常。

解决

# 检查 DNS
cat /etc/resolv.conf

# 手动添加 DNS
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

# 重启 NAT 服务(宿主机)
Restart-Service 'VMware NAT Service'

问题四:宿主机 ping 不通虚拟机

NAT 模式下宿主机默认可以 ping 通虚拟机(通过 VMnet8),如果不通:

# 检查虚拟机防火墙
sudo systemctl status firewalld
sudo systemctl stop firewalld

# 检查 iptables
sudo iptables -L -n | grep DROP

七、SSH 连接虚拟机

配置好网络后,在宿主机 Windows 上用 SSH 连接虚拟机,就不需要在 VM 窗口里操作了:

ssh root@192.168.168.102

或者用 XShell、MobaXterm 等工具连接,彻底解决虚拟机无法复制粘贴的问题。

虚拟机里确保 SSH 服务开启:

sudo systemctl enable --now sshd
sudo systemctl status sshd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值