因为单位网络管理的原因,不太方便使用 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软件越来越大,但是不同机器仍然可以在公司办公环境,借助于宿主机,互相协同,达到节省宝贵的内存的作用。