当前位置: 首页 > news >正文

从零开始:VirtualBox 虚拟机安装与 CentOS 7 部署 + 双网卡网络配置指南

从零开始:VirtualBox虚拟机安装与CentOS 7部署+双网卡网络配置指南

在云原生学习、测试环境搭建或多系统开发场景中,虚拟机是不可或缺的工具。VirtualBox作为一款开源免费、跨平台的虚拟机软件,支持Windows、macOS、Linux等主流宿主系统,能轻松实现“一台物理机运行多台虚拟电脑”的需求。本文将手把手带您完成VirtualBox安装、CentOS 7虚拟机部署,并配置NAT+Host-Only双网卡,实现虚拟机“上外网+与主机互通”的核心功能。

一、VirtualBox:认识与下载安装

1.1 为什么选VirtualBox?

  • 开源免费:基于GPLv3协议,个人与企业使用均无成本,且Oracle官方持续维护更新。
  • 跨平台兼容:宿主系统覆盖Windows、macOS(含Intel/Arm64/M1/M2)、Linux、Solaris, guest系统支持CentOS、Windows、Ubuntu等数十种。
  • 轻量高效:相比VMware,资源占用更低,适合入门级用户与轻量级开发测试场景。

1.2 下载VirtualBox

  1. 访问官方下载页:https://www.virtualbox.org/wiki/Downloads
  2. 选择对应宿主系统版本:
    • Windows用户:点击“Windows hosts”;
    • macOS用户:Intel芯片选“macOS / Intel hosts”,M1/M2芯片选“Developer preview for macOS / Arm64 (M1/M2) hosts”;
    • Linux用户:根据发行版(如Ubuntu、CentOS)选择对应包。
  3. 版本说明:VirtualBox 7.0为当前主流版本,6.1版本支持至2023年12月,建议优先选7.0(如本文用7.0.8)。

1.3 安装VirtualBox

  • Windows/macOS:双击安装包,默认下一步即可。注意:
    • Windows可能弹出“用户账户控制(UAC)”提示,点击“允许”;
    • macOS需在“系统设置-安全性与隐私”中允许Oracle扩展程序。
  • Linux:通过包管理器安装(如Ubuntu用dpkg -i 包名.deb),过程无特殊配置。

安装完成后,桌面会出现“Oracle VM VirtualBox”图标,启动后进入管理器界面,准备创建虚拟机。

二、部署CentOS 7虚拟机:从创建到登录

2.1 准备CentOS 7镜像

首先下载CentOS 7 64位镜像,推荐官方地址:https://www.centos.org/download/(选择“CentOS-7-x86_64-DVD-xxx.iso”,如本文用2207-02版本)。

2.2 新建CentOS 7虚拟机

  1. 启动创建向导:打开VirtualBox管理器,点击左上角“新建”,进入“虚拟电脑名称与操作系统”界面:

    • 名称:自定义(如node1,便于识别);
    • 系统类型:选择“Linux”,版本“Red Hat (64-bit)”(CentOS基于Red Hat,兼容性最佳);
    • 虚拟光盘:点击“选择”,找到下载的CentOS 7 ISO文件,加载镜像。
      image
  2. 配置自动安装参数:点击“下一步”,进入“自动安装”界面:

    • 用户名:默认vboxuser(可自定义),密码自行设置(记牢,用于普通用户登录);
    • 主机名:默认node1.myguest.virtualbox.org(可改,如centos7-node1);
    • 增强功能:默认不勾选(后续需可手动安装),直接“下一步”。
      image
  3. 调整硬件配置:进入“硬件”界面,根据物理机配置调整(新手建议默认):

    • 内存:2048 MB(物理机内存≥8GB可设4096 MB,避免卡顿);
    • 处理器:1核(物理机CPU核心数多可设2核);
    • 启用EFI:默认“否”(仅特殊系统需开启),点击“下一步”。
      image
  4. 创建虚拟硬盘:进入“虚拟硬盘”界面:

    • 选择“现在创建虚拟硬盘”,容量设20.00 GB(CentOS 7最小安装需10GB以上,预留空间便于后续安装软件);
    • 格式默认“VDI”,无需“预先分配全部空间”(节省物理磁盘空间),点击“下一步”。
      image
  5. 确认配置并创建:进入“摘要”界面,核对名称、镜像路径、硬件参数无误后,点击“完成”,虚拟机骨架创建完成。

2.3 启动并安装CentOS 7

  1. 确认镜像挂载:在VirtualBox管理器中,选中node1虚拟机,点击“设置-存储”:

    • 查看“控制器:IDE”下的“分配光驱”,确认已加载CentOS ISO(若未加载,点击“没有盘片”→“选择虚拟盘”重新挂载)。
      image
  2. 启动虚拟机:点击“启动”,虚拟机窗口打开后,出现CentOS启动菜单:

    • 选择“Install CentOS 7”(直接安装,不选“Test this media”可节省时间),按回车。
      image
      image
  3. 图形化安装配置

    • 语言选择:默认“简体中文(中国)”,点击“继续”;
      image

    • 安装信息摘要:重点检查“安装位置”——点击进入后,选择“本地标准磁盘”(即刚才创建的20GB虚拟硬盘),确保磁盘前显示✅,点击“完成”;
      image
      image

    • 其他选项(如“软件选择”默认“最小安装”,“网络和主机名”暂不配置),确认无误后点击“开始安装”。
      image

  4. 设置root密码:安装过程中,点击“ROOT密码”,输入密码(建议复杂度适中,记牢!),点击“完成”(若密码简单,需点击“完成”确认两次)。
    image
    image

  5. 等待安装与重启:安装进度条走完后,点击“重启”,虚拟机自动重启。
    image

2.4 登录CentOS 7系统

重启后,虚拟机显示登录界面:

  • 输入用户名root,按回车;

  • 输入刚才设置的root密码(输入时不显示字符,输完按回车);
    image

  • 若成功登录,界面显示[root@localhost ~]#,表示CentOS 7系统部署完成!
    image

三、双网卡配置:实现“外网访问+主机互通”

默认情况下,虚拟机未配置网络,无法上外网也无法与物理机通信。需配置NAT网卡(上外网)Host-Only网卡(主机与虚拟机互通) ,两步实现网络打通。

3.1 第一步:在VirtualBox创建网络环境

先在VirtualBox管理器中创建两种网络,供虚拟机使用:

3.1.1 创建Host-Only网络(主机与虚拟机互通)

  1. 关闭node1虚拟机(配置网卡需关机),回到VirtualBox管理器;

  2. 点击“工具”→“网络”,切换到“仅主机(Host-Only)网络”标签;

  3. 点击“创建”,生成新的Host-Only网络(默认名VirtualBox Host-Only Ethernet Adapter);
    image

  4. 点击“属性”,配置参数:

    • IPv4地址:默认192.168.56.1(物理机在该网络的IP);
    • 子网掩码:255.255.255.0
    • 地址范围:最小192.168.56.101,最大192.168.56.254(虚拟机IP需在该范围内);
    • 点击“应用”保存。
      image

3.1.2 创建NAT网络(虚拟机上外网)

  1. 在“网络”界面切换到“NAT网络”标签;
  2. 点击“创建”,生成新的NAT网络(默认名NatNetwork);
  3. 点击“属性”,配置参数:
    • IPv4网络:10.0.2.0/24(子网掩码255.255.255.0);
    • 启用DHCP:勾选“DHCP服务器”(虚拟机可自动获取外网IP);
    • 点击“应用”保存。
      image

3.2 第二步:为虚拟机添加双网卡

  1. 选中node1虚拟机,点击“设置-网络”;

  2. 添加NAT网卡(网卡1)

    • 勾选“启用网络连接”;
    • 连接方式:选择“网络地址转换(NAT)”;
    • 名称:选择刚才创建的NatNetwork
    • 点击“确定”暂存。
      image
  3. 添加Host-Only网卡(网卡2)

    • 点击“网卡2”标签,勾选“启用网络连接”;
    • 连接方式:选择“仅主机(Host-Only)网络”;
    • 名称:选择刚才创建的VirtualBox Host-Only Ethernet Adapter
    • 点击“确定”保存配置。
      image

3.3 第三步:配置虚拟机内网卡文件

启动node1虚拟机,用root登录([root@localhost ~]#),通过命令行配置网卡参数:

3.3.1 查看网卡名称

输入命令ip addr,查看系统识别的网卡:

  • 通常enp0s3对应NAT网卡(第一张网卡);
  • enp0s8对应Host-Only网卡(第二张网卡)(若未显示,重启虚拟机即可识别)。
    image

3.3.2 配置NAT网卡(enp0s3)

NAT网卡用DHCP自动获取IP,只需设置“开机加载”:

  1. 进入网络配置文件目录:cd /etc/sysconfig/network-scripts
  2. 编辑enp0s3配置文件:vi ifcfg-enp0s3(vi是Linux默认编辑器);
    image
  3. 进入编辑模式:按i键,找到ONBOOT=no,修改为ONBOOT=yes(作用:开机自动加载该网卡);
    image
  4. 保存退出:按ESC键,输入:wq(冒号+wq,意为“写入并退出”),按回车。

3.3.3 配置Host-Only网卡(enp0s8)

Host-Only网卡需用静态IP(便于主机固定访问),步骤如下:

  1. 复制enp0s3的配置文件,生成enp0s8的配置:cp ifcfg-enp0s3 ifcfg-enp0s8
  2. 生成新UUID(避免与enp0s3冲突):uuidgen ifcfg-enp0s8,复制输出的UUID(如6fa10f9d-1a99-47b7-8be4-a2e6e6c2c5db);
    image
  3. 编辑enp0s8配置文件:vi ifcfg-enp0s8,按i进入编辑模式,修改以下参数:
    • BOOTPROTO=dhcpBOOTPROTO=static(静态IP);
    • NAME=enp0s3NAME=enp0s8(网卡名匹配);
    • DEVICE=enp0s3DEVICE=enp0s8(设备名匹配);
    • UUID=xxx → 替换为刚才复制的新UUID;
      image
    • 在文件末尾新增3行(IP需在Host-Only地址范围内,如192.168.56.120):
      IPADDR=192.168.56.120
      NETMASK=255.255.255.0
      GATEWAY=192.168.56.1
      
  4. 保存退出:按ESC,输入:wq回车。

3.4 第四步:重启网络并测试连通性

  1. 重启网络服务:service network restart,显示[ OK ]表示重启成功;
    image
  2. 测试外网连通性: ping百度4次(避免无限ping):ping www.baidu.com -c 4
    • 若显示“4 packets transmitted, 4 received”(4个包发送,4个接收),说明NAT网卡生效,虚拟机可上外网;
      image
  3. 测试主机与虚拟机互通
    • 物理机打开终端(Windows用cmd,macOS/Linux用终端),ping虚拟机的Host-Only IP:ping 192.168.56.120
    • 若显示“来自 192.168.56.120 的回复”,说明Host-Only网卡生效,主机与虚拟机可互通。
      image

四、常见问题与注意事项

  1. 虚拟机无法识别网卡?
    重启虚拟机即可(VirtualBox添加网卡后需重启才能识别)。
  2. ping百度失败?
    检查NAT网卡是否“启用网络连接”,或ONBOOT=yes是否配置正确。
  3. 主机ping不通虚拟机?
    确认Host-Only网卡的IP在192.168.56.1-199范围内,且虚拟机防火墙未拦截(新手可临时关闭防火墙:systemctl stop firewalld)。
  4. vi编辑文件后无法保存?
    需用root用户操作(确保登录的是root,而非普通用户vboxuser)。
http://www.hskmm.com/?act=detail&tid=18048

相关文章:

  • 微信个人号api|搭建高效微信机器人系统
  • 【光照】[物理模型]中的[BRDF]是什么?
  • [fakeadmin]-(session伪造flask框架)-CTF
  • 《Linux Robust锁》
  • Manim实现气泡特效
  • 完整教程:决策树(Decision Tree)
  • C# Inno Setup
  • CF2139虚拟游记
  • 新方向 - MKT
  • 翻斗幼儿园历险记-CTF-WP
  • .net8+winform+Antdui 制作 LOL 小助手
  • 深入解析:【Git】Git 简介及基本操作
  • hutool主要内容list
  • 20250916_QQ_Powershell
  • 完整教程:HTTP安全响应头--CSP(Content-Security-Policy)
  • 原码,反码,补码
  • Experiment1
  • 读书笔记:Oracle 自动索引:让数据库自己管索引?
  • 1_2025.9.26_1
  • 故障处理:Oracle RAC集群CTSS时钟同步故障案例分析与解决
  • Linux系统提权-web/普通用户-docker逃逸提权shell交互
  • PostgreSQL技术大讲堂 - 第106讲:分区表索引优化
  • 四边形不等式优化
  • 斜率优化
  • AI智能体:从认知到实践
  • Kinect屏幕边缘检测不灵敏的解决方案
  • 暴力拓客游戏小程序:助力商家高效引流与裂变的智能解决方案
  • vue3小坑之-为什么把ref定义的数组赋值给数组对象后取值为空数组?
  • 第二类斯特林数
  • 群论