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

VirtualBox虚拟机网卡配置

前言:

        之前用虚拟机一直使用的是桥接网卡+静态ip的配置方式,但是访问部署在虚拟机上的服务时需要使用虚拟机桥接网卡的静态ip,该静态ip依赖宿主机的网络ip,而宿主机的网络ip可能存在变化,因此花费半天设置了虚拟机的三种网卡,以此来灵活应对各种网络通信情况。

目录

1 VirtualBox配置

1.1 网卡1:NAT网络

1.1.1 概念介绍

1.1.2 设置流程

1.2 网卡2:桥接网卡

1.2.1 概念介绍

1.2.2 设置流程

1.3 网卡3:仅主机(Host-Only)网络

1.3.1 概念介绍

1.3.2 设置流程

2 虚拟机内部配置

2.1 查询网卡信息

2.2 配置ifcfg-enp0s3文件(网卡1)

2.3 配置ifcfg-enp0s8文件(网卡2)

2.4 配置ifcfg-enp0s9文件(网卡3)

2.5 重启网络配置并验证网卡配置


1 VirtualBox配置

1.1 网卡1:NAT网络

1.1.1 概念介绍

        NAT网络地址转换,是让虚拟机通过主机访问外部网络的方式。在VirtualBox中对应两种网卡:

        网络地址转换(NAT):每台虚拟机都有独立的NAT设备,虚拟机之间相互隔离,无法直接通信。

        NAT网络:多个配置NAT网络网卡的虚拟机可以共享同一个NAT设备,此时这些虚拟机组成局域网,可以相互通信。

        无论是网络地址转换(NAT),还是NAT网络,外部网络和主机都无法直接访问虚拟机,需要配置端口转发来实现。

1.1.2 设置流程

        这里使用NAT网络作为网卡1,操作如下:

        首先需要配置全局的NAT网络,依次点击“管理”=>“工具”=>“Network Manager”:

        然后点击“创建”,得到名为“NatNetwork”的网络,默认ip为10.0.2.0/24:

        接着选中对应虚拟机,点击“设置”:

        点击网络,配置网卡1为NAT网络,名称选中刚刚创建的全局NAT网络:

        点击OK即可。

1.2 网卡2:桥接网卡

1.2.1 概念介绍

        桥接网卡:虚拟机通过宿主机的网卡建立连接,即虚拟机与宿主机组成局域网,为虚拟机分配与宿主机在同一个网段下的ip(网络号相同,设备号不同)。虚拟机在该局域网中可以访问主机或位于同一个网段的其它设备。

1.2.2 设置流程

        仍然选中虚拟机,点击“设置”,配置网卡2为桥接网卡

        点击OK完成配置。

1.3 网卡3:仅主机(Host-Only)网络

1.3.1 概念介绍

        仅主机(Host-Only)网络:虚拟机和宿主机位于同一个网段,允许互相访问,但是屏蔽外部网络和其它位于同一个网段的网络设备,就好像该局域网中强制只有虚拟机和宿主机。

1.3.2 设置流程

        依次点击“管理”=>“工具”=>“Network Manager”,然后在“Host-only Networks”选项下点击“创建”,得到一个名为VirtualBox Host-Only Ethernet Adapter的网络,ip默认为192.168.56.x(如果之前创建过并删除,可能就会和我一样ip就会变):

        于此同时,宿主机也会多一个网络适配器,该网络适配器名称也是VirtualBox Host-Only Ethernet Adapter,这正是宿主机和虚拟机通过“仅主机(Host-Only)网络”方式通信的专用网络:

        然后选中虚拟机,配置网卡3为仅主机(Host-Only)网络,名称选择刚刚创建的VirtualBox Host-Only Ethernet Adapter:

        点击OK完成配置。

2 虚拟机内部配置

2.1 查询网卡信息

        启动虚拟机,输入如下名查看网卡信息:

ip addr

        确认各个网卡的名称,默认是enp0s3对应网卡1(NAT),enp0s8对应网卡2(桥接网卡),enp0s9对应网卡3(仅主机)。上图是我配置好的网卡信息,因此如果不同先不用关注。

2.2 配置ifcfg-enp0s3文件(网卡1)

        系统默认是存在ifcfg-enp0s3文件,通常在/etc/sysconfig/network-scripts目录下,输入命令打开文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

        DEVICE和NAME和网卡enp0s3一样。

        ONBOOT=yes 表示开机启动。

        NM_CONTROLLED=no表示禁用NetworkManager管理

        BOOTPROTO=dhcp表示DHCP自动获取IP。

        DEFROUTE=yes表示设为默认路由(优先通过此网卡访问外网)

2.3 配置ifcfg-enp0s8文件(网卡2)

        系统可能不存在ifcfg-enp0s8文件,需要复制ifcfg-enp0s3文件,命令如下:

cd /etc/sysconfig/network-scripts/ 
# 复制enp0s3配置文件为enp0s8 
cp ifcfg-enp0s3 ifcfg-enp0s8 

        然后编辑enp0s8文件:

        BOOTPROTO=static设置静态IP。

        NM_CONTROLLED=no表示禁用NetworkManager管理。

        修改NAME和DEVICE为网卡enp0s8。

        修改UUID,保证UUID的唯一性,仅需修改一位和enp0s3不同。

        IPADDR与宿主机同网段,比如宿主机IP为192.168.144.231,那IPADDR可以修改为192.168.144.150(主机号不同,并且确保局域网内该IP没有被占用)。

        NETMASK子网掩码255.255.255.0。

        GATEWAY与宿主机网关一致。

        DNS1=114.114.114.114配置DNS服务器(常见114.114.114.114或8.8.8.8)。

        上述宿主机的ip信息可以打开cmd,输入ipconfig查看。

2.4 配置ifcfg-enp0s9文件(网卡3)

        同理,对于ifcfg-enp0s9文件也需要通过复制创建出来:

cd /etc/sysconfig/network-scripts/ 
# 复制enp0s3配置文件为enp0s9 
cp ifcfg-enp0s3 ifcfg-enp0s9 

        编辑enp0s9文件:

        NAME和DEVICE需要修改为enp0s9。

        BOOTPROTO=static设置静态IP。

        NM_CONTROLLED=no表示禁用NetworkManager管理。

        修改UUID,保证UUID的唯一性,仅需修改一位和enp0s3、enp0s8不同。

        IPADDR与VirtualBox Host-Only Ethernet Adapter网络同网段

        NETMASK子网掩码255.255.255.0,IPPADDR和NETMASK通过上文的VirtualBox Host-Only Ethernet Adapter网络的设置来配置的

        注意:不需要配置GATEWAY网关,否则就会覆盖NAT的网关导致无法访问外网。

2.5 重启网络配置并验证网卡配置

       在虚拟机输入如下命令重启网络配置和验证网卡配置是否成功:

systemctl restart network  # 重启网络服务 
ping www.baidu.com # 测试NAT网络是否配置成功

        在宿主机输入如下评论验证桥接网卡和仅主机网卡是否配置成功:

ping 192.168.144.150 # 验证虚拟机桥接网卡是否配置成功
ping 192.168.84.250 # 验证虚拟机仅主机网卡是否配置成功

http://www.xdnf.cn/news/17709.html

相关文章:

  • LeetCode 2438.二的幂数组中查询范围内的乘积:模拟(前缀和可选)
  • Ansible 面试题 20250811
  • ansible学习第一天
  • 逐际动力开源运控 tron1-rl-isaacgym 解读与改进
  • 聊天室全栈开发-保姆级教程(Node.js+Websocket+Redis+HTML+CSS)
  • 当C#遇上Notepad++:实现GCode可视化编辑的跨界实践
  • ArkUI中的自定义组件(一)
  • 【MYSQL】MySQL中On duplicate key update
  • FlinkSql(详细讲解一)
  • Dify入门指南(2):5 分钟部署 Dify:云服务 vs 本地 Docker
  • Speech Databases of Typical Children and Children with SLI 数据集解读
  • Vue 中的 Class 与 Style 绑定详解1
  • 数据类型 string
  • MCU中的存储器映射(Memory Map)
  • 【CF】Day125——图论三题
  • 训推一体 | 暴雨X8848 G6服务器 x Intel®Gaudi® 2E AI加速卡
  • C语言变量的声明和定义有什么区别?
  • 图生视频实战:用[灵龙AI API]玩转AI生成视频 – 第2篇,从静图到大片
  • 关于linux系统编程2——IO编程
  • 【Docker实战进阶】Docker 实战命令大全
  • AI基础与实践专题:PyTorch实现线性回归
  • 【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
  • 【实用案例】录音分片上传的核心逻辑和实现案例【文章附有代码】
  • Godot ------ 平滑拖动03
  • SpringBoot 自动配置核心机制(面试高频考点)
  • Orange的运维学习日记--38.MariaDB详解与服务部署
  • JavaEE 初阶第十七期:文件 IO 的 “管道艺术”(下)
  • 《范仲淹传》读书笔记与摘要
  • 使用frp内网穿透实现远程办公
  • 基于AI量化模型的比特币周期重构:传统四年规律是否被算法因子打破?