分享我的VirtualBox网络设置

使用Mac作为开发机的程序员可能会遇到这样一个使用场景:通过免费的VirtualBox安装一个Linux Server。有可能运行一个web程序,不仅需要通过宿主机(Host)预览/调试,还需要在手机真机上查看效果。 此时web程序就不仅要能够被宿主机访问到,还需要被宿主机所在网络中的其它设备访问到。而且还需要通过ssh登陆到虚拟机中进行管理。 如果使用的是笔记本电脑,有移动办公的需求,例如经常需要在公司和家中开发。而公司和家中的网络设置是不同的,又不想每次切换工作环境后再登陆虚拟机都要使用不同的IP配置,有没有什么办法呢? 答案当然是肯定的,分享我的做法:

步骤一: 通过桥接的方式让虚拟机接入宿主机所在的网络

步骤二: 建立一个只关联宿主机和虚拟机的虚拟网络用于在宿主机中ssh访问虚拟机,这个网络可以保证稳定。

步骤三: 为虚拟机分配新建的Host-only adapter

步骤四:分别在宿主机和虚拟机中通过*ifconfig -a*命令查看网络配置,我的示例如下

步骤五: 通过storm来管理ssh秘钥,新建一个名称为vm0的配置,这样以后无论处于什么网络环境都可以直接使用ssh vm0登陆到虚拟机中。

通过如上操作更清晰的划分了不同网络适配器的作用,一劳永逸的解决了ssh登陆虚拟机的IP问题。但是在其它设备中访问时IP还是会变化,我的解决办法是在代码中使用域名,通过修改本机的hosts文件来映射不同的IP,开发机同时还作为移动设备的代理服务器(共享hosts配置)。更进一步的做法可以搭建内网的DNS服务器来处理,这个话题可以新开一篇文章介绍如何搭建DNS服务器。