- 我有一个域名
app.example.com
,指向我的互联网的公共静态IP。 - 我有一台运行 Windows 11 的计算机,其内部 IP 为
192.168.192.168
。 - 在那台计算机上,我有一个带有 NAT 和内部 IP 的 VM(VirtualBox、Ubuntu)
10.10.10.10
。 - VM 有一个在端口 上运行的应用程序
1234
。
问题:如何将应用程序公开到互联网,以便人们访问时app.example.com
可以看到虚拟机内的应用程序?我正在尝试使用 IIS,但到目前为止没有成功。有没有比 IIS 更好的替代方案?
我做了什么:
- 我为虚拟机创建了一个端口转发规则,该规则将任何正在侦听 的主机转发
:1234
到虚拟机10.10.10.10:1234
。此时,我可以通过运行 从主机访问虚拟机内的应用程序localhost:1234
。我还可以使用主机的内部 IP 从同一网络中的其他计算机访问该应用程序,例如192.168.192.168:1234
。 - 我
80
在路由器设置上打开了端口,以便流量app.example.com
可以通过。我还打开了主机上的防火墙以接受所有传入流量(仅用于测试目的)。 - 在主机上的 IIS 中,我创建了与域
app.example.com
、IP127.0.0.1
和端口的绑定1234
。
我仍然无法app.example.com
从网络外部访问,而且我的网络知识有限,所以我不知道还应该做什么。
答案1
将您想要访问的机器置于桥接模式,以便外部计算机可以访问它。
要启用桥接网络,请打开虚拟机的“设置”对话框,转到“网络”页面,然后在“附加到”字段的下拉列表中选择“桥接网络”。从页面底部的列表中选择一个主机接口,该列表包含系统的物理网络接口。
这将为您的机器在路由器上提供一个 IP,以便域中的人们可以访问它。
我这样做是为了从外部机器访问客户机器。
请记住(取决于您的整体设置),您可能希望/需要通过 IP 地址来寻址这台客户机,至少在启动时是这样。