因为单位网络管理的原因,不太方便使用 Virtualbox 的Bridge Adapter 模式,故此欲采用NAT模式,不对外不暴露虚拟机IP。

但是此时会有一个问题:采用NAT模式后,在通常情况下,

从外面看,或者从物理机来看,此虚拟机是不可见的。

此时,可通过端口转发,来使得外部机器和此物理机进行通讯。

设置方法如下:

1 先测试 两台物理机是否能够ping通。

例如 物理机地址:192.168.1.104  和  192.168.1.105

物理机 192.168.1.104上的虚拟机地址:10.0.3.15

物理机 192.168.1.105上的虚拟机地址:  10.0.2.15
测试:

从 192.168.1.104 可以ping 通 192.168.1.105; 同时反过来,从 192.168.1.105 可以ping通 192.168.1.104。

2  再测试,通过虚拟机可否访问宿主物理机以及外部物理机:

由于是 NAT 方式,所以从 10.0.2.15,可以ping通 宿主机 192.168.1.105,也可以ping 通外部物理机 192.168.1.104

同样, 从 10.0.3.15,可以ping通 宿主机 192.168.1.104,也可以ping 通外部物理机 192.168.1.105。

3接着,分别设置两台宿主物理机的端口转发。

以 192.168.1.105 为例:

如图所示:单击 端口转发

分别填写主机和子系统信息:

主机IP: 物理宿主机自身IP  192.168.1.105。

主机端口:物理宿主机端口, 因为这里为Oracle数据库而设,故设置1521

子系统IP:  虚拟机IP 10.0.2.15

子系统端口:虚拟机端口,因为这里为Oracle数据库而设,故设置1521

另外的物理宿主机上,Virtualbox作同样的设置,只是

主机IP为物理宿主机自身IP: 192.168.1.104。

主机端口:物理宿主机端口, 因为这里为Oracle数据库而设,故设置1521

子系统IP:  虚拟机IP 10.0.3.15

子系统端口:虚拟机端口,因为这里为Oracle数据库而设,故设置1521

4 测试各虚拟机上自身listener启动状况良好(lsnrctl start/ lsnrctl status),

各虚拟机上数据库已经启动

从各虚拟机,通过本地listener上访问本虚拟机内的数据库没问题。

然后,

从虚拟机上,用netca,来建立到另一台虚拟机上的数据库的连接:

例如,从 10.0.3.15 设置访问 另外的虚拟机(10.0.2.15)的本地命名连接(tnsnames.ora)时,

IP 地址使用 另外的虚拟机的物理宿主机的IP(192.168.1.105)。

这样,通过 10.0.3.15 --〉(本地物理宿主机)--->(远端物理宿主机)---->Virtualbox端口转发--->10.0.2.15:1521;

经过测试,可以连接成功。

反过来,也可以达到

通过 10.0.2.15 --〉(本地物理宿主机)--->(远端物理宿主机)---->Virtualbox端口转发--->10.0.3.15:1521;也可以连接成功。

这样,虽然Oracle软件越来越大,但是不同机器仍然可以在公司办公环境,借助于宿主机,互相协同,达到节省宝贵的内存的作用。

Oracle 在 多个Virtualbox 虚拟机间 跨不同物理宿主机进行通信的更多相关文章

  1. Ubuntu下virtualbox nat网络模式下 实现宿主机访问虚拟机

    参考原文(在windows环境下):http://hi.baidu.com/george_gly/item/5183b76e5a79e49ac5d2498b nat网络模式下,虚拟机可以访问外网.访问 ...

  2. virtualbox通过Nat模式上网,宿主机与宿主机互通

    本地搭建virtualbox,开始用的nat转发模式,这样的话宿主机没法访问虚拟机里面的服务.比如nginx网站.这样很不方便 . 在网上找了好久,终于找到了方案.那就是再添加一块虚拟网卡. 在虚拟机 ...

  3. VMware虚拟机中centos6.5网络配置(桥接方式)与宿主机之间通信

    1.修改网络适配器 2.选择桥接所用的网卡 3.设置网络 3.1在系统终端中输入 setup ,进行图形网络配置(此命令只有redhat系列才有作用) 上下左右键选择,enter键确定 将光标移动到U ...

  4. 虚拟机下安装 VMwareTools 实现宿主机和虚拟机的文件共享

    $ mount /dev/sr0 /media/ #点击 虚拟机 安装 VMwareTools 挂载 $ cd /media/ $ cp VMwareTools-10.1.6-5214329.tar. ...

  5. 虚拟机有QQ消息时宿主机自动弹窗提示

    因为是检测窗口实现的,所以要求设置会话窗口自动弹出,而且看完消息就把QQ消息窗口关掉... 虚拟机端 #! /usr/bin/env python # -*- coding: utf-8 -*- fr ...

  6. kvm虚拟机最佳实践系列1-kvm宿主机准备

    KVM宿主机配置 系统环境:ubuntu16, bond0 业务网口 bond1 管理网口+存储网口 安装KVM环境支持 sudo apt-get install qemu-kvm sudo apt- ...

  7. VirtualBox通过Host-Only网络连接方式实现宿主机与虚拟机通信

    适用情况 (1)没有联网, 不插网线 (2)宿主机直接连接宽带(无路由器) 情景: 宿主机 Windows 7 虚拟机 Windows XP 虚拟机安装了SQLServer2005,宿主机想连接使用虚 ...

  8. virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法

    环境描述: 宿主机:windows Server 2008 64bit,IPV4地址,有网络. 宿主机上的主要软件环境: virtualBox 5.0.24 virtualBox中安装了CentOS ...

  9. 如何配置 VirtualBox 中的客户机与宿主机之间的网络连接

    如何配置 VirtualBox 中的客户机与宿主机之间的网络连接 作者: Aaron Kili 译者: LCTT rusking | 2017-03-01 13:40   评论: 3 收藏: 3 当你 ...

随机推荐

  1. 304 Not Modified 简述

    在客户端向服务端发送http请求时,若返回状态码为304 Not Modified 则表明此次请求为条件请求.在请求头中有两个请求参数:If-Modified-Since 和 If-None-Matc ...

  2. iOS中block类型大全

    iOS中block类型大全 typedef的block 作为属性的block 作为变量的block 作为方法变量入参的block 作为方法参数的block 无名block 内联函数的block 递归调 ...

  3. 【数据结构】 顺序表查找(折半查找&&差值查找)

    #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXSIZE 10 首先构造一个 ...

  4. Zabbix日常监控(win_agent方式)

    参考博文:https://www.cnblogs.com/xqzt/p/5130469.html https://www.cnblogs.com/zoulongbin/p/6395047.html 本 ...

  5. SIM900A模块HTTP相关调试笔记

    SIM900A模块使用笔记 更新2018-12-8 正常工作状态: 接线方法: 首先将 AT 写入字符串输入框,然后点击 发送.因为模块波特率默认是 9600,所以两条指令的显示都是没有问题的:如果将 ...

  6. Java基础面试题(进程和线程的区别)

    进程和线程的区别 1.定义 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更 ...

  7. 从0开始搭建Element项目

    第一步:安装 Node.js/NPM 下载Node.js:https://nodejs.org/zh-cn/download/ 下载安装即可. 第二步:安装 vue-cli 打开 cmd 创建,在命令 ...

  8. Web 通信 之 长连接、长轮询(转)

    Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...

  9. Scala学习——Brief Scala Tutorial

    因为Spark项目需要,学习Scala编程. 从官网文档入手:http://www.scala-lang.org/documentation/ 首先从他的Older Documentation入手. ...

  10. Python中的赋值和拷贝

    赋值 在python中,赋值就是建立一个对象的引用,而不是将对象存储为另一个副本.比如: >>> a=[1,2,3] >>> b=a >>> c= ...