我无法从本地网络外部连接到虚拟机中运行的任何服务。
我的虚拟机具有以下配置:
eth0 - 仅主机网络
eth1 - 桥接网络(因此连接到我的路由器,有效的 IP 地址和设置。例如:192.168.178.20)
为了测试目的,我在我的虚拟机上安装了 nginx 或 apache,之后我有一个“测试”网站等待我用于测试目的。
现在,一旦我进入本地网络(主机例如:192.168.178.21),我就可以使用 eth1 的 IP 地址访问演示网站。一切都按预期工作。
但是一旦我离开本地网络或尝试通过我的公共 IP 地址(例如:109.192.77.XX)访问服务器,我就无法再访问我的服务器了。我还设置了一个指向我的公共 IP 地址的 dyndns 地址,尽管这根本不起作用。我无法建立连接,拒绝访问或类似情况。之前我测试通过 curl -i 访问我的网络时得到的是来自 WebProxy/1.0 Pre-Alpha 的 504 网关超时异常,但这对我来说毫无意义。
我确实在路由器上打开了正确的端口,并且可以确认不是我的路由器或 ISP 阻止了我在这里尝试的操作。为了验证这一点,我只需在我的 MacMini 上打开端口 80,而不是在我的 VM 上打开端口 80,后者正在运行 nginx,最后我可以通过我的公共 IP 地址和我的 dyndns 访问所有内容(但这次是在 MacMini 上,而不是 VM 上)。
我真的希望有人能帮助我,因为这会让我发疯。我已经为此苦恼了将近 4 天。
如果您需要更多信息,请告诉我!
答案1
听起来你可能已经为 MacMini 的 IP 地址而不是虚拟机的 IP 地址正确设置了规则。你能验证你的虚拟机 IP 的 NAT 设置是否正确吗?
WebProxy/1.0 Pre-Alpha 是路由器上启用的吗?还是虚拟机本身的代理?您可能需要检查代理配置。