VirtualBox Host-only理解与实践

1 概念理解

host-only顾名思义,这种技术提供的是主机和虚拟机之间的网络互访,而不是虚拟机访问internet的技术。

在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开(就是说不希望外网环境访问虚拟机,也不希望虚拟机访问外网环境),这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。

提示:在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。

个人认为采用host-only就是不想与外网进行通信,保证安全。

但是是不是host-only就不能设置访问internet呢?

答案是可以设置访问internet.

可以利用Windows 里面自带的Internet连接共享(实际上是一个简单的路由NAT)来让虚拟机通过主机真实的网卡进行外网的访问虚拟系统的TCP/IP配置信息(如IP地址网关地址DNS服务器等),都是由VirtualBox
Host-Only虚拟网络的DHCP服务器来动态分配的。

2 VirtualBox知识点补充

这里用virtualBox安装linux RedFlag操作系统为演示例子。

知识点1:VirtualBox可以给每个linux guest最多配制四块网卡。

知识点2:如果安装好guest,但没有给其配制网卡。那么在guest没有对应的网卡eth0等,所以该虚拟机不能和主机或者主机上其他的

虚拟机进行通信。

知识点3:如果要给已经安装好的guest配制网卡,先要将该guest关掉。

3 Host-Only内网模式

3.1 VirtualBox上给客户机配制host-only

在VirtualBox上给虚拟机配制网卡,以及配制网卡的attach到的点(有NAT,bridge adapter,host-only adapter,等),在这里只选host-only adapter.

配制好后,启动对应的虚拟机。会发现在虚拟机上就会有对应的网卡eth0了。如果还想再配制一个eth1,需要再enable一块网卡。

这个时候,会发现在windows上增加了一块VirtualBox Host-Only网卡。

从windows窗口上也能够看到:

3.2 测试虚拟机之间,虚拟机与主机之间的连通信。

现在虚拟机和主机之间便可以ping通了。

虚拟机和虚拟机之间呢,那我们再克隆或者安装一台虚拟机(我用的是另一个fedora操作系统安装的),发现虚拟机之间也可以相互ping
通了。

注意:虚拟机的ip和主机的VirtualBox Host-Only网卡的配制只需要在同一网段,便可以互通。

已知虚拟机可以和主机间相互通信了,那么虚拟机guest和主机之外的网络呢?

通过ping www.baidu.com来进行测试。

实践证明是不能ping通的。

4 Host-Only外网模式

4.1宿主机配制

windows上设置让host-only网卡共享windows主机上的网卡进行上网:

右键-->属性-->Sharing-->Select first Allow-->choose VirtualBox
Host-only network

共享之后,再去查看VirtualBox Host-Only网卡,被设置成了默认的ip(192.168.137.1)了,如果不想使用该ip,可以修改它,

我在这里修改成了192.168.56.101,配制如图:

注意,这里的ip要和虚拟guest的ip在同一个网段。并且guest的默认网关,要设置成此ip.

设置本地网卡的网络配制为自动获取,注意:这一步不一定非得这样做。也可以跳过哦。

现在在windows上的设置基本就完成了,接下来是对linux虚拟机进行设置。

4.2 在VirtualBox上进行配制。

使用自己dhcp服务:首先停掉VirtualBox自带的dhcp服务,使dhcp服务更为统一。

停掉VirtualBox上自带的DHCP服务:

在VirtualBox上:File-->Preferences-->Network-->Host-only Networks-->螺丝刀-->DHCP Server-->取消Enable Server

4.3 在虚拟机上配制网络环境:

添加默认网关:

route add default gw 192.168.56.101

注:192.168.56.101是windows主机上host-only网卡上的ip地址。

配制dns服务器:

vim /etc/resolv.cnf

nameserver 150.236.34.180

注:150.236.34.180 和windows上的dns服务器要一致。

关于如何查dns的方法:windows上:ipconfig
/all

要上外网,默认网关和dns的配制是必需正确且必不可少的!

4.4 测试:

ping www.baidu.com

测试结果:OK.

时间: 2024-10-12 09:32:04

VirtualBox Host-only理解与实践的相关文章

OWIN的理解和实践(二) – Host和Server的开发

原文:OWIN的理解和实践(二) – Host和Server的开发 对于开发人员来说,代码就是最好的文档,如上一篇博文所说,下面我们就会基于Kanata项目的一些具体调用代码,来进一步深入理解OWIN的实现和作用. 今天我们先针对Host和Server来实现一个简单的应用. 我们的开发环境是:  VS2013 Update 3,  .Net Framework 4.5.1 Host开发 如上篇博文提及,Host具有如下特点: 实现一个宿主进程 负责Server的启动和关闭 负责Middlewar

OWIN的理解和实践(三) –Middleware开发入门

原文:OWIN的理解和实践(三) –Middleware开发入门 上篇我们谈了Host和Server的建立,但Host和Server无法产出任何有实际意义的内容,真正的内容来自于加载于Server的Middleware,本篇我们就着重介绍下Middleware的开发入门. Middleware是什么 如果把HTTP交互理解为一次答题活动,那么Request是问题,Response就是答案,Server是课堂,Middleware就是参与者,注意我这里用的是参与而不是解答,因为我们允许有些Midd

OWIN的理解和实践(一) – 解耦,协作和开放

原文:OWIN的理解和实践(一) – 解耦,协作和开放 概述 OWIN的全称是Open Web Interface For .Net, 是MS在VS2013期间引入的全新的概念, 网上已经有不少的关于它的信息, 这里我就谈下我自己的理解: OWIN是一种规范和标准, 不代表特定技术. MS最新出现的一些新的技术, 比如Kanata, Identity, SignalR, 它们只是基于OWIN的不同实现, 这个在以后章节会进一步讨论. OWIN的核心理念是解耦,协作和开放---这和MS以前的风格大

Window下使用Xshell连接VirtualBox中CentOS SSH最佳实践

网上已经有非常多讲怎样连接VMware的文章.可是针对一些可能遇到的细节没有讲全. 这里会有一个非常 实际的样例,附带全部软件的链接,保证成功. 最佳实践什么的都是骗人的. 1.安装VirtualBox 其实VMware会有更全面的虚拟化支持,比方cuda,这里选择VirtualBox更easy上手一些,对一个开发环境来说够用. VirtualBox直接去官网下载最新版,然后记得下载VirtualBox Extension Pack.当前版本号的VirtualBox相应的VirtualBox E

对GCD的一些理解和实践

GCD GCD,全程Grand Central Dispatch,是苹果为了多核并行提出的解决方案.它是使用C语言实现,但是由于用了block来处理回调,所以使用起来十分方便.并且GCD会自动管理线程的生命周期,不需要我们去管理. 任务和队列 GCD中有两个重要的概念,任务和队列. 1.任务,就是我们想要处理的事情,任务可以分为同步执行和异步执行: 同步(sync):使用dispatch_sync(dispatch_queue_t queue, dispatch_block_t block) 创

对Google C++编程规范的理解和实践

1. #define保护 所有头文件都应该使用#define 防止头文件被多重包含(multiple  inclusion),命名格式为: <PROJECT>_<PATH>_<FILE>_H_ 为保证唯一性,头文件的命名应基于其所在项目源代码树的全路径.例如,项目foo 中的头文件 foo/src/bar/baz.h按如下方式保护: #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif // FOO_BAR_B

对于src路径问题,深层理解的实践。且对于输出流write()两个方法的源码阅读。

根据昨天的总结,可深层理解图片中src的路径.所以今天实现了一个想法.就是路径写入的是Controller,然后自动去本地找. 其实就是将电脑的本地图片 显示出来.通过输出流的方式. 代码如下: @RequestMapping(value = "/img/{id}") public void img(@PathVariable(value = "id") String id,HttpServletResponse response) { File file = ne

Spring Cloud Hystrix理解与实践(一):搭建简单监控集群

前言 在分布式架构中,所谓的断路器模式是指当某个服务发生故障之后,通过断路器的故障监控,向调用方返回一个错误响应,这样就不会使得线程因调用故障服务被长时间占用不释放,避免故障的继续蔓延.Spring Cloud Hystrix实现了断路器,线程隔离等一系列服务保护功能,它是基于Netflix的开源框架Hystrix实现的. 目的不是介绍Hystrix的与原理.及其使用等(有时间也要记录啊),而是通过实战搭建一个简单的监控集群,使用Hystrix Dashboard仪表盘动态监控展示以此来加深对H

对于CocoaPods的简单理解,实践安装使用过程和常见问题

(本文是自己通过其他文章进行的自我编辑和简单修改,请大家凑活看看) 一.什么是CocoaPods CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间. 在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要 1.把开源库的源代码复制到项目中 2.添加一些依赖框架和动态库 3.设置-ObjC,-fno-objc-arc等参数 4.管理他们的更新