我在虚拟机中安装了 Oracle Linux 6.4 和 Oracle 12c,并在 OSX 主机上运行了 NAT 和桥接网络。第二个客户机是带有 NAT 和桥接网络的 Debian Linux。我尝试从 Debian vb 访问在端口 1521 上监听的 Oracle vb 上的数据库。我通过 NAT 端口转发测试了从主机到 Oracle 客户机的连接,并成功了(转发到 10.0.2.15,这是我从 NAT DHCP 收到的)。我在尝试从 Debian vb 连接时卡住了。最初,我认为从 Debian vb 到 Oracle vb 的 NAT 端口转发是可行的方法,但由于它们默认分配了相同的 ip(10.0.2.15),我不知道该怎么做。基本上,我希望将端口 1521 转发到 Linux vb。我该怎么做?
答案1
您的意思是两个客户机都有相同的地址?如果是这样,您需要先解决这个问题:确保两个客户机不使用相同的 MAC 地址。
此外,如果两个客户机都使用同一子网中的网络接口(无论是否为 NAT),则甚至不需要它们之间进行任何端口转发。
答案2
您说两个客户机都有桥接连接和 NAT?这是一种奇怪的安排。桥接连接使 NAT 连接变得多余,因为客户机应该能够通过桥接连接与世界其他地方对话。
我之所以这么说,是因为如果两个客户机都有桥接连接,那么他们应该能够通过这些连接相互通信(和主机通信)。NAT 连接应该是不必要的。
如果您不能或不想让它们通过桥接链路进行通信,那么最合理的做法是设置一个内部或仅主机网络,并将两个客户机连接到该网络。内部网络或仅主机网络是 Virtualbox 维护的虚拟 LAN。您可以将客户机的网络接口连接到它,客户机就可以相互通信。如果您愿意,Virtualbox 支持在网络上运行 DHCP 服务。内部网络和仅主机网络之间的区别在于,主机还会获得一个到仅主机网络的接口,因此主机和客户机可以相互通信。
以下是 Virtualbox 手册中有关内部网络的部分。有关仅主机网络的部分紧随其后。