睿诚科技协会

CentOS虚拟机网络配置不通怎么办?

第一步:理解 VMware 的三种网络模式

在配置 CentOS 之前,你必须先理解 VMware 提供的三种虚拟网络模式,因为这是网络配置的基石,你可以在 VMware Workstation/Player 的 "编辑" -> "虚拟网络编辑器" 中查看和修改这些设置。

CentOS虚拟机网络配置不通怎么办?-图1
(图片来源网络,侵删)

桥接模式

  • 工作原理:你的虚拟机就像一台物理上独立的计算机,直接连接到你的物理网络中,VMware 会创建一个虚拟网卡,它直接“桥接”到你物理主机的真实网卡上。
  • IP 地址:虚拟机将从你的物理路由器获取一个 IP 地址(通过 DHCP),或者你可以手动为它设置一个与你的物理网络在同一网段的静态 IP。
  • 优点
    • 虚拟机可以和局域网内任何其他设备(如其他电脑、打印机、NAS)互相通信。
    • 可以从局域网内任何一台电脑直接访问你的虚拟机。
  • 缺点
    • 如果物理网络环境改变(从公司网络换到家里网络),虚拟机的 IP 可能会失效。
    • 需要网络管理员的支持,如果物理网络设置了严格的访问控制,虚拟机可能无法接入。
  • 适用场景:需要将虚拟机作为局域网内一个完全独立的节点时,例如搭建一个文件服务器、Web 服务器,或者需要被局域网内其他设备访问的测试环境。

NAT 模式

  • 工作原理:这是最常用的模式,VMware 会创建一个私有的内部网络,虚拟机通过 VMware 提供的虚拟 NAT 服务(就像一个路由器)来访问外部网络,你的物理主机充当一个“网关”。
  • IP 地址:虚拟机从 VMware 的内部 DHCP 服务器获取一个私有 IP 地址(通常是 168.x.x0.x.x 网段),物理主机可以访问虚拟机,但局域网内的其他设备默认无法直接访问虚拟机。
  • 优点
    • 配置简单,虚拟机可以轻松访问互联网。
    • 不需要修改物理网络任何设置,即插即用。
    • 虚拟机处于一个隔离的网络中,相对安全。
  • 缺点

    默认情况下,局域网内的其他设备无法直接访问虚拟机,需要手动进行端口转发。

  • 适用场景:日常开发、测试,需要上网但又不希望影响物理网络,或者网络环境复杂时。

仅主机模式

  • 工作原理:创建一个完全隔离的私有网络,只有你的物理主机和虚拟机可以在这个网络里通信,无法访问外部互联网
  • IP 地址:同样从 VMware 的内部 DHCP 服务器获取私有 IP 地址。
  • 优点
    • 最高的安全性,完全隔离,无任何外部网络风险。
  • 缺点

    无法访问互联网。

  • 适用场景:进行高危操作测试、处理敏感数据、或者创建一个完全隔离的测试环境。

第二步:配置 CentOS 系统的网络

选择好网络模式后,我们开始在 CentOS 系统内部进行配置,CentOS 7/8/9 推荐使用 NetworkManagernmcli 命令行工具进行管理,它比传统的 ifcfg 文件方式更现代、更简单。

获取动态 IP 地址 (DHCP)

如果你的网络环境有 DHCP 服务器(无论是物理路由器还是 VMware 的 NAT 服务),这是最简单的配置。

CentOS虚拟机网络配置不通怎么办?-图2
(图片来源网络,侵删)
  1. 检查网络连接状态

    # 查看所有网络接口及其状态
    nmcli connection show

    你会看到一个名为 ens33 (或 eth0, eno1 等,具体名称可能不同) 的连接,类型是 Ethernet

  2. 启用 DHCP 默认情况下,网络接口通常是启用了 DHCP 的,如果没有,可以执行以下命令:

    # 修改指定连接的配置,将 ipv4.method 设置为 auto (即DHCP)
    sudo nmcli connection modify "ens33" ipv4.method auto
  3. 重启网络连接使配置生效

    CentOS虚拟机网络配置不通怎么办?-图3
    (图片来源网络,侵删)
    sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"

    或者直接重启 NetworkManager 服务:

    sudo systemctl restart NetworkManager
  4. 验证 IP 地址

    ip a show ens33

    你应该能看到从 DHCP 服务器获取到的 IP 地址、子网掩码、网关和 DNS 服务器信息。

配置静态 IP 地址

当你需要为虚拟机设置一个固定的、永久的 IP 地址时(用于搭建服务器),就需要配置静态 IP。

  1. 查看当前连接信息

    nmcli connection show

    假设我们的连接名称是 ens33

  2. 修改连接配置,设置静态 IP 你需要知道你的网络信息,包括:

    • IP 地址: 168.1.100
    • 子网掩码: 255.255.0 (可以用前缀长度 24 代替)
    • 网关: 168.1.1
    • DNS 服务器: 8.8.88.4.4

    执行以下命令:

    # 1. 设置 ipv4.method 为 manual (静态)
    sudo nmcli connection modify "ens33" ipv4.method manual
    # 2. 设置静态 IP 地址和前缀长度
    sudo nmcli connection modify "ens33" ipv4.addresses 192.168.1.100/24
    # 3. 设置网关
    sudo nmcli connection modify "ens33" ipv4.gateway 192.168.1.1
    # 4. 设置 DNS 服务器
    sudo nmcli connection modify "ens33" ipv4.dns "8.8.8.8 8.8.4.4"
  3. 重启网络连接使配置生效

    sudo nmcli connection down "ens33" && sudo nmcli connection up "ens33"
  4. 验证配置

    # 查看IP地址信息
    ip a show ens33
    # 查看路由表,确认网关已设置
    ip r
    # 测试网络连通性 (ping 一个公网地址)
    ping 8.8.8.8
    # 测试 DNS 解析 (ping 一个域名)
    ping www.baidu.com

第三步:常见问题排查

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

  1. 检查 VMware 虚拟网络设置

    • 打开 "虚拟网络编辑器"。
    • 确认你选择的网络模式(如 NAT/Bridged)对应的 VMnet 是否被勾选并启用。
    • NAT 模式:检查 "NAT 设置" 中的网关地址是否正确,虚拟机的 DHCP 设置是否启用。
    • Bridged 模式:确保桥接到了正确的物理网卡上。
  2. 检查 CentOS 防火墙 CentOS 默认有 firewalld 防火墙,可能会阻止外部访问。

    # 查看防火墙状态
    sudo firewall-cmd --state
    # 如果是 running (运行中),可以临时关闭来测试
    sudo systemctl stop firewalld
    # 或者添加一个规则允许 ICMP (ping) 和特定端口
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --reload
  3. 检查 SELinux SELinux 在极少数情况下也可能影响网络服务,但通常不是主要原因,如果怀疑,可以临时设置为宽松模式测试:

    # 查看当前模式
    sestatus
    # 临时设置为 Permissive (不会阻止操作,但会记录日志)
    sudo setenforce 0

    注意:这只是排查手段,生产环境不建议关闭 SELinux。

  4. 检查网卡驱动 确保系统正确识别并加载了网卡驱动,对于 VMware 虚拟机,通常使用 vmxnet3 驱动,这是默认且性能最好的。

    lspci | grep -i ethernet

    输出中应该包含 VMware 字样。


步骤 操作 命令/工具
选择模式 在 VMware 中为虚拟机选择网络模式 (Bridged/NAT/Host-only) VMware Workstation/Player 设置
进入系统 登录 CentOS 系统 终端
查看连接 查看网络连接名称 nmcli connection show
配置 DHCP 设置为自动获取 IP sudo nmcli connection modify <连接名> ipv4.method auto
配置 Static IP 设置为手动配置 IP sudo nmcli connection modify <连接名> ipv4.method manual
sudo nmcli connection modify <连接名> ipv4.addresses <IP/前缀>
sudo nmcli connection modify <连接名> ipv4.gateway <网关>
sudo nmcli connection modify <连接名> ipv4.dns "<DNS1 DNS2>"
应用配置 重启网络连接 sudo nmcli connection down <连接名> && sudo nmcli connection up <连接名>
验证 检查 IP 和网络连通性 ip a, ping 8.8.8.8

遵循以上步骤,你就可以成功地在 VMware 中为你的 CentOS 虚拟机配置网络了,对于初学者,NAT 模式 + DHCP 是最简单易用的组合;对于需要固定地址的场景,NAT/Bridged 模式 + Static IP 则是最佳选择。

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