使用NAT IP寻址在同一台物理机上的两台虚拟机之间无法通信

我有一台物理机器,上面有两台虚拟机器。 其中一个VM是应用程序机器,另一个是数据库机器。 所有正在运行的Windows XP。

我正在使用Sun Virtual Box进行虚拟化

我注意到的一件事是,在这两个虚拟机上,IP地址是完全一样的。

这个问题是我无法使用我的应用程序机器上的MySQL Administrator连接到数据库机器,因为我将不得不指定服务器主机的IP,在这种情况下,两个数据库机器完全相同和应用程序机器!

我也尝试使用Hamachi地址(因为Hamachi地址对于不同的虚拟机是不同的),但是我总是会遇到“无法连接”的问题,即使我可以从一个虚拟机ping到另一个虚拟机的Hamachi地址。

任何想法如何解决这个问题?

编辑:戴夫有一个正确的答案 。 以下是有关如何configurationSun Virtual Box 2.2桥接连接的说明。

这两个虚拟机都在VirtualBox NAT后面,彼此不可见。 您需要将虚拟机configuration为使用桥接networking,以便他们可以在您的networking上获得IP。

检查一下

  • Virtual Box允许两个虚拟机之间的连接 – 这似乎已经是这种情况了,因为你说他们可以互相ping通。
  • mysql-machine上的端口通过使用“telnet mysqlmachine 3306”或“nmap mysqymachine -p 3306”打开 – 这将显示是否有防火墙阻止访问。
  • mysql绑定到机器的公共IP地址 – 据我所知,它可能只是绑定到本地主机,不能从networking(这是一件好事)
  • 您已授予您连接的用户作为正确的权限。 这也适用于您要连接的机器的命名。 我已经了解到,如果用户名'user'没有被允许从'127.0.0.1'连接,那么“授予…在…到'用户名'@'localhost'…”在联网的情况下,你可能会遇到类似的问题。 请注意,这里是比较string,所以'localhost'不等于'127.0.0.1'

编辑:刚发布后,我看到你说,这两个IP地址是一样的。 因此,根本问题似乎是在虚拟框 – 检查networkingconfiguration那里。 如果两台计算机都parsing自己的IP地址,每台计算机都会尝试联系自己。

一旦你有不同的IP地址,并可以ping另一台机器,继续上面的列表。 我没有和Hamachi一起工作,所以我不能评论你在那里的select…你可能想尝试telnet或nmap选项与Hamachi地址虽然。