睿诚科技协会

CentOS虚拟机网络配置如何正确设置?

第一部分:核心概念(理解原理是关键)

在动手配置之前,理解三个核心概念会事半功倍:

CentOS虚拟机网络配置如何正确设置?-图1
(图片来源网络,侵删)
  1. 虚拟化平台 (Hypervisor):你用来创建和管理虚拟机的软件,如 VMware Workstation/Fusion, VirtualBox, KVM (在 CentOS 中) 等。

  2. 虚拟网络模式:虚拟机如何与你的物理主机以及外部网络通信,主要有三种模式:

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


第二部分:配置步骤(以 VMware 和 VirtualBox 为例)

我们将以最常见的 NAT 模式桥接模式 为例,讲解配置流程。

CentOS虚拟机网络配置如何正确设置?-图2
(图片来源网络,侵删)

NAT 模式(推荐新手)

在这种模式下,虚拟机可以轻松上网,但外部无法直接访问它。

步骤 1:在虚拟化平台中设置 NAT 模式

  • VMware:

    1. 关闭或挂起你的 CentOS 虚拟机。
    2. 在 VMware 主界面,选中你的虚拟机,点击“编辑虚拟机设置”。
    3. 选择“网络适配器”,确保“网络连接”设置为“NAT 模式”。
    4. 点击“确定”。
  • VirtualBox:

    CentOS虚拟机网络配置如何正确设置?-图3
    (图片来源网络,侵删)
    1. 关闭你的 CentOS 虚拟机。
    2. 在 VirtualBox 管理器中,选中你的虚拟机,点击“设置”。
    3. 选择“网络”,在“ attached to ”下拉菜单中选择 “NAT 网络”。
    4. 点击“高级”,可以点击“端口转发”来设置外部访问虚拟机的规则(可选)。
    5. 点击“确定”。

步骤 2:在 CentOS 虚拟机中配置网络

  1. 查看网络接口名称

    ip addr
    # 或者
    ifconfig

    你会看到一个类似 ens33eth0 的接口,我们假设它是 ens33

  2. 编辑网络配置文件

    # 使用 vi 或 nano 编辑器打开配置文件
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
  3. 修改配置文件内容 文件内容可能如下,我们需要确保关键参数正确:

    # 设备名称
    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)。
  4. 重启网络服务

    # 方法一(推荐,CentOS 7/8)
    nmcli connection down ens33 && nmcli connection up ens33
    # 方法二(通用)
    systemctl restart network
  5. 验证网络

    # 查看是否获取到 IP 地址
    ip addr show ens33
    # 测试是否能 ping 通外网
    ping www.baidu.com

如果一切正常,你的虚拟机就已经可以上网了。


桥接模式

在这种模式下,虚拟机就像你局域网里的一台独立电脑。

步骤 1:在虚拟化平台中设置桥接模式

  • VMware:

    1. 关闭虚拟机。
    2. 编辑虚拟机设置 -> 网络适配器 -> 选择“桥接模式”。
    3. 在“桥接到”的下拉菜单中,选择你物理主机正在使用的网卡(通常是“自动”或一个具体的网卡名,如 VMware AdapterRealtek PCIe GBE Family Controller)。
    4. 点击“确定”。
  • VirtualBox:

    1. 关闭虚拟机。
    2. 设置 -> 网络 -> attached to 选择 “桥接网卡”。
    3. 在“名称”下拉菜单中,选择你物理主机的网卡。
    4. 点击“确定”。

步骤 2:在 CentOS 虚拟机中配置网络

这一步与 NAT 模式类似,但通常需要设置静态 IP,因为 DHCP 服务器可能由你的路由器或网络管理员管理。

  1. 查看网络接口名称ip addr

  2. 编辑网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33

  3. 修改为静态 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.2168.x.254 之间的一个值,且不能与已有设备冲突。

  4. 重启网络服务并验证

    systemctl restart network
    ping www.baidu.com
    ping 192.168.1.1 # 测试网关是否通

你的虚拟机就可以像你的手机或电脑一样,被局域网内的其他设备通过 168.1.110 这个 IP 地址访问了。


第三部分:常见问题与解决方案

  1. 问题:ping www.baidu.com 不通,但 ip addr 显示有 IP。

    • 原因:DNS 解析失败。
    • 解决方案
      1. 检查 /etc/sysconfig/network-scripts/ifcfg-ens33 中的 DNS1DNS2 是否配置正确。
      2. 临时测试可以修改 /etc/resolv.conf 文件,添加 nameserver 8.8.8.8
      3. 使用 nslookup www.baidu.com 命令测试 DNS 解析是否成功。
  2. 问题:systemctl restart network 失败,提示 "Failed to restart network.service: Unit network.service not found."

    • 原因:在 CentOS 7/8 中,网络管理服务已从 network.service 改为 NetworkManager.service
    • 解决方案
      1. 使用 nmcli 命令来管理网络,这是推荐的方式。
      2. 或者,如果必须使用 ifcfg 文件,确保 NetworkManager 服务是开启的,并且它管理你的网卡。nmcli connection up/down <interface> 更可靠。
  3. 问题:在 NAT 模式下,物理主机无法 ping 通虚拟机。

    • 原因:这是 NAT 模式的默认行为,物理主机和虚拟机在不同的网络段。
    • 解决方案
      • VMware: 编辑虚拟机设置 -> 网络适配器 -> 高级 -> NAT 设置 -> 添加端口转发。物理端口: 8080 -> 虚拟 IP: 虚拟机IP -> 虚拟端口: 80,这样你就可以在物理主机上通过 http://物理主机IP:8080 访问虚拟机的 80 端口服务。
      • VirtualBox: 在网卡设置的“端口转发”规则中进行类似配置。

场景 优点 缺点 适用情况
NAT 模式 配置简单,自动上网,无需额外 IP 外部无法直接访问,需端口转发 日常上网、学习、开发测试(对外无服务需求)
桥接模式 虚拟机独立,可被局域网直接访问 需要手动配置 IP,可能占用局域网 IP 需要将虚拟机作为服务器(如 Web, FTP)、测试网络应用
仅主机模式 高度安全,完全隔离 无法访问外部网络 安全测试、恶意软件分析、构建完全隔离的开发环境

对于大多数用户,从 NAT 模式开始是最简单、最不容易出错的,当你需要将虚拟机暴露给局域网时,再切换到桥接模式并配置静态 IP,希望这份详细的指南能帮助你成功配置你的 CentOS 虚拟机!

分享:
扫描分享到社交APP
上一篇
下一篇