先说说VirualBox的几种网络模式
Bridged networking 桥接模式
可以满足虚拟机中的所有网络需求,通过使用host主机的网卡,直接连到host网络,此时的虚拟机就和真正的机器一样.虚拟机可以访问外网,可以访问host主机.host主机也可以访问虚拟机.
机器 | IP |
---|---|
host主机 | 192.168.1.2 |
虚拟机1 | 192.168.1.2 |
虚拟机2 | 192.168.1.3 |
虚拟机3 | 192.168.1.4 |
Network Address Translation (NAT) 网络地址转发
机器 | IP |
---|---|
host主机 | 192.168.1.2 |
虚拟机1 | 10.0.2.15 |
虚拟机2 | 10.0.2.15 |
虚拟机3 | 10.0.2.15 |
这个一般是VirtualBox的默认网络模式,特点是可以直接访问外网,但是不能访问host主机,host主机当然也不能访问到虚拟机了.这是一个由VirtualBox分配的私有网络,如果需要它的一些端口对外部可见,我们可以添加一些转发规则.
Host-only networking 仅主机
看名字就知道了,这个网络模式只有host主机可以访问虚拟机,虚拟机可以访问host主机,但是虚拟机是不可以访问外网的.
NAT模式和仅主机模式,我们都可以在VirtualBox的全局设定中去添加并且设置一些我们需要的参数,比如设置仅主机的IP,这样我们可以直接这个网关下的IP访问到我们的虚拟机
机器 | IP |
---|---|
host主机 | 192.168.1.2 |
虚拟机1 | 192.168.10.2 |
虚拟机2 | 192.168.10.3 |
虚拟机3 | 192.168.10.4 |
Internal networking 内部网络
顾名思义,就是虚拟机内部之间通讯的网络,不能访问host,也不能访问外网
机器 | IP |
---|---|
host主机 | 192.168.1.2 |
虚拟机1 | 123.124.125.12 |
虚拟机2 | 123.124.125.13 |
虚拟机3 | 123.124.125.14 |
我们常用的大概也就这些,现在我们来说说具体在ubuntu中如何设置
ubuntu14.04中的网络设置
桥接
这是最简单的一种方式,直接使你的ubuntu虚拟机和你的host主机是在同一个路由里面的,虚拟机可以访问外网和host主机.
不过这种方式有一个前提,是你得有路由器...
如果是我们使用的无线网,或者我们没有任何路由器,只是在本机无网络的情况下开发呢?我们就需要使用仅主机模式了
NAT网络转发 + 仅主机
个人认为这是最理想的一种方式了,首先在我们安装ubuntu的时候,VirtualBox就默认给我们安装了一个NAT网络转发的网卡,这个就让虚拟机可以访问外网了,但是不能访问host主机,host主机也不能访问到虚拟机.所以我们需要再添加一块网卡,设置一个仅主机的网络模式,这样双网卡,就实现了我们想要的效果了.
我们首先要在VirtualBox全局设置里面添加一个仅主机的网络,并设置一下网关
然后在设置ubuntu虚拟机,增加一块网卡
在ubuntu中配置新添加的网卡
sudo vim /etc/network/interfaces
修改这个文件成下面这样的
我试了重启网卡没有效果,就直接重启ubuntu系统了
sudo reboot
host主机连接ubuntu,IP就是我们刚才新添加的那个网卡的IP
ssh [email protected]
ubuntu16.04的网络配置
ubuntu16.04采用了另一种网卡的命名方式,在配置第二个网卡的时候,前面的操作都一样,就是在配置文件中配置静态IP的时候有些不同
首先,使用命令,查看新添加的网卡的名字:
ifconfig -a
结果如下:
可以看到,我们在ifconfig
的时候只有enp0s3
和lo
两个网卡,但是通过ifconfig -a
命令的时候,就多出来一个网卡enp0s8
这个多出来的网卡就是我们在虚拟机硬件配置里新添加的那个仅主机的网卡,所以我们需要把这个网卡添加的网卡的配置文件中:
vim /etc/network/interfaces
修改如下: