virtualBox虚拟机之间网络互通设置

环境

主机:Win10
虚拟机:Ubuntu 20.04
虚拟机:VirtualBox 6.1

模式虚拟机→主机主机→虚拟机虚拟机↔虚拟机虚拟机→Net/LANNet/LAN→虚拟机
NAT端口转发×端口转发
NATservice端口转发端口转发
Host-Only××
Internal××××
Bridged

【推荐】桥接网卡(Bridged)

用于一些高级网络需求,例如网络模拟和用户机中运行的服务器。启用后,Oracle VM VirtualBox
将连接到主机安装的网卡之一并直接交换网络数据包,从而绕过主机操作系统的网络堆栈。 像是真实存在于主机网路中的一台主机,主机能上网才能上网。
ip与本机处于同一网段,因为网关和主机一样。

【默认的网络设置】网络地址转换(NAT)

是默认模式,装好系统什么都不用改就可以直接联网。 通过构造一个虚拟网卡,连接虚拟机的交换机以及NAT设备等,虚拟机发出和收到的请求经由NAT
Engine处理实现网络访问。 外部不可见,即外部ping不了虚拟机,其他虚拟机也ping不了。
ip地址通常为10.0.2.xx,因为默认虚拟网卡连接到10.0.2.0。

【了解】NAT网络

一种允许出站连接的内部网络。 好像……不太有用,不多介绍。

【了解】仅主机(Host-Only)网络

在主机上虚拟一个专供虚拟机使用的host-only网卡,然后把虚拟主机桥接到上面,通过设置这个host-only网卡实现网络连接。
可以在Windows网络适配器里看到一个VirtualBox Host-Only Network网卡,利用这个网卡进行通信。
所有虚拟机都连在这个网卡下,所以相互之间可以访问,当然也属于同一网段。 要访问主机或者上网需要一些额外设置,操作相对复杂一点。
ip地址通常为192.168.56.x,因为VirtualBox Host-Only
Network网卡ip为192.168.56.1(网关)。

【了解】内部(Internal)网络

用于创建不同类型的基于软件的网络,该网络对选定的虚拟机可见,但对主机上运行的应用程序或外部世界不可见。
用得也不多,不多介绍。

【了解】通用驱动(Generic networking)

共享相同通用网络接口的模式,允许用户选择可包含在 Oracle VM VirtualBox 中或分发到扩展包中的驱动程序。
官方认证很少使用(rarely used mode)。

【掌握】桥接方式配置网络

第一步:设置win10电脑网卡
第二步:设置virtualbox 网络
第三步:配置ubuntu20.04的静态ip地址

  • 第一步:设置win10电脑网卡

    • Win+X打开设备管理器;

    • 操作→添加过时硬件;

    • 安装我手动从列表选择的硬件→网络适配器→厂商:Microsoft;型号:KM-TEST环回适配器;

    • 创建完成,打开网络适配器就可以看到;
      在这里插入图片描述

    • 右键打开连接了WIFI的那个网卡WLAN的属性,在共享选项卡里设置允许其他网络用户通过此计算机的Internet来连接,下面选择新建的那个网卡。
      在这里插入图片描述

  • 第二步:设置virtualbox 网络

    • 打开virtualBox对应的系统,设置-> 网络-> 网卡1-> 连接方式:桥接网卡 -> 界面名称:新建的那个网卡
      在这里插入图片描述
  • 第三步:配置ubuntu20.04的静态ip地址

    • 修改网络配置文件:sudo vim /etc/netplan/01-network-manager-all.yaml,内容改为如下

      # Let NetworkManager manage all devices on this system
      network:
          ethernets:
              enp0s3:                                              #网卡名称
                  dhcp4: no
                  addresses: [192.168.137.30/24]                    #静态IP及掩码
                  optional: true
                  gateway4: 192.168.137.1                          #网关
          version: 2                                                                                                                                                                                             
          renderer: NetworkManager
      

      原文件内容如下【仅备份使用】:

      # Let NetworkManager manage all devices on this system
      network:
        version: 2
        renderer: NetworkManager
      
  • 然后重启网络服务:sudo netplan apply

    • 检查静态ip是否生效: ifconfig
      在这里插入图片描述
    • 再在window和其它虚拟机里检查是否可以互通
      在这里插入图片描述
      在这里插入图片描述
      所有配置均成功了,这样你在虚拟机里启动的服务,其它虚拟机也可以正常访问了。比如:在30虚拟机里启动了一个flask server,在20机器里就可以正常访问了
      在这里插入图片描述
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木瓜~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值