第一部分:核心概念(理解原理是关键)
在动手配置之前,理解三个核心概念会事半功倍:

-
虚拟化平台 (Hypervisor):你用来创建和管理虚拟机的软件,如 VMware Workstation/Fusion, VirtualBox, KVM (在 CentOS 中) 等。
-
虚拟网络模式:虚拟机如何与你的物理主机以及外部网络通信,主要有三种模式:
- NAT (网络地址转换):最简单、最常用的模式。
- 原理:虚拟机就像处在一个私有局域网里,虚拟化平台(如 VMware)会充当一个路由器,将虚拟机的内部 IP 地址(如
168.x.x)转换为物理主机的 IP 地址,从而访问外部网络。 - 优点:配置简单,虚拟机可以自动上网,无需额外配置。
- 缺点:外部网络无法直接主动访问虚拟机(除非做端口映射),虚拟机之间和物理主机通信需要特殊设置。
- 原理:虚拟机就像处在一个私有局域网里,虚拟化平台(如 VMware)会充当一个路由器,将虚拟机的内部 IP 地址(如
- 桥接模式:让虚拟机直接成为你物理网络的一部分。
- 原理:虚拟机的虚拟网卡直接“桥接”到物理主机的物理网卡上,从外部网络看,虚拟机就像一台独立的、与你的物理主机并列的电脑。
- 优点:虚拟机拥有独立的 IP,可以被局域网内的任何设备直接访问。
- 缺点:需要确保网络中有足够的 IP 地址,并且可能需要网络管理员授权。
- 仅主机模式:创建一个完全隔离的网络,只允许虚拟机与物理主机通信。
- 原理:虚拟化平台会创建一个虚拟的私有网络(如
168.56.x),物理主机和虚拟机都连接到这个网络上。 - 优点:高度安全,完全隔离,适合测试开发环境。
- 缺点:无法访问外部网络。
- 原理:虚拟化平台会创建一个虚拟的私有网络(如
- NAT (网络地址转换):最简单、最常用的模式。
-
网络配置文件:在 CentOS 中,网络配置信息存储在
/etc/sysconfig/network-scripts/目录下,每个网络接口都有一个对应的配置文件,ifcfg-eth0或ifcfg-ens33。
第二部分:配置步骤(以 VMware 和 VirtualBox 为例)
我们将以最常见的 NAT 模式 和 桥接模式 为例,讲解配置流程。

NAT 模式(推荐新手)
在这种模式下,虚拟机可以轻松上网,但外部无法直接访问它。
步骤 1:在虚拟化平台中设置 NAT 模式
-
VMware:
- 关闭或挂起你的 CentOS 虚拟机。
- 在 VMware 主界面,选中你的虚拟机,点击“编辑虚拟机设置”。
- 选择“网络适配器”,确保“网络连接”设置为“NAT 模式”。
- 点击“确定”。
-
VirtualBox:
(图片来源网络,侵删)- 关闭你的 CentOS 虚拟机。
- 在 VirtualBox 管理器中,选中你的虚拟机,点击“设置”。
- 选择“网络”,在“ attached to ”下拉菜单中选择 “NAT 网络”。
- 点击“高级”,可以点击“端口转发”来设置外部访问虚拟机的规则(可选)。
- 点击“确定”。
步骤 2:在 CentOS 虚拟机中配置网络
-
查看网络接口名称
ip addr # 或者 ifconfig
你会看到一个类似
ens33或eth0的接口,我们假设它是ens33。 -
编辑网络配置文件
# 使用 vi 或 nano 编辑器打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改配置文件内容 文件内容可能如下,我们需要确保关键参数正确:
# 设备名称 NAME=ens33 # 设备类型 TYPE=Ethernet # 是否在开机时激活 ONBOOT=yes # IP 地址获取方式 # 如果使用 DHCP 自动获取 IP (推荐),设置为 dhcp BOOTPROTO=dhcp # 如果要设置静态 IP,请取消下面的注释并修改 # BOOTPROTO=static # IPADDR=192.168.10.100 # NETMASK=255.255.255.0 # GATEWAY=192.168.10.1 # DNS1=8.8.8.8 # DNS2=114.114.114.114 # 注意:在 NAT 模式下,GATEWAY 通常不需要手动设置,它会由虚拟化平台自动分配。 # DNS 服务器可以设置为 8.8.8.8 或 114.114.114.114 DNS1=8.8.8.8
关键点解释:
ONBOOT=yes:非常重要! 这确保系统启动时自动加载网卡。BOOTPROTO=dhcp:让虚拟机自动从虚拟化平台的 DHCP 服务器获取 IP 地址,最简单。- 如果你想用静态 IP,将
BOOTPROTO改为static,并取消注释后面的IPADDR,NETMASK,GATEWAY,DNS1等项。注意: NAT 模式下的网关和 DNS 地址需要根据你的虚拟化平台来定(通常是虚拟机网关,如 VMware 是168.x.2)。
-
重启网络服务
# 方法一(推荐,CentOS 7/8) nmcli connection down ens33 && nmcli connection up ens33 # 方法二(通用) systemctl restart network
-
验证网络
# 查看是否获取到 IP 地址 ip addr show ens33 # 测试是否能 ping 通外网 ping www.baidu.com
如果一切正常,你的虚拟机就已经可以上网了。
桥接模式
在这种模式下,虚拟机就像你局域网里的一台独立电脑。
步骤 1:在虚拟化平台中设置桥接模式
-
VMware:
- 关闭虚拟机。
- 编辑虚拟机设置 -> 网络适配器 -> 选择“桥接模式”。
- 在“桥接到”的下拉菜单中,选择你物理主机正在使用的网卡(通常是“自动”或一个具体的网卡名,如
VMware Adapter或Realtek PCIe GBE Family Controller)。 - 点击“确定”。
-
VirtualBox:
- 关闭虚拟机。
- 设置 -> 网络 -> attached to 选择 “桥接网卡”。
- 在“名称”下拉菜单中,选择你物理主机的网卡。
- 点击“确定”。
步骤 2:在 CentOS 虚拟机中配置网络
这一步与 NAT 模式类似,但通常需要设置静态 IP,因为 DHCP 服务器可能由你的路由器或网络管理员管理。
-
查看网络接口名称:
ip addr -
编辑网络配置文件:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 -
修改为静态 IP 配置 你需要知道以下信息:
- IP 地址:一个未被占用的局域网内 IP。
- 子网掩码:通常是
255.255.0。 - 网关:你的物理主机的网关(在 Windows 上用
ipconfig查看,Linux 上用ip route查看)。 - DNS 服务器:通常与网关相同,或使用公共 DNS(如
8.8.8)。
NAME=ens33 TYPE=Ethernet BOOTPROTO=static # 改为静态 ONBOOT=yes # --- 填写你获取到的信息 --- IPADDR=192.168.1.110 # 一个未被使用的 IP NETMASK=255.255.255.0 GATEWAY=192.168.1.1 # 你的物理网关 DNS1=8.8.8.8 DNS2=192.168.1.1
注意:如果你的网络是
168.x.0/24网段,IP 地址就应该是168.x.2到168.x.254之间的一个值,且不能与已有设备冲突。 -
重启网络服务并验证
systemctl restart network ping www.baidu.com ping 192.168.1.1 # 测试网关是否通
你的虚拟机就可以像你的手机或电脑一样,被局域网内的其他设备通过 168.1.110 这个 IP 地址访问了。
第三部分:常见问题与解决方案
-
问题:
ping www.baidu.com不通,但ip addr显示有 IP。- 原因:DNS 解析失败。
- 解决方案:
- 检查
/etc/sysconfig/network-scripts/ifcfg-ens33中的DNS1和DNS2是否配置正确。 - 临时测试可以修改
/etc/resolv.conf文件,添加nameserver 8.8.8.8。 - 使用
nslookup www.baidu.com命令测试 DNS 解析是否成功。
- 检查
-
问题:
systemctl restart network失败,提示 "Failed to restart network.service: Unit network.service not found."- 原因:在 CentOS 7/8 中,网络管理服务已从
network.service改为NetworkManager.service。 - 解决方案:
- 使用
nmcli命令来管理网络,这是推荐的方式。 - 或者,如果必须使用
ifcfg文件,确保NetworkManager服务是开启的,并且它管理你的网卡。nmcli connection up/down <interface>更可靠。
- 使用
- 原因:在 CentOS 7/8 中,网络管理服务已从
-
问题:在 NAT 模式下,物理主机无法 ping 通虚拟机。
- 原因:这是 NAT 模式的默认行为,物理主机和虚拟机在不同的网络段。
- 解决方案:
- VMware: 编辑虚拟机设置 -> 网络适配器 -> 高级 -> NAT 设置 -> 添加端口转发。
物理端口: 8080->虚拟 IP: 虚拟机IP->虚拟端口: 80,这样你就可以在物理主机上通过http://物理主机IP:8080访问虚拟机的 80 端口服务。 - VirtualBox: 在网卡设置的“端口转发”规则中进行类似配置。
- VMware: 编辑虚拟机设置 -> 网络适配器 -> 高级 -> NAT 设置 -> 添加端口转发。
| 场景 | 优点 | 缺点 | 适用情况 |
|---|---|---|---|
| NAT 模式 | 配置简单,自动上网,无需额外 IP | 外部无法直接访问,需端口转发 | 日常上网、学习、开发测试(对外无服务需求) |
| 桥接模式 | 虚拟机独立,可被局域网直接访问 | 需要手动配置 IP,可能占用局域网 IP | 需要将虚拟机作为服务器(如 Web, FTP)、测试网络应用 |
| 仅主机模式 | 高度安全,完全隔离 | 无法访问外部网络 | 安全测试、恶意软件分析、构建完全隔离的开发环境 |
对于大多数用户,从 NAT 模式开始是最简单、最不容易出错的,当你需要将虚拟机暴露给局域网时,再切换到桥接模式并配置静态 IP,希望这份详细的指南能帮助你成功配置你的 CentOS 虚拟机!
