【问题标题】:Access Apache server installed on a VM remotely from computer in local network从本地网络中的计算机远程访问安装在 VM 上的 Apache 服务器
【发布时间】:2014-06-19 21:17:11
【问题描述】:

我想从我网络内的计算机访问 Apache,问题是 Apache 在虚拟机上运行:

图表

(  [A: VM Running Apache] -- [B: Actual machine]  ) ------ [C: Actual machine]

IP:

A: 192.168.55.55
B: 192.168.1.25

我可以从 B 访问 A,但不能从 C。(一段时间后,我收到一条消息,显示“与服务器的连接超时”)。

B:网络信息

PD:Apache 在 VM 中的原因是因为我正在使用 Vagrant,不确定这是否与任何事情有关,但我想我还是会提到它。

【问题讨论】:

  • 您使用的是什么虚拟机?虚拟机?它是否有映射到192.168.x.x 网络的以太网端口?您的本地网络可能位于 10.x.x.x 网络上,因此您的 VM 需要能够桥接 192.168.x.x 的 VM 环境和 10.x.x.x 的真实网络环境。
  • 是的!抱歉,我正在使用 VirtualBox。让我在我的问题中添加更多信息。

标签: apache virtual-machine vagrant


【解决方案1】:

这就是我为在我的家庭网络上运行而做的。

在实际运行 Vagrant 的机器上,编辑 Vagrantfile 并将端口转发 8088(或您选择的任何端口#)从主机(您称之为“实际机器”)到端口 80 在来宾上(你称之为“运行 Apache 的虚拟机”)。

做一个正常的vagrant up,你应该会在启动时看到端口转发。我个人有大约 8 个虚拟主机在我的 Vagrant 盒子中运行,每个都有自己的主机名。我在主机(上面的机器'B')上编辑了我的主机文件,以便将这些主机名指向 Vagrant 框的 ip。它效果很好,我可以在地址栏中输入类似 mysite.dev 的内容,然后该网站就会在我的本地计算机上启动。

现在要让它在另一台机器上工作,在与主机相同的子网内,您需要在第二台机器上编辑主机文件。将主机名(我的示例是 mysite.dev)指向主机的实际 IP 地址。这会将 mysite.dev 的任何实例转发到您在问题中标记为“B”的机器。唯一的问题是这只是像任何普通网页一样指向标准端口 80。您希望此流量实际到达您问题中的机器“A”。因此,不要只是将 mysite.dev 放入浏览器的地址栏中,而是放入 mysite.dev:8088(或您选择转发到机器“A”的任何端口号早)。

现在来自“C”的流量将被发送到机器“B”,因为主机文件告诉它去那里,并且您添加到地址的额外端口会强制机器“B”将该流量转发到端口 80 在机器“A”上。机器“A”接收请求并将数据返回给机器“B”,然后将其转发回机器“C”。

最终结果是机器“C”看到机器“A”返回的页面。

希望总结一下。

祝你好运!

c0p

【讨论】:

  • 谢谢! :) 这正是我所需要的,我发现我无法进入访问虚拟机,因为我没有指定端口。编辑主机文件是个好主意:)
【解决方案2】:

如果您的 Vagrant 版本 >= 1.5 并且使用公共 url 不会引起问题,那么解决方案应该很简单:

vagrant share

更多信息here.

【讨论】:

  • 谢谢!这很有帮助;但这不是我想要做的,虽然它很接近。我不想让 Internet 上的任何人都可以使用我的服务器,只是我的私人网络。
猜你喜欢
  • 1970-01-01
  • 2014-03-23
  • 2011-02-10
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 2011-01-07
  • 2019-12-09
  • 1970-01-01
相关资源
最近更新 更多