下面我将为你提供一个从简到繁、从通用到特定的完整指南,涵盖了最常用的几种网络配置方式。

核心概念:三种网络模式
在开始设置之前,你必须理解虚拟机软件提供的三种主要网络模式,因为这决定了你的虚拟机如何与外部世界通信。
-
NAT (网络地址转换)
- 工作原理:虚拟机像一个局域网内的私有设备,通过宿主机(你的物理电脑)的 IP 地址“共享”一个公网 IP 来访问互联网,宿主机充当一个路由器。
- IP 地址:虚拟机从虚拟化软件的 NAT 子网中获取一个私有 IP(
168.x.x)。 - 特点:
- 优点:配置最简单,虚拟机可以自动上网,无需额外配置。
- 缺点:从外部网络无法直接访问虚拟机,虚拟机也无法访问宿主机网络中的其他设备(除非做端口映射)。
- 适用场景:个人开发、学习,需要快速上网的环境。
-
桥接
- 工作原理:虚拟机的虚拟网卡直接连接到你物理机的真实网卡上,相当于虚拟机和你的物理机在同一个局域网中,地位平等。
- IP 地址:虚拟机从你的物理路由器(DHCP 服务器)获取一个 IP 地址,就像你的手机或电脑一样。
- 特点:
- 优点:虚拟机可以被局域网内的任何设备访问,就像一台独立的物理机。
- 缺点:需要你的物理路由器有足够的 DHCP 地址,IP 冲突,需要手动配置静态 IP。
- 适用场景:需要将虚拟机作为服务器(如 Web 服务器、文件服务器)在局域网内提供服务。
-
仅主机模式
(图片来源网络,侵删)- 工作原理:创建一个完全隔离的私有网络,只有宿主机和虚拟机可以互相通信,无法访问外部互联网。
- IP 地址:通常使用
168.56.x网段。 - 特点:
- 优点:安全性高,网络隔离,适合测试一些不需要外网的服务。
- 缺点:无法上网。
- 适用场景:安全测试、开发隔离环境。
准备工作:在虚拟机软件中设置
在进入 CentOS 系统之前,你必须在 VMware/VirtualBox 中为虚拟机选择正确的网络模式。
- 关闭 CentOS 虚拟机。
- 在虚拟机软件中,选中你的虚拟机,进入“设置”。
- 找到“网络适配器”选项。
- 将“网络连接”设置为 NAT 或 桥接,对于新手,推荐从 NAT 开始。
- 启动虚拟机。
在 CentOS 系统中配置网络
CentOS 7 和 CentOS 8 在网络配置上有显著区别。
CentOS 7 (使用 ifcfg 文件)
这是传统的配置方式,基于 /etc/sysconfig/network-scripts/ 目录下的配置文件。
步骤 1:查看当前网络信息

-
查看 IP 地址
ip a # 或者使用旧命令 # ifconfig
你会看到一个名为
ens33(或eth0)的网卡,它的状态很可能是DOWN,或者 IP 是254.x.x(这表示 DHCP 获取失败)。 -
查看网关
ip route
你应该能看到类似
default via 192.168.x.1 dev ens33的行,168.x.1就是你的网关。 -
查看 DNS
cat /etc/resolv.conf
你会看到
nameserver 8.8.8.8或114.114.114等信息。
步骤 2:编辑网络配置文件
假设你的网卡是 ens33。
-
进入配置文件目录:
cd /etc/sysconfig/network-scripts/
-
编辑对应的配置文件,
ifcfg-ens33:vi ifcfg-ens33
-
根据你的需求修改文件内容,以下是两种最常见场景的配置模板:
场景 A:DHCP 自动获取 IP (NAT 模式常用)
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # BOOTPROTO=dhcp 表示使用 DHCP BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 # UUID 可以通过 `uuidgen` 命令生成,也可以保持不变 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DEVICE=ens33 # ONBOOT=yes 表示开机自启,非常重要! ONBOOT=yes
场景 B:静态 IP (桥接模式或固定服务器常用)
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # BOOTPROTO=static 表示使用静态 IP BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DEVICE=ens33 ONBOOT=yes # --- 以下是静态 IP 的关键配置 --- # IP 地址 IPADDR=192.168.1.100 # 子网掩码 NETMASK=255.255.255.0 # 网关 GATEWAY=192.168.1.1 # DNS 服务器 DNS1=8.8.8.8 DNS2=114.114.114.114
注意:
IPADDR,NETMASK,GATEWAY必须和你的局域网环境匹配。IPADDR最好在你的 DHCP 范围之外,避免冲突。
步骤 3:重启网络服务
保存并退出 vi 编辑器后,执行以下命令使配置生效:
# 重启网络服务 systemctl restart network # 或者禁用 NetworkManager,直接重启网络(CentOS 7 推荐) # systemctl stop NetworkManager # systemctl disable NetworkManager # systemctl restart network
步骤 4:验证配置
再次使用 ip a 和 ping www.baidu.com 检查网络是否正常。
CentOS 8 / RHEL 8 (使用 NetworkManager 和 nmcli)
CentOS 8 引入了 NetworkManager 作为核心网络管理工具,推荐使用 nmcli 命令行工具进行配置,它更现代化、更强大。
步骤 1:查看当前连接
nmcli connection show
你会看到一个默认的连接,通常名字和你的设备名一样,ens33。
步骤 2:修改连接配置
假设你要修改 ens33 的连接。
场景 A:DHCP 自动获取 IP (NAT 模式常用)
这个通常是默认设置,无需修改,如果被改成了静态,可以切换回来:
# 将 ens33 连接的配置方法改为 dhcp nmcli con mod ens33 ipv4.method auto # 如果之前设置了静态 IP,这里会清除它们 nmcli con mod ens33 ipv4.addresses "" nmcli con mod ens33 ipv4.gateway "" nmcli con mod ens33 ipv4.dns ""
场景 B:静态 IP (桥接模式或固定服务器常用)
# 1. 设置连接为静态 IP nmcli con mod ens33 ipv4.method manual # 2. 设置 IP 地址、子网掩码、网关 # 格式: nmcli con mod <连接名> ipv4.addresses <IP地址/子网前缀长度> # 子网掩码 255.255.255.0 对应 /24 nmcli con mod ens33 ipv4.addresses 192.168.1.100/24 # 3. 设置网关 nmcli con mod ens33 ipv4.gateway 192.168.1.1 # 4. 设置 DNS 服务器 nmcli con mod ens33 ipv4.dns "8.8.8.8 114.114.114.114"
步骤 3:重启连接
# 关闭再重新启动 ens33 连接 nmcli con down ens33 && nmcli con up ens33
或者更简单地:
# 重新加载配置并重启网络服务 nmcli connection reload nmcli connection up ens33
步骤 4:验证配置
# 查看IP地址 ip a # 测试网络连通性 ping www.baidu.com ping 192.168.1.1
排错指南
如果网络还是不通,可以按照以下步骤检查:
-
检查虚拟机软件设置:确认你选择的网络模式(NAT/桥接)是否正确,并且虚拟机已应用设置。
-
检查防火墙:CentOS 自带
firewalld防火墙,可能会阻止网络连接。# 查看防火墙状态 systemctl status firewalld # 临时关闭防火墙进行测试 systemctl stop firewalld
-
检查 SELinux:SELinux 也有可能影响网络,可以临时设置为宽松模式进行测试。
# 查看SELinux状态 sestatus # 临时设置为Permissive模式(会记录警告但不阻止) setenforce 0
-
检查网关和 DNS:确保
GATEWAY和DNS的 IP 地址是正确的,特别是 DNS,ping IP通,但ping 域名不通,90% 的问题是 DNS。 -
重启服务:有时候仅仅是重启一下网络服务或虚拟机就能解决问题。
| 网络模式 | 优点 | 缺点 | 适用场景 | 配置要点 |
|---|---|---|---|---|
| NAT | 简单,自动上网 | 外部无法访问 | 个人开发、学习 | 虚拟机软件中选 NAT,系统内用 DHCP。 |
| 桥接 | 虚拟机如物理机 | 需局域网支持,可能IP冲突 | 局域网服务器、测试 | 虚拟机软件中选桥接,系统内用静态IP。 |
| 仅主机 | 安全,完全隔离 | 无法上网 | 安全测试、隔离环境 | 虚拟机软件中选 Host-Only,系统内用静态IP。 |
对于新手,建议从 NAT 模式 + DHCP 开始,确保能上网后,再根据需要切换到 桥接模式 + 静态IP。
希望这份详细的指南能帮助你成功配置 CentOS 虚拟机的网络!
