Virtrualbox下通过Host-Only模式访问Linux虚拟机
一般情况下,VB中的虚拟机是直接通过NAT的形式进行上网,但通过NAT模式,我们是难以直接连接虚拟机。NAT模式下,要实现主机访问虚拟机,需要设置端口转发,将虚拟机的端口转发到主机本地端口。但端口转发的方式比较麻烦,每新增一个端口服务就要设置一次转发规则,维护成本较高。另一种比较简单的方式,就是直接为虚拟机新增一张Host-Only网卡,通过该网卡主机与虚拟机便可进行直接通信。
运行环境
名称 | 版本 |
---|---|
主机 | Windows 10 |
虚拟机 | Debian 10 Buster |
VirtualBox | 6.1 |
VirtualBox网卡配置
在虚拟机设置界面,选择网络,添加第二张网卡,选择Host-Only连接方式。
虚拟机网卡配置
进入虚拟机,输入ip a查看当前网卡名称,目前虚拟机里面有两张网卡enp0s3和enp0s8,其中enp0s3是通过NAT模式上网的网卡1,enp0s8是通过Host-Only模式上网的网卡2。默认情况下,enp0s8是没有IP,网关以及子网掩码等信息。
为了方便通过enp0s8
连接虚拟机,将其设置为固定IP。编辑网络配置文件/etc/network/interfaces
,添加enp0s8
的配置信息。不需要为enp0s8
添加网关,添加后可能无法通过NAT上网!默认网关只能有一个!
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet dhcp
# Host-Only network
allow-hotplug enp0s8
iface enp0s8 inet static
address 192.168.56.5
netmask 255.255.255.0
编辑保存后,重启networking服务
systemctl restart networking.service
查看IP信息(可能需要等待一会儿才能看见信息),如果enp0s8
没有激活,请使用ifup enp0s8
命令,手动激活。
注:由于VirtualBox Host-Only网卡的默认DHCP范围56.100~56.255,为了避免冲突,将静态IP设置为100以下(192.168.56.5)。
访问虚拟机
在主机命令行中,执行ping命令,可以看到主机到虚拟机网络已打通。
通过SSH登录虚拟机