主机:Win10
虚拟机:Ubuntu 20.04
虚拟机:VirtualBox 6.1
模式 | 虚拟机→主机 | 主机→虚拟机 | 虚拟机↔虚拟机 | 虚拟机→Net/LAN | Net/LAN→虚拟机 |
---|---|---|---|---|---|
NAT | √ | 端口转发 | × | √ | 端口转发 |
NATservice | √ | 端口转发 | √ | √ | 端口转发 |
Host-Only | √ | √ | √ | × | × |
Internal | × | × | √ | × | × |
Bridged | √ | √ | √ | √ | √ |
用于一些高级网络需求,例如网络模拟和用户机中运行的服务器。启用后,Oracle VM VirtualBox
将连接到主机安装的网卡之一并直接交换网络数据包,从而绕过主机操作系统的网络堆栈。 像是真实存在于主机网路中的一台主机,主机能上网才能上网。
ip与本机处于同一网段,因为网关和主机一样。
是默认模式,装好系统什么都不用改就可以直接联网。 通过构造一个虚拟网卡,连接虚拟机的交换机以及NAT设备等,虚拟机发出和收到的请求经由NAT
Engine处理实现网络访问。 外部不可见,即外部ping不了虚拟机,其他虚拟机也ping不了。
ip地址通常为10.0.2.xx,因为默认虚拟网卡连接到10.0.2.0。
一种允许出站连接的内部网络。 好像……不太有用,不多介绍。
在主机上虚拟一个专供虚拟机使用的host-only网卡,然后把虚拟主机桥接到上面,通过设置这个host-only网卡实现网络连接。
可以在Windows网络适配器里看到一个VirtualBox Host-Only Network网卡,利用这个网卡进行通信。
所有虚拟机都连在这个网卡下,所以相互之间可以访问,当然也属于同一网段。 要访问主机或者上网需要一些额外设置,操作相对复杂一点。
ip地址通常为192.168.56.x,因为VirtualBox Host-Only
Network网卡ip为192.168.56.1(网关)。
用于创建不同类型的基于软件的网络,该网络对选定的虚拟机可见,但对主机上运行的应用程序或外部世界不可见。
用得也不多,不多介绍。
共享相同通用网络接口的模式,允许用户选择可包含在 Oracle VM VirtualBox 中或分发到扩展包中的驱动程序。
官方认证很少使用(rarely used mode)。
第一步:设置win10电脑网卡
第二步:设置virtualbox 网络
第三步:配置ubuntu20.04的静态ip地址
第一步:设置win10电脑网卡
Win+X打开设备管理器;
操作→添加过时硬件;
安装我手动从列表选择的硬件→网络适配器→厂商:Microsoft;型号:KM-TEST环回适配器;
创建完成,打开网络适配器就可以看到;
右键打开连接了WIFI的那个网卡WLAN的属性,在共享选项卡里设置允许其他网络用户通过此计算机的Internet来连接,下面选择新建的那个网卡。
第二步:设置virtualbox 网络
第三步:配置ubuntu20.04的静态ip地址
修改网络配置文件:sudo vim /etc/netplan/01-network-manager-all.yaml
,内容改为如下
# Let NetworkManager manage all devices on this system
network:ethernets:enp0s3: #网卡名称dhcp4: noaddresses: [192.168.137.30/24] #静态IP及掩码optional: truegateway4: 192.168.137.1 #网关version: 2 renderer: NetworkManager
然后重启网络服务:sudo netplan apply
检查静态ip是否生效: ifconfig
再在window和其它虚拟机里检查是否可以互通
所有配置均成功了,这样你在虚拟机里启动的服务,其它虚拟机也可以正常访问了。比如:在30虚拟机里启动了一个flask server,在20机器里就可以正常访问了