【问题标题】:Overcoming the loopback device on a VM克服虚拟机上的环回设备
【发布时间】:2013-01-16 06:13:20
【问题描述】:

由于各种限制,我发现自己处于以下情况:

我可以访问在计算机 (127.0.0.1) 的环回设备上启动服务的 API。这台计算机实际上运行在客户端托管的 VM 上。客户端将使用相同的 API 进行连接(当然,将通过回送设备进行连接)。

API 旨在成为与主机和客户端在同一台机器上执行的服务 - 它本质上是一个通信层。这两个软件组件(即端点)不兼容,因此我们以这种方式配置它们:客户端在 VM 上托管服务器。

VM 是 Virtualbox,具有桥接适配器网络设置。

他们都在运行 Windows XP。

如何让他们交流?

编辑:我无法对通信服务进行更改,但我可以对 VM 或主机进行任何其他必要的更改。

【问题讨论】:

    标签: api networking virtualbox loopback


    【解决方案1】:

    扩展@EJP 使用端口转发的建议,所需的命令在User Manual§6.3.1 使用 NAT 配置端口转发中介绍。假设您在来宾“VM 名称”上的 service 是一个侦听端口 80 的 Web 服务器。您可以将主机端口 12345 转发到来宾端口 80,如下所示:

    VBoxManage modifyvm "VM name" --natpf1 "service,tcp,,12345,,80"
    

    当您在主机上浏览http://127.0.0.1:12345 时,访客服务器会响应。您可以使用以下方式删除设置:

    VBoxManage modifyvm "VM name" --natpf1 delete "service"
    

    您可以使用以下方式检查设置:

    VBoxManage showvminfo "VM name"
    

    【讨论】:

    • 这看起来是一个很好的解决方案,所以我会让你知道它是怎么回事。根据我有限的理解,如果我需要从外部访问 VM(对于某些应用程序,例如心跳监视器),我只需要在 VM 上配置两个适配器(一个桥接和一个 NAT)?
    • 这太完美了!完美地处理了两个适配器。谢谢,垃圾神! :-)
    【解决方案2】:

    如果可以的话,您将不得不将服务更改为不绑定到 127.0.0.1。否则你将不得不在虚拟机中安装某种代理,或者如果可以的话组织一些端口转发。

    【讨论】:

    • 谢谢。我可以做任何一件事情,但我不能对服务进行更改。您能否提供有关如何完成端口转发或 Virtualbox 代理的详细信息?我查看了一些关于端口转发的在线文章,但我对它们的理解不够深入,无法看到它如何提供解决方案。
    • 我使用 VirtualBox NAT 端口转发来测试来自主机操作系统的访客服务。
    猜你喜欢
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2017-02-22
    • 2018-05-18
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多