一、第一步:配置VMware 17的虚拟网络(主机侧)
VMware的虚拟网络编辑器(Virtual Network Editor)是管理虚拟网络的核心工具,需确保NAT模式的配置正确(NAT模式是虚拟机通过主机网络访问外网的默认方式)。
1. 打开虚拟网络编辑器
启动VMware 17,点击顶部菜单栏「编辑」→「虚拟网络编辑器」;
若提示「需要管理员权限」,点击「更改设置」(输入主机管理员密码)。
2. 配置NAT模式网络(关键步骤)
VMware默认创建了一个VMnet8虚拟网卡(对应NAT模式),需确认其设置正确:
选中「VMnet8」(类型为「NAT」);
勾选「使用本地DHCP服务将IP地址分配给虚拟机」(允许虚拟机自动获取IP);
点击「NAT设置」,查看NAT网关IP(默认是「192.168.122.1」,记下来,后续虚拟机需要用这个作为网关);
确认「子网IP」(默认是「192.168.122.0/24」,即子网掩码「255.255.255.0」);
点击「确定」保存设置。
3. 验证虚拟网络服务
确保VMware的NAT服务和DHCP服务正在运行(主机侧):
打开主机的「服务」(Windows:按
Win+R输入services.msc;Linux/Mac:用systemctl命令);找到「VMware NAT Service」和「VMware DHCP Service」,确认其状态为「正在运行」(若未运行,右键点击「启动」)。
二、第二步:配置虚拟机内部网络(guest OS 侧)
以Linux虚拟机(如Ubuntu、CentOS)为例,需确保虚拟机的网络适配器选择了正确的模式(NAT),并配置了正确的IP、网关、DNS。
1. 确认虚拟机网络适配器模式
选中目标虚拟机,点击「虚拟机」→「设置」;
切换到「硬件」标签页,选择「网络适配器」;
确保「网络连接」选择「NAT模式(使用VMnet8虚拟网络)」;
点击「确定」保存设置。
2. 配置虚拟机内部网络(Linux系统)
Linux虚拟机需通过DHCP自动获取IP(推荐)或手动设置静态IP(适合固定IP需求)。
方式1:DHCP自动获取IP(推荐,简单高效)
打开虚拟机终端,运行以下命令重新获取DHCP IP:
sudo dhclient -r # 释放当前IP(可选)
sudo dhclient # 从DHCP服务器获取新IP验证IP是否获取成功:
ip a # 查看网络接口IP(通常是eth0或ens33)正常输出应包含192.168.122.x的IP(如192.168.122.100),子网掩码255.255.255.0。
方式2:手动设置静态IP(适合固定IP需求)
若DHCP无法获取IP(如网络环境限制),可手动设置静态IP:
编辑网络配置文件(以Ubuntu 20.04+为例,使用
netplan):
sudo nano /etc/netplan/00-installer-config.yaml # 打开配置文件修改配置(替换为VMnet8的子网信息):
network:
ethernets:
ens33: # 网络接口名(需与`ip a`中的一致)
addresses: [192.168.122.101/24] # 静态IP(192.168.122.x,x范围1-254,不与DHCP冲突)
gateway4: 192.168.122.1 # NAT网关IP(必须与VMnet8的NAT设置一致)
nameservers:
addresses: [8.8.8.8, 114.114.114.114] # DNS服务器(谷歌+国内公共DNS)
version: 2应用配置:
sudo netplan apply # 应用修改3. 验证网络连通性(关键)
第一步:ping NAT网关(确认虚拟机与VMware虚拟路由器的连接):
ping 192.168.122.1 # ping NAT网关(默认是这个)正常输出应收到回复(如64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=0.5 ms)。
第二步:ping外网IP(确认能否访问外网):
ping 183.2.172.17正常输出应收到回复(如64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=12.3 ms)。
第三步:ping域名(确认DNS解析正常):
ping www.baidu.com正常输出应收到回复(如64 bytes from 180.101.49.12: icmp_seq=1 ttl=56 time=20.1 ms)。
三、常见问题排查(若仍无法连通)
若上述步骤完成后仍出现“Network is unreachable”,检查以下几点:
1. 虚拟机网络接口未启用
运行
ip link show,确认网络接口(如ens33)状态为UP(如<BROADCAST,MULTICAST,UP,LOWER_UP>);若为
DOWN,运行sudo ip link set ens33 up启用接口。
2. 默认网关未配置
运行
ip route show default,确认默认网关为192.168.122.1(NAT网关);若未配置,运行
sudo ip route add default via 192.168.122.1 dev ens33添加网关(临时)。
3. 主机防火墙阻止
主机的Windows防火墙或第三方安全软件可能阻止VMware虚拟网络的通信;
暂时关闭主机防火墙(如Windows:「控制面板」→「防火墙」→「关闭防火墙」),测试是否能连通。
4. VMware虚拟网络编辑器重置
若虚拟网络配置混乱,可点击虚拟网络编辑器中的「还原默认设置」,重置所有虚拟网络(注意:会删除现有虚拟网络配置,需重新设置)。
总结
解决虚拟机“Network is unreachable”的核心是确保VMware虚拟网络(NAT模式)配置正确,并让虚拟机获取到正确的IP、网关、DNS。通过上述步骤,90%以上的网络问题都能解决。
若仍有问题,建议重启虚拟机或重新安装VMware Tools(增强虚拟机与主机的网络交互),通常能解决剩余问题。
xshell无法连接到虚拟机解决:
修复虚拟机网络(获取 IP 地址)
1. 确认网络模式
确保 VMware 虚拟机网络适配器已设置为 NAT 模式(推荐)或 桥接模式:
关闭虚拟机 → 右键虚拟机 → 设置 → 网络适配器 → 选择 NAT 模式 → 启动虚拟机。
2. 通过 DHCP 自动获取 IP
在 CentOS 7.9 终端执行以下命令,强制网卡 ens33 获取 IP:
# 释放旧 DHCP 配置(如有)
dhclient -r ens33
# 重新从 DHCP 服务器获取 IP
dhclient ens33
# 再次检查 IP(此时应显示 inet 字段)
ip addr show ens33成功标志:输出中出现类似 inet 192.168.124.xxx/24 的 IPv4 地址(如 192.168.124.130)。
3. 若 DHCP 失败,手动配置静态 IP
编辑网卡配置文件(CentOS 7 路径固定):
vi /etc/sysconfig/network-scripts/ifcfg-ens33修改以下关键配置(按实际网络环境调整,以 NAT 模式为例):
BOOTPROTO=static # 静态 IP 模式
ONBOOT=yes # 开机启用网卡(必须)
IPADDR=192.168.124.100 # 静态 IP(NAT 模式下建议 192.168.124.x 网段)
NETMASK=255.255.255.0 # 子网掩码
保存后重启网络服务:
systemctl restart network # 检查 IP 是否生效 ip addr show ens33永久配置DHCP
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=dhcp
ONBOOT=yes配置DNS(否则docker无法下载镜像):
vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8永久关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask --now firewalld
sudo systemctl status firewalld # 验证容器开机自启
#创建容器时设置
docker run -d --name my_container --restart=always nginx
#更新已有容器
docker update --restart=always 容器名ens33网络不存在了,导致无法访问到虚拟机ip
ip a show ens33 #查看ens33网络是否开启
ip link set ens33 up #开启ens33网络
dhclient -v ens33 #手动触发DHCP获取
ip a #查看全部网络