睿诚科技协会

CentOS虚拟机网络如何配置与连通?

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

CentOS虚拟机网络如何配置与连通?-图1
(图片来源网络,侵删)

核心概念:三种网络模式

在开始设置之前,你必须理解虚拟机软件提供的三种主要网络模式,因为这决定了你的虚拟机如何与外部世界通信。

  1. NAT (网络地址转换)

    • 工作原理:虚拟机像一个局域网内的私有设备,通过宿主机(你的物理电脑)的 IP 地址“共享”一个公网 IP 来访问互联网,宿主机充当一个路由器。
    • IP 地址:虚拟机从虚拟化软件的 NAT 子网中获取一个私有 IP(168.x.x)。
    • 特点
      • 优点:配置最简单,虚拟机可以自动上网,无需额外配置。
      • 缺点:从外部网络无法直接访问虚拟机,虚拟机也无法访问宿主机网络中的其他设备(除非做端口映射)。
    • 适用场景:个人开发、学习,需要快速上网的环境。
  2. 桥接

    • 工作原理:虚拟机的虚拟网卡直接连接到你物理机的真实网卡上,相当于虚拟机和你的物理机在同一个局域网中,地位平等。
    • IP 地址:虚拟机从你的物理路由器(DHCP 服务器)获取一个 IP 地址,就像你的手机或电脑一样。
    • 特点
      • 优点:虚拟机可以被局域网内的任何设备访问,就像一台独立的物理机。
      • 缺点:需要你的物理路由器有足够的 DHCP 地址,IP 冲突,需要手动配置静态 IP。
    • 适用场景:需要将虚拟机作为服务器(如 Web 服务器、文件服务器)在局域网内提供服务。
  3. 仅主机模式

    CentOS虚拟机网络如何配置与连通?-图2
    (图片来源网络,侵删)
    • 工作原理:创建一个完全隔离的私有网络,只有宿主机和虚拟机可以互相通信,无法访问外部互联网。
    • IP 地址:通常使用 168.56.x 网段。
    • 特点
      • 优点:安全性高,网络隔离,适合测试一些不需要外网的服务。
      • 缺点:无法上网。
    • 适用场景:安全测试、开发隔离环境。

准备工作:在虚拟机软件中设置

在进入 CentOS 系统之前,你必须在 VMware/VirtualBox 中为虚拟机选择正确的网络模式。

  1. 关闭 CentOS 虚拟机。
  2. 在虚拟机软件中,选中你的虚拟机,进入“设置”。
  3. 找到“网络适配器”选项。
  4. 将“网络连接”设置为 NAT桥接,对于新手,推荐从 NAT 开始。
  5. 启动虚拟机。

在 CentOS 系统中配置网络

CentOS 7 和 CentOS 8 在网络配置上有显著区别。

CentOS 7 (使用 ifcfg 文件)

这是传统的配置方式,基于 /etc/sysconfig/network-scripts/ 目录下的配置文件。

步骤 1:查看当前网络信息

CentOS虚拟机网络如何配置与连通?-图3
(图片来源网络,侵删)
  1. 查看 IP 地址

    ip a
    # 或者使用旧命令
    # ifconfig

    你会看到一个名为 ens33(或 eth0)的网卡,它的状态很可能是 DOWN,或者 IP 是 254.x.x(这表示 DHCP 获取失败)。

  2. 查看网关

    ip route

    你应该能看到类似 default via 192.168.x.1 dev ens33 的行,168.x.1 就是你的网关。

  3. 查看 DNS

    cat /etc/resolv.conf

    你会看到 nameserver 8.8.8.8114.114.114 等信息。

步骤 2:编辑网络配置文件

假设你的网卡是 ens33

  1. 进入配置文件目录:

    cd /etc/sysconfig/network-scripts/
  2. 编辑对应的配置文件,ifcfg-ens33

    vi ifcfg-ens33
  3. 根据你的需求修改文件内容,以下是两种最常见场景的配置模板:


场景 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 aping www.baidu.com 检查网络是否正常。


CentOS 8 / RHEL 8 (使用 NetworkManagernmcli)

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

排错指南

如果网络还是不通,可以按照以下步骤检查:

  1. 检查虚拟机软件设置:确认你选择的网络模式(NAT/桥接)是否正确,并且虚拟机已应用设置。

  2. 检查防火墙:CentOS 自带 firewalld 防火墙,可能会阻止网络连接。

    # 查看防火墙状态
    systemctl status firewalld
    # 临时关闭防火墙进行测试
    systemctl stop firewalld
  3. 检查 SELinux:SELinux 也有可能影响网络,可以临时设置为宽松模式进行测试。

    # 查看SELinux状态
    sestatus
    # 临时设置为Permissive模式(会记录警告但不阻止)
    setenforce 0
  4. 检查网关和 DNS:确保 GATEWAYDNS 的 IP 地址是正确的,特别是 DNS,ping IP 通,但 ping 域名 不通,90% 的问题是 DNS。

  5. 重启服务:有时候仅仅是重启一下网络服务或虚拟机就能解决问题。

网络模式 优点 缺点 适用场景 配置要点
NAT 简单,自动上网 外部无法访问 个人开发、学习 虚拟机软件中选 NAT,系统内用 DHCP。
桥接 虚拟机如物理机 需局域网支持,可能IP冲突 局域网服务器、测试 虚拟机软件中选桥接,系统内用静态IP
仅主机 安全,完全隔离 无法上网 安全测试、隔离环境 虚拟机软件中选 Host-Only,系统内用静态IP。

对于新手,建议从 NAT 模式 + DHCP 开始,确保能上网后,再根据需要切换到 桥接模式 + 静态IP

希望这份详细的指南能帮助你成功配置 CentOS 虚拟机的网络!

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