【VMware Workstation NAT 网络配置指南】

VMware Workstation NAT 网络配置指南

    • 一、三种网络模式对比
      • [1. 桥接模式(Bridged)](#1. 桥接模式(Bridged))
      • [2. NAT 模式(Network Address Translation)](#2. NAT 模式(Network Address Translation))
      • [3. 仅主机模式(Host-Only)](#3. 仅主机模式(Host-Only))
      • 三种模式对比总结
    • 二、宿主机配置检查
      • [1. 确认 VMnet8 网卡状态](#1. 确认 VMnet8 网卡状态)
      • [2. 确认 VMnet8 IP](#2. 确认 VMnet8 IP)
      • [3. 确认 VMware 服务运行中](#3. 确认 VMware 服务运行中)
      • [4. 添加防火墙规则](#4. 添加防火墙规则)
    • [三、VMware 虚拟网络编辑器配置](#三、VMware 虚拟网络编辑器配置)
    • 四、虚拟机网卡设置
    • 五、虚拟机内部网络配置(CentOS)
    • 六、常见问题排查
      • [问题一:VMnet8 是 Not Present](#问题一:VMnet8 是 Not Present)
      • [问题二:虚拟机 ping 不通 192.168.168.1](#问题二:虚拟机 ping 不通 192.168.168.1)
        • [第一步:确认虚拟机有 IP(在虚拟机里执行)](#第一步:确认虚拟机有 IP(在虚拟机里执行))
        • 第二步:确认默认网关正确(在虚拟机里执行)
        • [第三步:确认宿主机 VMware 服务正常(在宿主机 PowerShell 里执行)](#第三步:确认宿主机 VMware 服务正常(在宿主机 PowerShell 里执行))
        • [第四步:排查 Windows 防火墙(在宿主机管理员 CMD 里执行)](#第四步:排查 Windows 防火墙(在宿主机管理员 CMD 里执行))
        • [第五步:确认虚拟机网络适配器选的是 NAT(最容易忽略的一步)](#第五步:确认虚拟机网络适配器选的是 NAT(最容易忽略的一步))
      • [问题三:能 ping 通宿主机但无法访问外网](#问题三:能 ping 通宿主机但无法访问外网)
      • [问题四:宿主机 ping 不通虚拟机](#问题四:宿主机 ping 不通虚拟机)
    • [七、SSH 连接虚拟机](#七、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(管理员),执行:

powershell 复制代码
Get-NetAdapter | Select-Object Name,Status

VMnet8 必须是 Up 状态,如果是 Not Present 或 Disabled,需要在 VMware 虚拟网络编辑器里还原默认设置。

2. 确认 VMnet8 IP

powershell 复制代码
Get-NetIPAddress -InterfaceAlias 'VMware Network Adapter VMnet8' -AddressFamily IPv4

正常应该显示 192.168.168.1/24

3. 确认 VMware 服务运行中

powershell 复制代码
Get-Service 'VMware NAT Service','VMnetDHCP' | Select-Object Name,Status

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

powershell 复制代码
Start-Service 'VMnetDHCP','VMware NAT Service'

4. 添加防火墙规则

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

powershell 复制代码
# 允许 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

  5. 点击 "NAT 设置",确认:

    网关 IP:192.168.168.2

  6. 点击 "DHCP 设置",确认:

    起始 IP:192.168.168.128
    结束 IP:192.168.168.254


四、虚拟机网卡设置

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

复制代码
● NAT:用于共享主机的 IP 地址

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


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

静态 IP 配置

编辑网卡配置文件:

bash 复制代码
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

内容如下:

ini 复制代码
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

保存后重启网络:

bash 复制代码
sudo systemctl restart network
# 或
sudo nmcli connection reload
sudo nmcli connection up ens33

验证配置

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

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

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

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

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

不能选:

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

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

改完后重启虚拟机网络:

bash 复制代码
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 服务异常。

解决

bash 复制代码
# 检查 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),如果不通:

bash 复制代码
# 检查虚拟机防火墙
sudo systemctl status firewalld
sudo systemctl stop firewalld

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

七、SSH 连接虚拟机

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

powershell 复制代码
ssh root@192.168.168.102

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

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

bash 复制代码
sudo systemctl enable --now sshd
sudo systemctl status sshd
相关推荐
阿拉斯攀登1 小时前
并发与同步:自旋锁、信号量、互斥锁
linux·网络·嵌入式硬件·linux驱动·字符设备驱动
hai3152475432 小时前
九章编译法----空间几何统一编译法
网络·汇编·人工智能·线性代数
CN_HW2 小时前
Nginx 流量镜像配置文档-双轨国产化
服务器·前端·网络
Macbethad2 小时前
基于TwinCAT的半导体刻蚀设备SCADA管理程序技术方案
运维·网络·数据库
Helen_cai3 小时前
OpenHarmony http 网络请求封装与全局拦截实战(API Version23 + 适配版)
网络·网络协议·http·华为·harmonyos
liulilittle3 小时前
Exhaustive drift-fix simulation V2 — KCC on shared-bottleneck wired path.
开发语言·网络·python·tcp/ip·计算机网络·信息与通信·通信
nuoxin1143 小时前
HR4988替代A4988-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
EnCi Zheng4 小时前
N3A-一个端口只能给一个程序使用吗?[特殊字符]
网络·nginx·docker
技术硬汉5 小时前
Ai帮我找问题-路由器拨号问题-SIM卡不识别
网络·智能路由器