找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1431

积分

0

好友

208

主题
发表于 5 天前 | 查看: 15| 回复: 0

场景与需求分析

在企业网络环境中,经常遇到一个典型问题:使用VirtualBox创建的虚拟机,如何既能访问外部互联网,又能从宿主机(本地PC)方便地访问和管理?很多新手会尝试直接使用桥接模式,但常常因公司DHCP策略限制而无法成功获取IP地址。

因此,一个更通用且可靠的解决方案是:为虚拟机配置双网卡。一块网卡用于访问外网(NAT模式),另一块网卡用于宿主机内网访问(仅主机模式)。

为什么需要双网卡?

  • 访问外网:虚拟机通过NAT(网络地址转换) 模式访问外网。虚拟机发出的网络请求,会经过VirtualBox内置的NAT设备转发到宿主机的物理网卡,再抵达互联网。这个过程对宿主机网络是透明的。
  • 访问内网:如果我们想从宿主机ping通虚拟机或通过SSH连接,就需要一个双方共有的网络通道。NAT模式在宿主机端没有对应的实体网卡,无法直接路由。而VirtualBox在安装时会默认创建一块虚拟的 “仅主机(Host-Only)”网络适配器,它就像一根虚拟网线,一端连着宿主机,一端连着虚拟机,构成了一个私有的内部网络。这正是实现宿主机与虚拟机互访的关键。

第一步:配置VirtualBox全局网络

首先,我们需要在VirtualBox管理器中启用并配置好“仅主机”网络。

  1. 打开VirtualBox,进入 管理 -> 工具 -> 网络
  2. 选择 “仅主机(Host-Only)网络” 选项卡。
  3. 如果列表为空,点击右侧的 “创建” 按钮,VirtualBox会生成一块新的虚拟网卡(如 VirtualBox Host-Only Ethernet Adapter)。
  4. 选中创建的网卡,点击 “属性” 图标(螺丝刀形状)。
    • 在这里,你可以设置宿主机侧此网卡的IP地址(例如 172.16.50.1)。
    • 可以配置DHCP服务器,为接入此网络的虚拟机自动分配IP(例如网段 172.16.50.100-200)。
  5. 在Windows的“网络连接”或Linux的ifconfig/ip addr中,确认此虚拟网卡已启用。

VirtualBox仅主机网络配置界面

第二步:为虚拟机配置双网卡

接下来,为特定的虚拟机设置两块虚拟网卡。

  1. 在VirtualBox主界面,选中目标虚拟机,点击 “设置”
  2. 进入 “网络” 选项。
  3. 网卡1:启用,连接方式选择 “网络地址转换(NAT)”。此网卡负责虚拟机访问外网。
  4. 网卡2:启用,连接方式选择 “仅主机(Host-Only)网络”,界面名称选择你刚才创建或已存在的虚拟网卡(如 VirtualBox Host-Only Ethernet Adapter)。此网卡负责与宿主机通信。
  5. 点击“确定”保存配置。

虚拟机网络设置:NAT与仅主机模式

第三步:配置虚拟机内部网络(以欧拉OS为例)

启动虚拟机,进入系统后,需要配置两块网卡的IP地址。这里以欧拉(OpenEuler)21.10系统为例,其他Linux发行版配置文件路径可能不同,但原理相通。

1. 查看网络接口

使用 ip addr 命令,确认两块网卡已被系统识别(通常为 enp0s3enp0s8)。

2. 配置NAT网卡(enp0s3)

NAT网卡通常通过DHCP自动获取IP,无需手动配置静态IP。只需确保其配置文件(如 /etc/sysconfig/network-scripts/ifcfg-enp0s3)中 BOOTPROTO=dhcpONBOOT=yes

3. 配置仅主机网卡(enp0s8)

这是实现内网互访的关键,需要配置静态IP,且需与宿主机虚拟网卡在同一网段。

  1. 复制一个网卡配置文件模板:

    cd /etc/sysconfig/network-scripts/
    cp ifcfg-enp0s3 ifcfg-enp0s8
  2. 为新网卡生成一个唯一的UUID:

    uuidgen

    记下输出的UUID(例如 5e940b2d-e8ec-44aa-abc7-b98be2a30e26)。

  3. 编辑 ifcfg-enp0s8 配置文件:

    vi ifcfg-enp0s8

    修改或确认以下关键参数:

    TYPE=Ethernet
    NAME=enp0s8
    DEVICE=enp0s8
    UUID=5e940b2d-e8ec-44aa-abc7-b98be2a30e26  # 替换为刚才生成的UUID
    ONBOOT=yes
    BOOTPROTO=static  # 设置为静态IP
    IPADDR=172.16.50.77  # 设置一个与宿主机虚拟网卡同网段的IP,如172.16.50.77
    NETMASK=255.255.255.0
    # 如果需要,可以设置网关,但仅主机网络通常不需要网关
    # GATEWAY=172.16.50.1
  4. 重启网络服务或重启特定网卡使配置生效。掌握systemctlservice等网络服务管理命令是Linux系统运维的基础技能。

    # 方法一:重启所有网络接口
    systemctl restart network
    # 方法二:分别重启两块网卡
    ifdown enp0s3 && ifup enp0s3
    ifdown enp0s8 && ifup enp0s8

    再次使用 ip addr 命令,确认两块网卡均已获得正确的IP地址。

第四步:网络连通性验证

验证外网访问(虚拟机 -> 互联网)

在虚拟机内部,尝试 ping 一个外网地址或域名:

ping www.baidu.com

如果能够收到回复,说明NAT网络配置成功,虚拟机可以访问互联网。

验证内网访问(宿主机 -> 虚拟机)

在宿主机上(Windows系统可按 Win+R 输入 cmd 打开命令提示符),ping 你为虚拟机配置的“仅主机”网络IP地址:

ping 172.16.50.77

如果能够ping通,恭喜你,网络配置成功!现在你可以从宿主机通过SSH(端口22)、FTP或任何其他基于IP的服务连接到这台虚拟机了。

总结

通过为VirtualBox虚拟机配置 “NAT + Host-Only”双网卡,我们完美解决了在企业复杂网络环境下的两大核心需求:

  1. 虚拟机便捷访问外网,方便安装软件、更新系统。
  2. 宿主机稳定访问虚拟机,为本地开发、测试和服务管理提供了可靠的网络基础。这种配置方式隔离性好,不依赖外部网络环境,是学习和开发环境中非常推荐的VirtualBox网络方案。



上一篇:MySQL索引失效深度解析:隐式类型转换、成本优化与排序陷阱
下一篇:GESP C++二级真题深度解析:2024年12月考题思路与知识点精讲
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 18:59 , Processed in 0.220656 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表