VirtualBox搭建1主2从虚拟机
环境要求
最近在使用VirtualBox搭建一个实验环境,由于公司规定了所有的机器都不能使用固定IP,都必须由DHCP自动获取。
为了不影响公司整理的网络环境,只能把实验用的网络环境限制在使用内部IP上。因此,这个实验环境必须满足如下的需求(注意这三个需求是AND的关系,必须同时满足):
需求1:从主机可以通过静态IP访问到每一个虚拟机,从虚拟机中可以访问主机(主机也有一个固定的静态IP)
需求2:虚拟机之间组成一个由静态IP构成的网络,而且虚拟机之间可以互相访问
需求3:从主机,从虚拟机都可以访问internet
类似于这样:

基本思路
为了满足上面的三个需求,我准备在虚拟机里面加三个网卡来完成,思路如下:
eth0: 网卡1,使用 仅主机(Host-Only)适配器 的连接方式,完成 需求1,即:从主机可以通过一个静态IP访问到每一个虚拟机,从虚拟机中可以访问主机(主机也有一个固定的静态IP)
eth1: 网卡2,使用 内部网络 的连接方式,完成 需求2,即:虚拟机之间组成一个由静态IP构成的网络,而且虚拟机之间可以互相访问
eth2: 网卡3,使用 网络地址转换(NAT) 的连接方式,完成 需求3,即:从主机,从虚拟机都可以访问internet
说了这么多,其实还差一块,那么到底主机与虚拟机之间是怎么连接的呢?
细心的人可能会发现,在我们安装好VirtualBox之后,主机的系统里面会多出一个连接,VirtualBox Host-Only Network,这个是VirtualBox自动生成的一个连接;而另外一个 本地连接 就是实际的网卡的连接:

上图的两个连接,以及虚拟机里面的三块网卡互相配合,组成了下面的网络结构图:

配置主机的内网静态IP
打开 Orcale VM VirtualBox管理器,从菜单中选择 管理 – 全局设定;在弹出的窗口中选择 网络,然后再选择 仅主机(Host-Only)网络(H) 标签页,双击 VirtualBox Host-Only Ethernet Adapter, 修改里面的IP地址,为了尊重传统,我选择192.168.1.1,如下图所示;

接着,关闭DHCP服务器,如下图所示:

也就是说,现在主机由一个静态IP:192.168.1.1。之后,虚拟机就可以通过这个IP地址来访问主机了。
上述设定完成后,查看主机的地址,可以看到如下的信息;

配置虚拟机的网卡
加入第一块网卡 eth0,将 eth0 配置成如下图的方式:

接着加入第二块网卡 eth1,将 eth1 配置成如下图的方式:

注意,虚拟机之间的内网名字可以随便起,这里叫做 neta。如果在配置在第二个虚拟机的时候,也要记得选择 netca 这个内网名字,这样虚拟机之间才可以互相通信。
最后,加入第三块网卡 eth2,配置如下:

保存,启动虚拟机,安装系统。
在虚拟机内部配置网卡
在这里我使用了Oracle Linux(其实和CentOS,RHEL是一毛一样的)。在配置IP的时候,用命令行来配置各个网卡的IP信息,如果你喜欢,也可以使用GUI(NetworkManager)。
首先 eth0,这里要与主机保持的一个网段(192.168.1.),把 eth0 的IP地址配置为 192.168.1.2:

其次,配置 eth1,要注意内网我们选择 192.168.0. 这个网段,eth1 的IP地址配置为 192.168.0.2:

再次,配置 eth2, 因为是NAT地址转换的,这块网卡使用DHCP来自动获取IP,具体如下:

最后,重新启动一下网络服务:
# service network restart
查看一下我们配置后的结果:

也就是说,现在这台虚拟机有三个IP:
192.168.1.2: 和主机通信使用
192.168.0.2: 和其他的虚拟机通信使用
10.0.4.15: 是自动获取的,通过VirtualBox的地址转换功能,用来访问外网internet
如果再新建一台虚拟机,还是需要参考上面的步骤,为每个虚拟机都设置三块网卡。
对需求1的验证
通过主机来 ping 虚拟机,结果如图,成功!

需求2的验证
虚拟机之间互 ping,结果如图,成功!

需求3的验证
从虚拟机直接上外网,如图,成功!(注意:请确认你的主机和虚拟机都使用了相同的代理服务器设置)

VirtualBox搭建1主2从虚拟机的更多相关文章
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- hadoop搭建杂记:Linux下虚拟机集群网络搭建
VirtualBox搭建hadoop伪分布式模式 VirtualBox搭建hadoop伪分布式模式 master: ip:192.168.56.120 机器名: master 启动NameNode 启 ...
- 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群
手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...
- 利用Vagrant and VirtualBox搭建core os环境
利用Vagrant and VirtualBox搭建core os环境 系统环境 ubuntu 14.04 x64 vagrant 1.7.4 virtualbox 4.3.10 git 1.9.1 ...
- Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机
准备工作 下载并安装VirtualBox for Mac到https://www.virtualbox.org/wiki/Downloads下载VirtualBox <版本> for OS ...
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.1创建虚拟机
2.1.创建虚拟机 2.1.1. 创建虚拟机节点1 2.1.2. 创建虚拟机节点2 操作如节点1. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境所有链 ...
- CENTOS6.5 安装 mysql5.6 以及搭建双主
一.Mysql5.6.10安装 1.1.必要软件 yum -y install gcc gcc-c++ autoconf automake bison ncurses-devel libtool-lt ...
- Mac OS X 10.10.5 中 VirtualBox 5.0 里的 Win7 虚拟机无法使用 USB 3.0 设备的解决办法(补充说明)
上一篇文章中,我说到了如何在Mac OS X 10.10.5 中让 VirtualBox 5.0 里的 Win7 虚拟机使用 USB 3.0.最近碰巧升级 MacBook Pro 为最新的 15 吋 ...
- RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...
随机推荐
- 转: 关于Linux常用的二进制文件分析方法
当你在unix下拿到一个二进制文件但不知道它是什么的时候,可以通过以下方法得到一此提示 1. 最首先应该尝试strings命令,比如拿到一个叫cr1的二进制文件,可以: $ strings cr1 | ...
- Java中文件和I/O
以下内容引用自http://wiki.jikexueyuan.com/project/java/files-and-io.html: 在Java中java.io包含的每一个类几乎都要进行输入和输出操作 ...
- 使用Python将数据插入数据库(一)
假如我现在有一个Excel数据表格,需要将其数据插入MySQL数据库中.数据如下: 对应的Python实现代码如下: #导入需要使用到的数据模块 import pandas as pd import ...
- Design Pattern Visitor 訪问者设计模式
訪问者设计模式是已经有了一组Person对象了,然后不同的訪问者訪问这组对象.会有不同效果. 这些訪问者实际上就是一个能够让Person对象组运行的动作行为等. 至于这些Person对象是怎样运行这些 ...
- 【C/C++学院】0901-设计模式的汇总演练
备忘录模式 数据库的备份,文档编辑中的撤销等功能 #include <iostream> #include <string> #include <vector> u ...
- android JNI 资料大全
AndroidJNI 通过C++调用JAVA 1. JNIEnv对象 对于本地函数 JNIEXPORT void JNICALL Java_video1_TestNative_sayHel ...
- Making User-Managed Backups-17.3、Making User-Managed Backups of Offline Tablespaces and Datafiles
17.3.Making User-Managed Backups of Offline Tablespaces and Datafiles 备份离线的表空间时.须要注意下面指导原则: (1)不能离线s ...
- 使用 Vagrant 构建开发环境
使用 Vagrant 构建开发环境 摘要:本文描述了如使用 Vagrant 构建统一的开发环境. 问题 作为开发人员,我们通常面临的问题有: 开发环境需要手工安装配置,这包括操作系统(CentOS.U ...
- 2016/2/29 html 思维导图
- Building Microservices: Using an API Gateway
What are microservices? http://microservices.io/ What are microservices? Microservices - also known ...