相互通信指的是:主机(host)和虚拟主机(Vhost)能相互访问,宿主机及同一个局域网中的其他计算机能够访问到虚拟机,虚拟机也能访问到网络中的其它机器(当然包括宿主机)。在我们接触的应用中,最常见的应该是互传文件了(比如:校内ftp),几秒钟一部电影还是十分令人赏心悦目。虚拟机访问外网的意思是虚拟机可以像一台真实主机一样访问Internet。为实现这两个目的,我们需要在已经安装好的linux Vhost上完成一些配置。

虚拟机及linux版本:
--VMware workstation 11,
--Linux distribution: CentOS 7.1

首先了解下虚拟机接入网络常见的三种方式:(1)桥接模式( Bridged Adapter)  (2)NAT模式 (Network Address Translation)   (3)仅主机模式( Host-only Adapter)
1.Bridged Adapter模式它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中的独立IP,所有网络功能完全和在网络中的真实机器一样。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时也可以手工配置它的IP,DNS服务器,网关等信息,以实现通过局域网的网关或通过交换机访问外网(不过我们一般都是选择更加直接的方式NAT来访问外网,不需要较复杂的配置)。
虚拟机与主机关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机与网络中其他主机关系:可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机与虚拟机关系: 可以相互访问,原因同上。
特点:独占网络中的一个ip,所以需要为Vhost设置一个独立的静态IP,但值得注意的是:如果主机是直接用拨号上网的,不是通过路由,那么此方式不可用,这就包括了在上一篇文章中吐槽过的锐捷客户端校园网,貌似好多学校都是用这个,默默地躲在宿舍角哭(po)泣(gai)一分钟...
 
2.NAT模式是最简单的实现虚拟机上网的方式, 在vmware里默认为VMnet8虚拟交换机,它将虚拟系统的IP地址转换成宿主机的IP地址,从而借用宿主机访问其他主机及外网。可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。
虚拟机与主机关系: 只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。因为虚拟机并没有属于自己的独立IP,就好比你去其它的学校找童鞋玩,你可以借你同学的学号用到该学校的资源,但是你并没有在这间学校注册学号,那么该学校的个体就不知道你的存在了。
虚拟机与网络中其他主机的关系: 只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机之间的关系: 相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
3.主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面两种模式下所实现的功能,在这种模式下,都可以通过设置虚拟机及网卡被实现。我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。在host-only模式中,虚拟系统无法上网,但所有(Vmware创建的多个Vhost)的虚拟系统是可以相互通信的。
虚拟机与主机关系 :默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
虚拟机与网络主机关系 :默认不能相互访问,原因同上,通过设置,可以实现相互访问。
虚拟机与虚拟机关系 :默认可以相互访问,都是同处于一个网段。 
下面我们就linux centos7如何实现宿主机与虚拟机之间的相互通信及虚拟机访问外网来进行相应的配置:
  • 关闭防火墙
首先得先关掉linux CentOS 7.1系统的防火墙,安装完之后是默认开启的。在之前的版本中,关闭防火墙等服务的命令是“service iptables stop” ,从RHEL7开始,使用systemctl工具来管理服务程序,包括了service和chkconfig。执行关闭防火墙和开机时禁用防火墙命令,这样以后防火墙都是关闭状态了,待到“猴年马月”,我们再来打开防火墙,哈哈,这个梦想还是可以实现的~关闭之后应该是下面这个状态。
  1. "# systemctl status firewalld.service"       --查看防火墙状态
  2. "# systemctl stop firewalld.service"         --关闭防火墙
  3. "# systemctl disable firewalld.service"    --开机时禁用防火墙
  4. "# systemctl restart firewalld.service"      --重启防火墙服务
  • 宿主机与虚拟机之间通信(桥接模式)
在虚拟机的开启页面,选择桥接模式( Bridged Adapter),从上面我们可以知道桥接模式下,默认的网卡为 VMnet0,不用我们设置。终端键入“su”,输入管理账户密码进入root用户。
  1. 进入网卡配置文件目录  “cd /etc/sysconfig/network-scripts”
  2. 可以使用ls -l(或者 ll)查看目录下的文件,centos7的网卡配置文件名为“ifcfg-eno16777736”
  3. 编辑文件 "vi  ifcfg-eno16777736",修改下面标红的字段。BOOTPROTO表示获取IP的方式: "dhcp"表示自动获取,static是固定IP,none是手动。ONBOOT=yes表示开机自动启用网卡。IPADDR设定虚拟机的独立IP,在网桥模式下需要和Host IP在同一个网段下。关于什么叫同一个网段,计算机网络课程已经有了十分详细的介绍,不过记忆这东西,此一时非彼一时,所以我们还是来复习一遍吧。
  4. 重启网络服务”systemctl restart network.service“,尝试主机与虚拟机互ping,若都能ping通,则完成了通信,就可以happy地下载个FTP客户端互传文件了。如不能ping通,检查下防火墙的状态,看是否关闭了。

IP是由四段数字组成,在此,我们先来了解一下3类常用的IP

  A类IP段  0.0.0.0 到127.255.255.255 
  B类IP段  128.0.0.0 到191.255.255.255

  C类IP段  192.0.0.0 到223.255.255.255
  A类的默认子网掩码 255.0.0.0      一个子网最多可以容纳1677万多台电脑
  B类的默认子网掩码 255.255.0.0     一个子网最多可以容纳6万台电脑

  C类的默认子网掩码 255.255.255.0    一个子网最多可以容纳254台电脑
要想在同一网段,必需做到网络标识相同,那网络标识怎么算呢? 算法只要把IP和子网掩码的每位数AND就可以了。
  AND方法:0和1=0 0和0=0 1和1=1
  如:And 192.168.0.1,255.255.255.0,先转换为二进制,然后AND每一位
  IP      11000000.10101000.00000000.00000001
  子网掩码    11111111.11111111.11111111.00000000
  得出AND结果   11000000.10101000.00000000.00000000
  转换为十进制192.168.0.0,这就是网络标识。

TYPE=Ethernet
BOOTPROTO="none"
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=bac415b6-83a1-4d7c-b7f9-783d31d34741
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.1.10
GATEWAY=192.168.1.1

 
  • 虚拟机访问外网(NAT模式)
在虚拟机的开启页面,选择NAT模式,从上面我们可以知道NAT模式下,默认的网卡为 VMnet8,需要我们去手动开启VMnet8网卡。先后顺序为:先开启网卡,后开启虚拟机,如果先开启虚拟机,会出现网卡不能驱动的异常。终端键入“su”,输入管理账户密码进入root用户。
  1. 进入网卡配置文件目录  “cd /etc/sysconfig/network-scripts”,编辑文件 "vi  ifcfg-eno16777736"
  2. 将ONBOOT="no"改为yes,再添加BOOTPROTO="dhcp"
  3. 重启网络服务”systemctl restart network.service“,尝试使用虚拟机ping百度,若能ping通,则可以使用linux自带的火狐浏览器在网络的海洋里自由地畅游了~

TYPE=Ethernet
BOOTPROTO="dhcp"   #自动获取
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=bac415b6-83a1-4d7c-b7f9-783d31d34741
DEVICE=eno16777736
ONBOOT=yes

 

主机与虚拟机相互通信及虚拟机访问外网相关推荐

  1. 玩转虚拟机之VirtualBox设置虚拟机为静态IP并访问外网

    引言 大家好啊,关于虚拟机已经写了好几篇文章了,以下是往期文章,对你学习本文会有所帮助. <推荐一个免费好用的虚拟机软件> <玩转虚拟机之 VritualBox 安装 CentOS ...

  2. 如何使VMware虚拟机下的虚拟机可以相互连接又可以访问外网

    由于要练习搭建Hadoop集群,所以不得不在自己的电脑上搭建几台虚拟机试试. 这里博主打算搭建一台有界面的Ubuntu系统(麒麟系统),以及几台服务器版的Ubuntu系统,通过带界面的系统进行ssh远 ...

  3. Virtualbox设置虚拟机访问外网以及主机访问虚拟机

    2019独角兽企业重金招聘Python工程师标准>>> 由于以前都是用VMware,第一次使用VirtualBox,所以使用的一些功能记录一下. 现在主要想满足下面功能: 1.虚拟机 ...

  4. VMware虚拟机仅主机模式访问外网

    原因 主机模式默认是无法连接外网的,虽然桥接和NAT可以实现访问外网,但是桥接需要占用外网IP,NAT只能有一个.并且桥接模式更换网络环境后IP也就不行了. 方法 检查VMware Network A ...

  5. OpenStack创建网络和虚拟机、dhcp设备、虚拟路由器、虚拟机访问外网原理分析

    创建网络和虚拟机流程: 1.创建网络和子网 背后发生了什么: Neutron让控制节点上针对此子网的dhcp(虚拟设备)启动,用于给该子网下的实例分配ip 2.生成虚拟机 背后发生了什么: 用户通过G ...

  6. 在VMware虚拟机下访问外网的方法

    在虚拟机上访问外网有多种方式,我将声情并茂的介绍给大家 一:桥接 桥接相当于是采用虚拟技术把主机和虚拟机放到一个交换机的局域网下 把虚拟机的网络适配器设置成桥接 要想以桥接方式连接外网,必须了解真实主 ...

  7. 虚拟机配置自定义静态ip,并能访问外网

    1.虚拟机设置 依次点击,编辑-虚拟网络编辑器 选择VMnet8,(也可以自己添加一个) 将最下面的子网IP配置成自己想设置的静态ip段. VMnet信息里面选择NAT模式,并单机后面的NAT设置(这 ...

  8. 如何设置虚拟机访问外网

    1.使用NAT模式,设置虚拟机访问外网 1.1 首先进入虚拟机中,'编辑'-------'虚拟网络编辑器' 1.2 如下图设置,'NAT模式,设置好网段' 2 点击  'NAT设置', 设置网关和ip ...

  9. 宿主机使用虚拟机中的全局代理访问内网

    如何让宿主机使用虚拟机中的全局代理访问内网 背景 方法 配置VirtualBox 虚拟机下网络配置 最后的操作 背景 因为公司使用的 VPN 只有 Windows 客户端,所以只好在虚拟机中的 Win ...

最新文章

  1. java redis id生成器_基于redis的分布式ID生成器
  2. matlab程序求尖锐度,业务名称
  3. python面向对象的概念_Python面向对象概念和三要素
  4. Activiti 学习记录1 inclusiveGateway与 exclusiveGateway的区别
  5. 1_反向代理【跨域】
  6. python 报错 wxPyDeprecationWarning: Using deprecated class PySimpleApp.
  7. a卡 n卡 html5性能,实测说明,A卡N卡测试平台
  8. 如何将nupkg离线安装包安装到VS2017、9
  9. 计算机键盘静音键咋不亮,键盘上的声音开关键不能用为什么
  10. 自动化如何影响到你?传统5天工作制或成过去
  11. Linux怎么去掉secondary地址,有关IP aliasing, Primary address和Secondary address
  12. MySQL 性能优化的 9 种知识,面试再也不怕了
  13. PHP:GnomeSort侏儒排序(附完整源码)
  14. Android 蓝色光滤波器(护眼神器) 反编译
  15. Android中点击链接调起App
  16. 宝宝巴士儿歌下载链接
  17. 计算机软件可以授予专利权吗,软件产品能申请专利吗?
  18. 南昌大学航天杯第二届部分题解
  19. LabVIEW与MATLAB混合编程——调用Matlab中.m的函数
  20. 《2022中国各地区科创之星势力图1.0版》重磅发布

热门文章

  1. 练习4/5(继承)Java
  2. CPTAC蛋白质差异分析详细步骤
  3. Uva 101 the block problem 木块问题(算法竞赛经典入门)STL vector
  4. 面经分享 | 小白菜的2020秋招经历分享记录(Java开发方向)
  5. jdk1.8版本连接Access数据库驱动包
  6. ubuntu 安装中文字库_在ubuntu10.04下安装中文字体
  7. 代码是使用计算机的什么,什么是计算机的STOP代码-万兴恢复专家
  8. STP计算失效导致环路的解决过程
  9. 东软睿道mysql_java学习(东软睿道)2019-09-07(预课html基础)《随堂笔记》
  10. python 如何爬取审查元素中Elements里有的元素,而源代码里没有的标签?