玩虚拟机,以前总是搞不清共享上网的问题,这次整理一下吧。弄清楚,以后处理问题就比较顺手了。
这里讲一下virtualbox,vmware也差不多吧。以前习惯直接上网搜,不过找到的资料零零散散,而且质量一般般,不靠谱,还是到官网找找吧
https://www.virtualbox.org/manual/ch06.html
这里简单总结一下(host物理主机,guest虚拟的客户机):
- NAT:最简单的方式,只是想上上网就用这种。原理基本上就是把虚拟机的网络连接虚拟成host的一个进程访问网络。上面的文档有介绍端口映射,想玩高级功能的可以试试。
- Bridged Adapted:物理网卡上用软件模拟出另外一块网卡给guest。好像原本一块网卡也能绑定两个ip。。
- Internal:最简单,虚拟机之间互联。跟外界隔绝。
- Host-Only:混合前面两种功能。相当与把host跟guests都连到一个虚拟路由器吧,这样大家都可以互访,而guests就不能通过host访问外网。(系统的全局设定那里网络的DHCP就是用于Host-Only的) 。
这里我在guest装了个实验用的ubuntu(怕破坏host ubuntu 的环境),打算在host用ssh登录guest,而且虚拟机希望可以上网,那我选择2Bridge Adapted。
1、我们需要在虚拟机得Ubuntu系统安装ssh服务,其安装命令为:
sudo apt-get install openssh-server
#sudo apt-get install ssh 或者这个,之前配hadoop没装openssh-server好像不行
2、修改VirtualBox虚拟机的网络连接方式,其默认为NAT连接方式,我们将其改为Bridged Adapter连接方式
3、修改虚拟机中Ubuntu的IP地址,使其与外面系统在同一网段。这里我的主机连有一个路由192.168.1.1,host自动分配ip192.168.1.X,那么我
将guest IP地址修改如下:
sudo vim /etc/network/interfaces
修改为
auto eth0
iface eth0 inet static
address 192.168.1.44
netmask 255.255.255.0
gateway 192.168.1.1
设置完之后,我在路由器上也能ping通guest的192.168.1.44.