通过一个公共 IP 为多个 vbox 客户机提供服务的网络配置

通过一个公共 IP 为多个 vbox 客户机提供服务的网络配置

嘿,我有一个 Debian Squeeze 主机,上面有三个 Lenny VM(在 VirtualBox 上)。

  • 以前每个系统都有自己的公共 IP,客户机只是桥接
  • 但是现在在新盒子上我只能获得一个物理IP,而且我不知道如何设置网络。

客户虚拟机有几个域(http/https),我应该能够通过 ssh 直接访问它们。

我考虑给客户机一个固定的内部 IP,然后从主机使用 mod_proxy。对于 ssh 使用端口转发。不确定网络模式,我可以使用非公共 IP 的“桥接网络”吗?

如果有人能对此发表评论和/或提供进一步解释此类设置的链接,那就太好了。

非常感谢,Hans-Peter

答案1

我要做的是在服务器的主 IP 上设置某种类型的反向代理。然后,这将通过仅主机或桥接网络连接路由请求。使用非公共 IP 的桥接网络应该不会有问题。

无论你做什么,都不要尝试使用 NAT(至少 VirtualBox 的实现)。我发现它的性能很糟糕,而且它有一些错误,这意味着你必须定期重启机器才能保持网络正常工作。

答案2

我本来要建议改用 NAT。除非您没有安装客户机附加组件,否则我还没有看到 NAT 的性能问题。有些人发现创建一个单独的虚拟客户端(通常使用 X gui)来编译附加组件,然后复制到虚拟服务器以减少每个服务器虚拟器上的编译器等开销更为容易。

通过 vboxmanage 进行端口转发很简单,有很多示例,这是我找到的第一个。只需输入 vboxmanage 即可获取当前语法。它会随着 VBox 版本的更新而变化。http://sk.c-wd.net/wp/2008/01/05/virtualbox-port-forwarding-with-linux-host/

构建一个带有 GUI 的 lenny 虚拟服务器,安装客户机附加组件,将网络驱动程序复制到 lenny 虚拟服务器。您也可以根据需要复制其他驱动程序,但通常我会无头运行我的 vbox 虚拟服务器,并在虚拟客户端配置中关闭复制粘贴缓冲区支持。所有虚拟访问均通过网络进行。(ssh 用于终端,IP/端口用于服务)在下一次 Virtualbox 更新或下一次 lenny 内核更新之前,您不需要使用 lenny GUI 虚拟服务器,届时您需要再次编译并分发更新。

这样的系统非常适合所有更新。在 GUI 客户端上更新和测试,然后用作本地 apt repo 分发到虚拟服务器。或者从服务器中完全删除 apt,并使用自定义更新程序。(puppet/SVN/rsync/等)对于“托管”虚拟化很有用。

我们的自定义服务器虚拟与我们部署的共置系统相匹配,并且没有终端支持。它大大减少了可用的漏洞数量。仅 SSH 文件传输访问。没有 VT。没有视频卡。如果硬件不支持 IPMI,则多台机器串行控制台将路由到单个管理机器以读取启动消息。硬件 + 软件看门狗重新启动和重新启动服务。一些系统的服务应用程序小于 30mb(+ 内核和数据,如果需要)。这只是现代小型系统的一个例子,Microcore linux 3.6 是 6.8mb,tinycore 是 11mb,带有 gui。

这是 Virtualbox 手册的 NAT 端口转发部分的链接。 http://www.virtualbox.org/manual/ch06.html#natforward

相关内容