VirtualBox网路配置

TMaize 于 2022-05-15 发布

一直以来,VirtualBox 的网络配置的都是 NAT 和 Host-only。平时使用起来没有多大问题,NAT 用来访问外网, Host-only 用来分配一个 IP 用于在宿主机访问虚拟机内容。在模拟搭建集群的时候需要做到虚拟机-虚拟机互通和虚拟机-宿主机互通,这种情况只能使用桥接网络了。在配置的过程中遇到了一些小问题,这里做下记录

网络通信

Introduction to Networking Modes

network

端口转发

一般用于 NAT 模式,把部分端口暴露在宿主机上

port-forward

Host-only

建立一个虚拟网卡(自带 DHCP),为每个使用的虚拟机分配一个 IP,在主机上可以访问到每个 IP,但是虚拟机却无法访问到主机

比如下图,在主机和虚拟机分配到的 IP 如下

以太网适配器 VirtualBox Host-Only Network:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::f45c:5285:c488:8621%35
   IPv4 地址 . . . . . . . . . . . . : 192.168.250.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . :
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.250.3  netmask 255.255.255.0  broadcast 192.168.250.255
        inet6 fe80::2fe3:e376:c398:49cb  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:51:ef:d6  txqueuelen 1000  (Ethernet)
        RX packets 1  bytes 590 (590.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15  bytes 1454 (1.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

host-only-1

host-only-2

host-only-3

Bridged

桥接模式,这种模式网络功能支持的最好。可以桥接到真实的网卡,但是没网的话就不行了,所以推荐在本地创建一个虚拟网卡

virtual-net

config-net

以太网适配器 VBOX Bridge:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::7005:787e:d1b8:7495%2
   IPv4 地址 . . . . . . . . . . . . : 192.168.88.1
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 0.0.0.0

bridge-1

在桥接模式下,桥接到真实网卡时(比如 WIFI 网卡),由于路由器自带 DHCP,虚拟机可以分配到 IP 地址。桥接到虚拟网卡时,由于没有 DHCP 服务器,虚拟机会分配不到到 IP 地址

注意

如果在桥接模式下,虚拟机内无法访问到主机,可以检查下主机的防火墙配置。如果关掉防火墙可以访问,那么说明是被入站规则拦截了,加一条规则就行了。

需要注意的是规则有匹配顺序,如果配置规则后仍无法访问,可能是被另一条规则给拦住了

firewall