简介:
Virtual Box提供了多种网络模式,如图所示:
但是我们常用的一般就三种,可以通过以下表格来了解三者区别:
|
虚拟机->主机 |
主机->虚拟机 |
虚拟机->其他主机(网络中) |
Bridged(桥接模式) |
Y |
Y |
Y |
NAT(网络地址转换模式) |
Y |
N |
Y |
Host-Only(仅主机模式) |
默认不能需配置 |
默认不能需配置 |
默认不能需配置 |
桥接模式(Bridged)
简介:
桥接模式就是将主机的网卡,与虚拟机虚拟的网卡利用虚拟网桥进行通信。类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。可以简单理解为该模式下,虚拟机与主机属于同一局域网,是同一级的,所以该模式需要手动配置ip地址等信息,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。
配置:
1. 设置网卡
将Virtual Box中虚拟机的网络模式选择为桥接网卡
2. 手动配置ip地址等信息
启动虚拟机,打开终端,输入 ifconfig 命令,可以看到因为启用了网卡1,虚拟机为我们分配了一块虚拟网卡enp0s3,但此时下面没有ip地址等信息;
输入命令编辑 vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
文件并保存,编辑内容如下:
其中ip地址和默认网关每台电脑各不相同,需要与主机保持一致,如果不清楚主机的ip地址等信息,可以按win+r键,输入cmd,进入命令行模式,输入命令 ipconfig 命令查看信息。
注: 如果是WiFi以无线局域网适配器为准;如果是网线,以以太网适配器下的信息为准。
3. 重启网络服务并测试
输入命令 systemctl restart network.service 重启网络服务,然后测试:
可以看到无论是ping主机还是外网,均能ping通。
4. 能ping通外网但无法ping通主机
如果存在该情况,那就是主机的防火墙拦截导致的,所以解决办法有两个,一个就是直接关闭防火墙,简单粗暴;这里详细说下第二个解决办法:
打开Windows安全中心,选择防火墙和网络保护——>高级设置图片:
点击入站规则,右键点击图中圈出的两个规则,选择启用规则,就好了。
NAT(网络地址转换模式)
简介:
该模式是最简单的实现虚拟机上网的方式,NAT模式就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网,此时虚拟机并不真实存在于网络中,网络中各主机均无法访问虚拟机(包括主机)。
配置:
输入命令vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
将其中ONBOOT参数改为yes:
重启网络服务之后进行测试,可以ping通主机与互联网,但是主机无法ping通虚拟机
Host-Only(仅主机模式)
如名字所言,仅和主机连接,该模式下虚拟机之间,虚拟机与主机之间可以互相通信,但是虚拟系统与真实网络系统是隔离的。
总结
这三种模式各有特色,同时虚拟机可以组合使用这三种模式,比如NAT模式和Host-Only模式组合使用就可以达到桥接模式的效果,通过组合使用,可以满足不同场景下的使用需求。另外,在以上配置中多次出现了enp0s3文件,这里面的几个比较重要的参数含义如下:
- DEVICE:描述网卡对应的设备别名
- BOOTPROTO:设置网卡获得IP地址的方式,该参数有三个值:
- static:静态指定ip地址
- dhcp:通过dhcp协议获得ip地址
- bootp:通过bootp协议获得ip地址
- ONBOOT:系统启动时是否激活