VirtualBox 虚拟机双向网络互通
我们的目标有三个
- 虚拟机访问互联网
- 虚拟机访问宿主机
- 宿主机访问虚拟机
使用环境:
- 宿主机 macOS 15
- 软件 VirtualBox 7.1.4
- 虚拟机 Ubuntu Server 24.04
方式一:桥接网卡
桥接网卡可以把虚拟机加入到主机所在的网络,从主机所在网络的申请到IP地址。
优点:配置方便,不需要额外配置。
缺点:IP一般是动态DHCP申请的,主机和虚拟机的IP都容易发生变化。如果网络不经常变化,使用静态IP,问题不大。
方式二:NAT + HostOnly
NAT 可以实现虚拟机访问互联网,HostOnly 可以实现宿主机和虚拟机之间的网络互通
配置稍微麻烦一点,步骤如下:
一、先关闭虚拟机
二、先在VirtualBox Tools中创建 Host-only 的网络,1️⃣ 2️⃣ 3️⃣ 步骤完成默认完成即可,IP地址可以保持默认,或者修改成自己喜欢的

添加图片注释,不超过 140 字(可选)
三、点击虚拟机的配置 Settings

添加图片注释,不超过 140 字(可选)
四、左侧选择 Network,第一个网卡默认就是 NAT,其他配置保持默认

添加图片注释,不超过 140 字(可选)
五、配置第二个网卡,2️⃣勾选Enable Network Adapter,3️⃣选择Host-only Network,4️⃣ 选择上面创建的 HostNetwork

1️⃣选择第二个网卡,2️⃣勾选Enable Network Adapter,3️⃣选择Host-only Network,4️⃣ 选择上面创建的 HostNetwork
六、开启虚拟机,登录主机,输入 ip a 命令,可以查看到多了一块网卡 enp0s9,目前是关闭的状态

添加图片注释,不超过 140 字(可选)
七、编辑网络配置文件 /etc/netplan/50-cloud-init.yaml,默认是下面这样的,网卡名字可能不同
network:
ethernets:
enp0s8:
dhcp4: true
version: 2
增加对新网卡的配置,这里不开启DHCP,固定IP地址。保存文件。
network:
ethernets:
enp0s8:
dhcp4: true
enp0s9:
dhcp4: false
addresses:
- 192.168.56.88/24
version: 2
八、然后执行下面两条命令,使网络配置生效:
$ sudo netplan generate
$ sudo netplan apply
再次查看网络配置,第三块网卡enp0s9已经启动了

添加图片注释,不超过 140 字(可选)
此时ping一下主机IP,网络也是连通的
$ ping 192.168.56.1
PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
64 bytes from 192.168.56.1: icmp_seq=1 ttl=64 time=0.258 ms
64 bytes from 192.168.56.1: icmp_seq=2 ttl=64 time=0.441 ms
^C
--- 192.168.56.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1026ms
rtt min/avg/max/mdev = 0.258/0.349/0.441/0.091 ms
在主机上ping虚拟机的IP,也是OK的
$ ping 192.168.56.88
PING 192.168.56.88 (192.168.56.88): 56 data bytes
64 bytes from 192.168.56.88: icmp_seq=0 ttl=64 time=0.872 ms
64 bytes from 192.168.56.88: icmp_seq=1 ttl=64 time=0.955 ms
^C
--- 192.168.56.88 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.872/0.913/0.955/0.041 ms
然后就可以在主机上,使用SSH上登录虚拟机了。
这样的好处是双方的IP地址都是固定的,不会随意的发生变化,也不会影响到外部网络。