设为首页 收藏本站
查看: 1124|回复: 0

[经验分享] VirtualBox虚拟机网络设置,使其与宿主机通信

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-12 13:02:25 | 显示全部楼层 |阅读模式
  方法一:
  
  VirtualBox是一款SUN出品的非常优秀的虚拟机程序,版本也非常齐全,你可以在官网上找到适合各种操作系统平台的版本。
这里我先给大家大致讲解下VBox的网络配置及应用。
VirtualBox的提供了四种网络接入模式,它们分别是:
1、NAT    网络地址转换模式(NAT,Network Address Translation)
2、Bridged Adapter    桥接模式
3、Internal    内部网络模式
4、Host-only Adapter  主机模式
下面我们分别对这四种网络模式进行分析解释:
  第一种 NAT模式
解释:
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。
虚拟机与主机关系:
只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
虚拟机与网络中其他主机的关系:
只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
虚拟机与虚拟机之间的关系:
相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
IP:10.0.2.15
网关:10.0.2.2
DNS:10.0.2.3
一台虚拟机的多个网卡可以被设定使用 NAT, 第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(IP Address)是10.0.2.15,网关(Gateway)是10.0.2.2,域名服务器(DNS)是10.0.2.3,可以手动参考这个进行修改。
NAT方案优缺点:
笔记本已插网线时: 虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后(最后有说明),主机可以访问虚拟机上的服务(如数据库)。
笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
  第二种 Bridged Adapter模式
解释:
网桥模式是我最喜欢的用的一种模式,同时,模拟度也是相当完美。你可以这样理解,它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
虚拟机与主机关系:
可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于网络中其他主机关系:
可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机于虚拟机关系:
可以相互访问,原因同上。
IP:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。
笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。
笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。
这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。
  第三种 Internal模式
解释:
内网模式,顾名思义就是内部网络模式,虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
虚拟机与主机关系:
不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机与网络中其他主机关系:
不能相互访问,理由同上。
虚拟机与虚拟机关系:
可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。
IP: VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。
笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信
这种方案不受主机本地连接(网卡)是否有红叉的影响。
  第四种 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, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)
  通过对以上几种网络模式的了解,我们就可以灵活运用,模拟组建出我们所想要的任何一种网络环境了。
比如我想模拟出来一个一台主机,监控一个局域网上网情况的网络环境。
首先我开启了两台虚拟机vhost1与vhost2,当然如果硬件允许,我同样可以再增加vhost3、vhost4…
所有的vhost我都设置成internat内网模式,网络名称为intnal,网关为192.168.56.100,意思就是通过 192.168.56.100网卡上网。其中有一台vhost1我设置为双网卡,一张为内网模式(192.168.56.100),一张为网桥模式(192.168.1.101)。两张网卡设置双网卡共享上网
虚拟机之间为局域网,其中有一台虚拟机vhost1通过与外网相连,所有局域网中的虚拟机又通过vhost1来实现上外网。这样vhost1就可以监控整个虚拟机局域网上网情况了。
===============================================================  方法二:
  
  【转】我的VirtualBox网络配置(http://cuixiaodong214.blog.163.com/blog/static/95163982009628104255225/)
  “网络”配置页面有4个方案:
  1:NAT  网络地址转换(Network Address Translation)
  2:Birdged Network  桥接
  3:Internal Network  内部网络(可以是虚拟机与虚拟机之间)
  4:Host-Only     只与主机通信(大概吧)
  安装完VirtualBox2.2后,主机多了一个“VirtualBox Host-Only Network ”本地网卡。
  --------------------------------------------------------------------
  我的网络环境:
  主机:系统:xp/Win7
  “本地连接”的IP:由于是笔记本,经常换工作网络环境,都是通过DHCP分配的,有时候还无网络,“本地连接”有红叉(对主机与虚拟机通信有影响)。
  “VirtualBox Host-Only Network网卡”IP:192.168.56.1  ,因为VirtualBox的DHCP服务器IP是192.168.56.100,要在同一网段。
  虚拟机:要能与主机互相通信,要能访问互联网(不须要被互联网访问)。
  系统:virtualBox (RHEL)
  1、在启动虚拟机RHEL之前,在“Network”中设置第一块虚拟网卡网卡1用NAT方式,然后切换到网卡2启用第二块虚拟网卡,并更改为桥接连接方式,再切换到网卡3,用Host-Only方式。

  网卡1,网卡2,网卡3   后面说各网卡的配置情况如下:
  网卡1: 用NAT方案
  IP:10.0.2.15
  网关:10.0.2.2
  DNS:10.0.2.3
  
为什么这样配置?因为VirtualBox的帮助中,有以下一段说明(英译汉):
  一台虚拟机的多个网卡可以被设定使用 NAT, 第一个网卡连接了到专用网 10.0.2.0,第二个网卡连接到专用网络 10.0.3.0,等等。默认得到的客户端ip(IP Address)是10.0.2.15,网关(Gateway)是10.0.2.2,域名服务器(DNS)是10.0.2.3,可以手动参考这个进行修改。
  
NAT方案优缺点:
  笔记本已插网线时: 虚拟机可以访问主机,虚拟机可以访问互联网,在做了端口映射后(最后有说明),主机可以访问虚拟机上的服务(如数据库)。
  笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
  
网卡2:用Birdged Network  方案
  IP:一般是DHCP分配的,与主机的“本地连接”的IP 是同一网段的。虚拟机就能与主机互相通信。
  笔记本已插网线时:(若网络中有DHCP服务器)主机与虚拟机会通过DHCP分别得到一个IP,这两个IP在同一网段。 主机与虚拟机可以ping通,虚拟机可以上互联网。
  笔记本没插网线时:主机与虚拟机不能通信。主机的“本地连接”有红叉,就不能手工指定IP。虚拟机也不能通过DHCP得到IP地址,手工指定IP后,也无法与主机通信,因为主机无IP。
  这时主机的VirtualBox Host-Only Network 网卡是有ip的,192.168.56.1。虚拟机就算手工指定了IP 192.168.56.*,也ping不能主机。
  网卡3:   用Host-Only     方案
  ip: VirtualBox的DHCP服务器会为它分配IP ,一般得到的是192.168.56.101,因为是从101起分的,也可手工指定192.168.56.*。
  笔记本已插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信
  笔记本没插网线时:虚拟机可以与主机的VirtualBox Host-Only Network 网卡通信
  这种方案不受主机本地连接(网卡)是否有红叉的影响。
  
------------------------------------------------------------------
  以上三种方案,可以右击虚拟机窗口最下边 两个小电视 的图标快速切换。满足各种网络环境。
  关于Internal Network  方案,我也没试。
  
上面三种方案的总结
  
同时启用下面两个方案:(这个很重要)
  网卡2:用Birdged Network  方案
  网卡3:   用Host-Only     方案
  虚拟机访问主机 用的是主机的VirtualBox Host-Only Network网卡的IP:192.168.56.1  ,不管主机“本地连接”有无红叉,永远通。
  主机访问虚拟机,用是的虚拟机的网卡3的IP: 192.168.56.101  ,不管主机“本地连接”有无红叉,永远通。
  虚拟机访问互联网,用的是自己的网卡2, 这时主机要能通过“本地连接”有线上网,(无线网卡不行)

  【我的主机中VirtualBox Host-Only Network网卡和虚拟机的网卡3的IP是一致的,一个改变了,另一个会随着改变。】
  

  这时,在虚拟机的RHEL中,通过ifconfig命令,查看虚拟机RHEL的IP地址,然后,在宿主机中进行ping,就能ping通了。
  =============================================================================
  







  
方法三:配置virtualbox为桥接和NAT以和主机通信和连外网  
  一般虚拟机默认通过NAT方式与外网连接,但这种方式虚拟客户机能访问主机,而主机却未然。但主机不能访问虚拟客户机实在是不舒服,有时候想用虚拟客户机测试一下都很不方便,因为虚拟客户机ping不通哪。。。于是乎,鼓捣吧。。。
       Google了很久,很想用桥接的网络连接方式,因为这样就公平了,至少没有所谓的host和guest之分,主机和虚拟机也能共享带宽,但遗憾的是鼓捣了老久,还是没能实现,除非装uml-utilities和bridge- utils。但想在RHEL装软件可不是一件有趣的事,好怕在,/configure时提示缺少依赖关系,少了啥啥啥,最怕的是在你在. /configure啥啥啥时又提示此软件也缺少依赖关系,最后怕是一怒之下不装了。所以除非迫不得已,否则我是不想通过安装第三方软件解决这个问题。
       后来在virtualbox的setting找到了解决方法,那就是使用双虚拟网卡。以下为具体设置方法:

一、虚拟机客户机为Linux(RHEL5.4)

1、在启动虚拟机RHEL之前,在“Network”中默认设置第一块虚拟网卡(即用NAT方式),然后切换到Adapter2启用第二块虚拟网卡,并更改为桥接连接方式:
DSC0000.jpg

2、启动虚拟机,编辑“/etc/sysconfig/network-scripts/ifcfg-eth0” 文件,在里面设置以太网接口eth0的IP地址、子网掩码和网关,这一步最为重要。eth0这块网卡是桥接用的,即是与你主机互相通信用的,所以这里设置 的IP要与主机的IP地址同个网段,网关和子网掩码就和主机的设置一致,然后设置IP为静态。保存退出后,执行“service network restart”后便可以和主机互ping了。
3、用ifconfig查看网络接口信息,会发现还有一个网络接口eth1,而且IP为专有IP地址,没错,这个就是用来NAT连接的,通过NAT转换之后就能上外网了。
DSC0001.jpg


二、虚拟客户机为Windows

1、与上边的第一步相同,这里不再罗嗦了。
2、右键网上邻居,选择属性,会有两个本地连接: DSC0002.jpg

找到第二个并右键选择属性;

DSC0003.jpg

双击“Internet协议(TCP/IP)”,自己配置IP、子网掩码、网关和DNS,思想与上边第二步一样,如下图所示:
DSC0004.jpg

设置完之后虚拟机既能上外网,也能和主机互ping了。。。


      以上所讲的方法是,设置两个虚拟网卡,其中一个用NAT连接,以连接外网;一个用桥接,用来与主机互相通信。虽然没什么技术含量,但起码我的目的算是达到了,先将就着吧。。。转:http://moyu2010.blog.163.com/blog/static/17743904120112278221238/
  
=============================================================================  方法四:
  
  NAT 设置端口映射
http://huzhangsheng.blog.163.com/blog/static/34787784200802801435931/
你可以设置一个虚拟机的服务(比如 WEB  服务),通过使用命令行工具 VboxManage 代理。你需要知道虚拟机的服务使用哪个端口,然后决定在主机上使用哪个端口(通常但不总是想要使虚拟机和主机使用同一个端口)。在主机上提供一个服务需要使用一个端口,你能使用在主机上没有准备用来提供服务的任何端口。一个怎样设置新的 NAT 例子,在虚拟机上连接到一个 ssh 服务器,需要下面的三个命令:
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Linux Guest" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
说明:VboxManage 是一个命令行程序,请查询你的 VirtualBox 安装目录,"Linux Guest" 是虚拟主机名。guestssh 是一个自定义的名称,你可以任意设置,通过上面的三个命令,把虚拟机的 22 端口 转发到主机的 2222 端口。
又比如,我在虚拟机 debian 上安装了 apache2 服务器,使用 80 端口,映射到主机的 80 端口。使用下面的命令。
"C:/Program Files/innotek VirtualBox/VBoxManage.exe" setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/Protocol" TCP
"C:/Program Files/innotek VirtualBox/VBoxManage.exe" setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/GuestPort" 80
"C:/Program Files/innotek VirtualBox/VBoxManage.exe" setextradata "debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/huzhangsheng/HostPort" 80
注意:要使设置生效,请关掉 VirtualBox 再运行虚拟机,我把 VirtualBox 安装在 winxp 上,在虚拟机中安装 debian 4.02r ,虚拟机名是 debian ,并安装了 apache2 php5 mysql-server ,在主机上用IE浏览 http://localhost,成功转发到虚拟机 debian 的 apache2 web 服务器上
  上文出处:http://www.cnblogs.com/coltiam/archive/2010/03/26/1696939.html
  个人感觉通过使用端口映射的方式很不爽,还不如直接桥接来的快,现在多数情况下连接到网络是没问题的,端口映射还需要在宿主跟虚拟机都额外开某个服务,感觉不爽。

  ===============================l===================================================
  总结:我用的方法二配置成功了。其实,方法一和方法二是一样的。方法一主要是理论解释。方法二更注重怎么做。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125897-1-1.html 上篇帖子: linux下安装virtualbox的一般方法 下篇帖子: VirtualBox+CentOS安装增强功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表