虚拟机里安装RHEL时网络配置失败,绝大多数情况不是ISO镜像问题,而是虚拟网卡、宿主机网络或安装引导参数三者之间的配合出了问题,先按顺序排查虚拟网络编辑器、虚拟机网卡模式和安装源可达性,大部分问题十分钟内能定位。
现象通常很一致:安装界面卡在网络配置一步,弹出一句“无法为您的软件仓库检索”,或者装完后进入系统,ip a 只能看到lo回环地址,别急着重装系统,先把它当成一个普通网络故障来排查。
虚拟机安装RHEL时网络配置失败,先排查三个位置
打开宿主机里的虚拟网络管理界面,很多RHEL网络配置失败都是在这一层就断了。
- VMware Workstation里,依次打开“编辑”下的“虚拟网络编辑器”,看VMnet8(NAT模式)是否被禁用,子网IP和DHCP设置是否正常,默认情况下VMnet8的NAT子网一般是192.168.x.0,网关在192.168.x.2,如果之前手动改过,虚拟机里的静态IP要跟着这个段走。
- 虚拟机设置里,确认网卡设备状态勾选了“已连接”和“启动时连接”,这一步常被忽略,但它的优先级高于系统内所有配置。
- 安装源本身是否需要网络,如果选择“Red Hat CDN”或者网络HTTP仓库,而虚拟网卡尚未拿到地址,安装程序自然报错,此时可以挂载完整ISO作为本地仓库,先完成安装,再回头处理网络,RHEL9完整ISO在几个GB量级,最小ISO只有900MB左右,两种选择都不影响后续使用
dnf补装组件。
用最小ISO还搭配CDN仓库安装,是RHEL网络配置失败的高发场景,若局域网内没有HTTP缓存源,强烈建议用完整ISO安装。
网卡没起来,先看虚拟网络编辑器
再往细处说,VMware里虚拟机网络连接方式有NAT、桥接、仅主机三种,它们的故障表现各有不同。
- NAT模式:虚拟机能访问宿主机和外部网络,但外部网络无法主动访问虚拟机,出现ping不通外网时,先看宿主机Windows服务里的“VMware NAT Service”是否启动。
- 桥接模式:虚拟机直接使用物理网络,需要和宿主机同一个网段,不少人选了桥接却发现不通,原因常常是宿主机连接的是Wi-Fi,无线AP的客户端隔离功能挡住了虚拟机。
- 仅主机模式:只能和宿主机通信,如果还指望它上网,不配置转发的话一定失败。
KVM虚拟化平台则是另一套逻辑,它默认创建virbr0虚拟交换机,地址为192.168.122.1,默认NAT网段192.168.122.0/24,安装RHEL时如果选择“Virtual network”并勾选virbr0,安装器能自动获得地址,如果发现这个网络不存在,先确认libvirtd服务是否在运行,

systemctl status libvirtd一看便知。
RHEL安装界面无法联网?两种虚拟化平台的解决路径
物理环境是桥接还是NAT,直接决定了虚拟机里RHEL的网络配置模板,接下来分平台给具体操作路径。
VMware Workstation:桥接模式下RHEL静态IP配置
如果办公网络有DHCP,NAT模式最省心,几乎不需要手动干预,但很多运维场景要求固定IP,这时建议把虚拟机的网络连接方式改为“桥接模式”,让RHEL和宿主机站在同一个物理网络中。
进入RHEL系统后,按以下步骤操作:
- 先看网卡名称,
ip link列出所有接口,不一定是eth0,常见名称有ens33、ens160。 - 查看当前连接名,
nmcli connection show,记下活跃连接那一行的NAME。 - 为连接设置静态IP:
nmcli connection modify "ens160" ipv4.method manual \ ipv4.addresses 192.168.1.88/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "114.114.114.114 223.5.5.5"
网卡名和连接名替换成你实际看到的,不要把Windows里看到的前缀直接套过来,虚拟网卡的设备名在Linux里会重新编号。
让配置生效:
nmcli connection up "ens160"
这个过程里如果系统提示“Connection activation failed”,多半是IP和网关不在同一网段,检查一遍掩码。
KVM虚拟机里的RHEL9网络配置命令实操
KVM下RHEL网络配置失败的解法,和VMware类似但细节不同,桥接模式需要先创建Linux网桥br0,再把物理网卡加进去,操作工作量略大,测试环境用默认NAT就好。
在KVM虚拟机里,RHEL9默认通过Cloud-Init或DHCP自动配置网卡,网卡名通常是ens3或enp1s0,静态配置命令和VMware部分一样,只是IP段要落在virbr0的范围内:
nmcli connection modify ens3 \ ipv4.method manual \ ipv4.addresses 192.168.122.50/24 \ ipv4.gateway 192.168.122.1 \ ipv4.dns "223.5.5.5" nmcli connection up ens3
如果连virbr0里都没有这个子网,先回到宿主机执行ip addr show virbr0确认网络确实存在,KVM宿主机上,RHEL安装界面里点到“网络配置”那一步时若一直转圈,去看一下宿主机防火墙有没有拦截DHCP请求。
RHEL9网络配置命令:nmcli常用套路

无论哪个平台,RHEL9里核心命令就是nmcli,下面四条记住就够用。
nmcli device status:查看每个网卡的状态和连接情况。nmcli connection show:列出已有连接配置。nmcli connection modify 连接名 ipv4.addresses "IP/掩码":修改地址不落地生效,需要配合up。nmcli connection up 连接名:激活修改后的配置。
排查顺序不要乱:先ip link看网卡在不在,再nmcli connection show看连接有没有建立,最后才检查路由和DNS。
别把CentOS网络配置经验硬搬到RHEL上
RHEL和CentOS同源,但网络配置这一块,两者代差造成的坑远比想象中多,经常有同事从CentOS 7迁到RHEL9,照着老习惯改ifcfg-eth0文件,reboot后配置全丢。
RHEL和CentOS网络配置区别:ifcfg文件与keyfile
CentOS 7时代,/etc/sysconfig/network-scripts/ifcfg-eth0这个文件写什么系统认什么,RHEL8开始network-scripts包被弃用,RHEL9里默认只保留NetworkManager的keyfile配置,位置在/etc/NetworkManager/system-connections/目录下,打开看是一个类似INI格式的文本文件。
出路只有一条:把所有网络改动交给nmcli,官方文档里也是这个口径,nmcli改完后NetworkManager自动把配置写入keyfile,重启不丢。
NetworkManager接管后,/etc/resolv.conf别手改
另一个连带问题是DNS配置,RHEL8以上版本中,/etc/resolv.conf通常是指向NetworkManager生成文件的软链接,手动改内容后重启网络就会被覆盖。
要永久改DNS:
nmcli connection modify ens3 ipv4.dns "8.8.8.8 119.29.29.29" nmcli connection up ens3
行业共识认为,RHEL8以上版本的所有网络配置都该走nmcli,手动编辑配置文件只适合临时救急。
更省事:安装引导参数里直接指定IP
如果RHEL安装程序的第一阶段就处于断网状态,还有一个更趁手的办法:在引导参数里直接喂给它IP信息。
安装光盘启动后,在GRUB菜单界面上高亮光标停在第一个条目,按键盘e进入编辑模式,找到以linuxefi开头的那一行,在末尾追加:
ip=192.168.100.66 netmask=255.255.255.0 gateway=192.168.100.1 nameserver=223.5.5.5
按Ctrl+X继续引导,安装器会使用这个IP去拉取CDN源或HTTP仓库,跳过界面网络配置那一环。

该方法在物理隔离内网的批量部署中特别好用,北京、上海等地做机房运维的同行,给RHEL做无人值守安装时也常用同样思路。
批量部署时kickstart里的网络配置
跑无人值守安装时,kickstart文件里用一行搞定:
network --bootproto=static --device=ens3 --ip=192.168.100.10 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=223.5.5.5 --onboot=yes
把这行放在ks文件较靠前的位置,安装过程中会自动应用,对于生产环境里动辄几十台RHEL服务器同时安装的场景,这远比装完一台改一台高效。
排查顺序记一条主线:宿主机虚拟网络是否存在、虚拟网卡是否连接、系统内nmcli配置是否正确,大多数情况下,虚拟机RHEL网络配置失败都卡在这三环中的某一节,按这个路径走能省下不少时间。
Q&A:虚拟机RHEL网络配置失败的三个高频疑问
为什么虚拟机RHEL能ping通网关,但ping不通外网?
能通网关说明二层三层的链路都没问题,问题出在路由或DNS,先执行ip route show,看有没有默认路由,没有的话,手动补一条:
ip route add default via 192.168.122.1
然后测试ping 114.114.114.114,如果能通而ping域名不通,就是DNS解析问题,用前面提到的nmcli修改DNS配置。
虚拟机Rabbit重启后RHEL静态IP又变回DHCP,怎么办?
先检查当前活跃连接是否真的保存了配置,常见原因是安装完系统后没有回到图形界面的“网络”选项里点击“应用”,或者修改的是临时连接,用nmcli connection show看状态,再执行:
nmcli connection modify "ens3" connection.autoconnect yes ipv4.method manual systemctl restart NetworkManager
克隆虚拟机后建议删除原连接配置再重新创建,否则网卡名从ens3变成ens161,配置文件和新网卡对不上,开机后静态IP必然失效。
宿主机能上网,虚拟机RHEL连不上网,怎么办?
先看虚拟机里网卡是否被识别,ip link只显示lo时,说明PCI设备没有映射成功,VMware环境下重装一次VMware Tools,KVM环境下检查宿主机是否加载了virtio驱动,网卡识别正常的,再看宿主机侧服务,VMware的NAT服务、KVM的libvirtd,缺一个都连不上,这套排查路径对生产环境同样适用,RHEL大规模部署在KVM或VMware上的时候,网络配置失败多半发生在克隆和迁移场景里。