virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

    最近需要做一点东西,需要用到服务器,但是云服务器每个月花销不少,所以只有在本地装虚拟机。但是装好之后发现要么不能访问外网,要么不能访问宿主机,或者宿主机访问不了虚拟机。在经过一段时间摸索之后特地写一篇文章记录一下。

我这里用的是VirtualBox和centos7-minimal.iso,因为这两个都相对要轻量一点,centos7普通版4个多G,mini的只有800M左右。

    安装虚拟机的步骤我就不多说了,直接安装提示安装就ok了。

一、配置上网

    由于我用的是mini的版本,在初始状态下是不能上网的。

virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

    所以我们首先要配置上网

#进入配置目录
cd /etc/sysconfig/network-scripts
#文件列表
ls
#编辑配置
vi ifcfg-enp0s3
#把ONBOOT=no改为ONBOOT=YES
#保存并退出wq

重新加载网络配置

service network restart

重新ping www.baidu.com应该就没有问题了,这说明我们虚拟机能够访问外网了。

二、虚拟机和宿主机互通

如果这时候ping我们的宿主机(windows),会发现虚拟机能够ping通宿主机,但是宿主机不能ping通虚拟机,也就意味着我们不能访问到虚拟机,不能使用Xsell等工具连接,所以我们还需要让他们互通。

首先将虚拟机关掉

shutdown now

打开virtualbox的设置界面

virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

网卡1位网络地址转换,我们再选中网卡二设置网络连接为仅主机

virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

      这时我们保存,再重启虚拟机输入ip addr查看之后会发现多了一个叫enp0s8的网卡

virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

     但是此时还是不能互通,我们需要设置一个静态ip,我直接上传我的配置文件

virtualbox安装centos7实现和宿主机相互访问同时也能访问外网

    箭头指出来的地方表示要改的,NAME和DEVICE改为enp0s8,UUID需要自己生成,在linux下使用命令uuidgen就可以了,然后再手打或者复制过来....(手打也还好),后面的红色框需要根据不同的网段来写,可以查看自己virtualbox的虚拟网卡网段,不过默认好像都是192.168.56.XX,所以你可以直接拷贝复用。

  这个时候我们在重新加载网络配置

service network restart

使用ip addr查看enp0s8的ip地址可以看到为192.168.56.106,那么这个时候我们再使用宿主机ping虚拟机就能够直接成功了,然后虚拟机ping宿主机也是OK的,当然上外网肯定也是没有问题的啦。

三、总结

    其实这个问题已经困惑我很久了,但是一直没有找到解决办法,终于在有一天下决心一定要搞定这个问题,最后在查了不少资料的情况下摸索找到了这个方法,应该是比较方便的方法了吧,如果实在还是不会,可以来我的网站plaza4me.com找我,我亲自教你。