VirtualBox图形界面下有四种网络接入方式,它们分别是:
1、NAT 网络地址转换模式(NAT,Network Address Translation)2、Bridged Adapter 桥接模式
3、Internal 内部网络模式
4、Host-only Adapter 主机模式
而在CommandLine下则有八种方式,除上面列出的四种外还有下列四种:
1.UDP Tunnel networking
2.VDE networking
3.Limiting bandwidth for network I/O
4.Improving network performance
VirturalBox为每个虚拟机提供八种虚拟的PCI 网卡,对于每一种虚拟网卡,你可以从下列六种网络硬件中任选一种:
- AMD PCNet PCI II (Am79C970A)
- AMD PCNet FAST III (Am79C973, the default)
- Intel PRO/1000 MT Desktop (82540EM)(Windows Vista and later versions)
- Intel PRO/1000 T Server (82543GC)(Windows XP)
- Intel PRO/1000 MT Server (82545EM)(OVF imports from other platforms)
- Paravirtualized network adapter (virtio-net)
特点:
1. NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。
虚拟机与主机关系: 只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
虚拟机与网络中其他主机的关系: 只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机之间的关系: 相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
IP:10.0.2.15
网关:10.0.2.2
DNS:10.0.2.3
2. Bridged Adapter模式它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
虚拟机与主机关系: 可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于网络中其他主机关系: 以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于虚拟机关系: 可以相互访问,原因同上。
特点:独占网络中的一个ip
注意如果主机是直接用拨号上网的,不是通过路由,那么此方式不可用。
3. Internal模式顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
虚拟机与主机关系: 不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机与网络中其他主机关系: 不能相互访问,理由同上。
虚拟机与虚拟机关系: 可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。
4. Host-only Adapter模式
主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
虚拟机与主机关系 :默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
虚拟机与网络主机关系 :默认不能相互访问,原因同上,通过设置,可以实现相互访问。
虚拟机与虚拟机关系 :默认可以相互访问,都是同处于一个网段。
虚拟机访问主机 用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1 ,不管主机“本地连接”有无红叉,永远通。
主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101 ,不管主机“本地连接”有无红叉,永远通。
虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)
==================================
以下配置centos虚拟机里面能上外网,而主机与centos虚拟机也能连通。
最好的办法就是使用两块网卡,nat(虚拟机访问互联网,使用10.0.2.x段)和host-only(虚拟机和主机互相通信,使用192.168.56.x段),而virtualbox配置的网络的地方是:打开主机界,按Ctrl+G,然后network,就可以启用vboxnet0了。
打开虚拟机的配置,在networking里面添加第二块网卡为host-only。
接下来在virtualbox中安装centos。
ping baidu,不通,需要在/etc/sysconfig/network-scripts/ifcfg-eth0中将ONBOOT="no"改为yes,再添加BOOTPROTO="dhcp",保存,退出,重启。再ping 百度,通了。此时可以用命令route看一下,记录一下路由,如果后面出现不能上网,再用route看一下什么异常
再ping主机上的虚拟网卡192.168.56.1,发现也没有问题,是通的,但是主机访问不了虚拟机,这就头痛了,这个时候就要用到我们的第二块网卡host-only来完成主机对虚拟机的访问。操作如下:
在/etc/sysconfig/network-scripts/下面看有没有ifcfg-eth1文件,如果没有,将ifcfg-eth0复制一份,改名为ifcfg-eth1,然后将ONBOOT值改为yes,这里我设置成静态IP,配置如下:
BOOTPROTO=static #获取IP的方式是dhcp或bootp自动获取,static是固定IP,none是手动
IPADDR=192.168.56.2
NETMASK=255.255.255.0
注意不能设置GATEWAY,原因:
linux双网卡默认路由问题
在安装第二块网卡后出现无法上网问题,使用route发现是默认路由出现问题,经过多 发查证,才晓得原来linux在加载网卡配置文件的时候是先加载eth0,再加载eht1的,这样,如果eth1设置了gateway项,则会覆盖掉 eth0中的gateway设置,因此解决方法就是删除eth1的gateway设置
========================
我使用的是第二种方式,Bridged Adapter桥接模式
修改centos7的网卡IP地址与主机是同一网段
- $>cd /etc/sysconfig/network-scripts
- $>vi ifcfg-enp0s3
BOOTPROTO=NONE
IPADDR0=192.168.1.10 与主机一个网段
PREFIX0=24
:wq 保存退出
重启网络
- $>service network restart