我有几个虚拟机设置在这里,所有运行的Linux(主要是centos,但1 Ubuntu的)。 我通过SSH连接到它们,但是烦恼不得不返回到VM服务器来检查IP地址。 而且,在重新启动的时候,他们通常会得到一个不同的IP,因为这里的networking设置是我无法控制的。
跟踪我的虚拟机使用的所有IP的最简单方法是什么?
是否需要使用网桥模式,而不是NAT模式? 当然,如果你启用了NAT,那么你可以为你的ssh访问转发各种不同的端口,IP(当然还有端口)在重新启动时保持不变。
您可以在VirtualBox 3.1.2用户手册的第6.3.1节“使用NATconfiguration端口转发”中find详细信息。
另一个想法:我不禁注意到我的IP地址显示在我的虚拟机的XML文件中:
<GuestProperty name="/VirtualBox/GuestInfo/Net/0/V4/IP" value="10.0.2.15" timestamp="1261587087753023000" flags=""/>
(在linux上,你可以在〜/ .VirtualBox / Machines / MyVMName / MyVMName.xml中find)
所以特别是如果您使用vboxmanage来启动/停止虚拟机,您可以grep机器的xml和更新“东西” – 如网页或文本文件? – 所以你总是知道每个虚拟机的IP地址。 我猜这将工作,不pipe你是否使用NAT或桥接networking,但我没有亲自尝试过…我有一个静态的IP在我的虚拟机。 我不知道这个值在XML文件中被更新的是谁/何时/何处。 据推测,当VBox检测到需要redirect到VM的DHCP回复时,VBox会对其进行更新。
很多您的select取决于您的确切的networkingconfiguration。 大多数简单的选项都涉及到一些networking修改,您指出的不是这种情况。 这里有一些select给出了这个约束:
这两个都很麻烦,所以和Chopper3提到的一样,你可以更好地与任何pipe理你的networking的人合作,获得静态的IP和DNS名字。 您甚至可以使用静态DHCP分配,然后修改主机文件,但是又需要您的networking团队进行合作。
设置一个cronjob,使wget到一个.php文件,告诉你机器和ip的主机名,然后你就完成了。
当机器通过networking上的DHCP获得IP地址时,他们是否也没有获得DNS? 例如。 你应该能够通过他们的主机名连接到它们,这将保持静态。
您可以在自己的“虚拟networking”中运行所有的虚拟机,并运行您自己的连接到真实networking的DHCP / DNS /路由器,但是您仍然需要networkingpipe理员添加他可能不喜欢的路由/ DNS转发。
另一种做法是让你有一定的控制权,那就是欺骗和使用其中一种外部DNS服务。 例如:
dyndns.org是一个免费的服务,可以让你有一个静态的主机名映射到一个dynamic的IP地址。 他们也有不同的操作系统的客户吨,以保持这个最新的。 通常情况下,你将这个设置为一个外部地址(例如你的家庭路由器),所以你可以记住myhouse.dyndns.org而不是87.42.80.0或者最近修改的东西。
在你的情况下,我会为每个虚拟机做类似的事情。 设置自己的帐户,并获得每台机器的主机名。 安装客户端告诉他们保持更新。 所以你最终与myvirt1.dyndns.org ,它指向192.168.xx或任何你刚刚给予的IP。
– 说,你可不只是问你的networkingpipe理员一块静态地址的?
静态IP和文本编辑器