用virtual box在win10里搭建了一个虚拟机,虚拟机安装的是linux,部署了nginx、mysql、redis、MongoDB等开发服务器,刚开始的时候,我的win10主机和虚拟机都在同一个网段,比如 主机是192.168.1.100,虚拟机是192.168.1.101,这样,我只要设置virtual box主机的网络为“桥接网络”方式,并且在Linux主机里配置网卡的网关为无线路由器的IP地址,比如:192.168.1.1,这样win10主机和linux虚拟主机就可以通讯,并且linux虚拟机也可以访问互联网,配置很简单,使用也没有问题。
可是我的电脑是笔记本,经常会在公司、家里、获取其他办公环境使用。
这时笔记本电脑主机连接的网络环境会发生变化,比如公司的IP段是:192.168.2.*,这样,如果每次切换网络环境就要将虚拟机切换到对应的网段,设置起来比较麻烦。
刚开始,我尝试了一种方式,就是将win10主机的网卡设置为手动设置IP,并且在网卡的高级设置里增加多一个和虚拟主机同一网段的IP,将虚拟机的网关设置为网卡新增的IP,这样改动后,win10主机和linux虚拟机是可以通讯的,但是,linux虚拟机却不能访问互联网,这样在开发微信相关的程序时就会有问题,因为,虚拟主机和微信服务器必须要通讯才可以进行开发调试。
最后,只能更改为下面的方案,亲测可用,使用也方便,操作步骤如下:
1 给win10主机增加一个虚拟网卡:
1)打开win10的设备管理器,定位到网络适配器,然后从操作菜单里点击“添加过时硬件”

2)选择“安装我手动从列表选择的硬件”

3)选择安装的硬件是“网络适配器”,并且在下一步里,选择安装的是Microsoft公司的“Microsoft KM-TEST环回适配器”

4)继续下一步完成安装后,进入网络连接配置功能里,就会多了一个虚拟网卡了

5)对该虚拟网卡的属性进行设置,记得不用设置网关,也不用设置DNS,如下图:

6)在真正的网卡上设置网络共享,记得共享上网的网卡需要选择刚刚新增的虚拟网卡,如下图:

7)进入virtual box主机里设置虚拟主机的网络为“桥接网络”,并且指定的网卡是刚刚新增的虚拟网卡,如下图:

8)启动虚拟主机,给虚拟主机的网卡配置一个跟虚拟网卡处于同一网段的IP,并且将网关指定为虚拟网卡设置的IP地址:

9)systemctl restart netwrok 重启网络,然后win10主机和linux虚拟主机就可以通讯了,同时linux虚拟主机也可以访问互联网了

我还尝试过用virtual box自带的VirtualBox Host-Only Ethernet Adapter进行连接,如果通过VirtualBox Host-Only Ethernet Adapter我测试过时不能桥接的,只能在virtual box主机网络配置中选择为“host-only”方式,其他的配置方式基本相同,不过个人觉得用上面的方式更简单直接一点。
