VMware 虚拟机无法访问外网的排查步骤
一、检查虚拟机网络配置
1. 确认网络模式设置(关键)
- 关闭虚拟机,右键点击虚拟机 → 选择"设置" → 点击"网络适配器"
- 确保选择"NAT模式"(推荐)或"桥接模式"(需与主机同一网段)
- 不要使用"仅主机模式"(该模式无法访问外网)
- 勾选"连接"和"开机时连接"选项
2. 检查虚拟网络编辑器设置
- 打开 VMware → 点击"编辑" → “虚拟网络编辑器”(需管理员权限)
- 选择 VMnet8(NAT模式)或 VMnet0(桥接模式)
- 确保"使用本地 DHCP 服务将 IP 地址分配给虚拟机"已勾选
- 点击"还原默认设置"(如配置混乱)后重启虚拟机
二、检查 Windows 主机环境
1. 确认 VMware 服务运行状态
- 按 Win+R,输入
services.msc,打开服务管理器 - 检查以下服务是否已启动并设为"自动":
- VMware NAT Service
- VMware DHCP Service
- VMware Workstation Server
- VMware Authorization Service
- 若未启动,右键点击服务选择"启动"并修改启动类型为"自动"
2. 检查 Windows 防火墙设置
-
打开控制面板 → 系统和安全 → Windows Defender防火墙
-
点击"允许应用通过防火墙" → 确保已勾选VMware相关条目
-
或临时关闭防火墙测试:
控制面板 → 系统和安全 → Windows Defender防火墙 → "启用或关闭Windows Defender防火墙" → 选择"关闭"(测试用)验证网络恢复后,重新开启防火墙并添加例外规则
3. 检查虚拟网卡状态
- 打开控制面板 → 网络和Internet → 网络和共享中心 → “更改适配器设置”
- 找到 VMware 虚拟网卡(如 VMware Network Adapter VMnet8)
- 确保状态为"已启用",无黄色感叹号或红色叉号
- 右键点击网卡,选择"属性",确认"Internet协议版本4(TCP/IPv4)"已勾选
Note:多半是这里的 IP 配置的和虚拟机网关不在一个网段上。
三、检查Rocky Linux虚拟机内部设置
1. 查看网络接口状态
-
登录虚拟机,打开终端
-
执行以下命令查看网卡状态和 IP:
ip addr show # 查看所有网卡IP nmcli device status # 查看网络设备状态 -
确认网卡(如 ens33)状态为"UP",已获取有效 IP 地址
2. 检查网络配置文件
-
查看 DHCP 或静态配置(根据 VMware 设置):
# 查看网卡配置文件 # RedHat 9 以下版本 cat /etc/sysconfig/network-scripts/ifcfg-ens33 # RedHat 9 以上版本 [root@yingzai system-connections]#cat /etc/NetworkManager/system-connections/ens160.nmconnection [connection] id=ens160 uuid=ab8a0c4e-0570-33d0-9d4f-a6eec6a5ced5 type=ethernet autoconnect-priority=-999 interface-name=ens160 timestamp=1765187568 [ethernet] [ipv4] address1=192.168.17.30/24 dns=223.5.5.5;114.114.114.114; gateway=192.168.17.2 method=manual [ipv6] addr-gen-mode=eui64 method=auto [proxy] -
确保以下配置正确:
BOOTPROTO=dhcp # 使用 DHCP 获取 IP ONBOOT=yes # 开机自动激活若使用静态 IP,确保 IP、子网掩码、网关、DNS 配置正确。
-
RedHat 9 以上版本(推荐使用命令配置)
# 设置 nmcli connection modify ens160 \ ipv4.addresses 192.168.17.30/24 \ ipv4.gateway 192.168.17.2 \ ipv4.dns "223.5.5.5,114.114.114.114" \ ipv4.method manual # 重启网卡 nmcli connection down ens160 && nmcli connection up ens160
3. 检查 DNS 配置
-
查看 DNS 设置:
cat /etc/resolv.conf -
若未配置或配置错误,添加以下内容(推荐使用阿里云 DNS):
nameserver 223.5.5.5 nameserver 114.114.114.114 -
或在网卡配置文件中添加 DNS 设置并重启网络服务。
4. 检查 Rocky Linux 防火墙设置
-
查看防火墙状态:
firewall-cmd --state # 查看状态 systemctl status firewalld # 查看详细状态 -
若防火墙开启,可临时关闭测试:
sudo systemctl stop firewalld # 临时关闭 sudo systemctl disable firewalld # 永久关闭(不推荐) -
若需保留防火墙,添加允许规则:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload # 重新加载规则验证网络恢复后,重新配置防火墙规则。
四、测试与验证
1. 网络连通性测试(按顺序执行)
-
在虚拟机中执行:
# 测试网卡是否正常 ping 127.0.0.1 # 测试本地回环 # 测试与主机连通性(获取主机 IP:ipconfig) ping 192.168.0.104 # 替换为主机 IP # 测试外网连通性 ping 223.5.5.5 # 测试 DNS ping www.baidu.com # 测试网站访问
2. 网络服务重启(如配置更改后)
-
重启虚拟机网络服务:
sudo systemctl restart NetworkManager # Rocky Linux 使用 NetworkManager -
或重启网络接口:
sudo nmcli connection down ens33 # 关闭接口 sudo nmcli connection up ens33 # 重新启用接口 -
或直接重启虚拟机