步骤 0——最重要的一步

步骤 0——最重要的一步

我有一台 ColdFusion 服务器,在 VirtualBox 上的虚拟机中启动于 127.0.0.1:WXYZ。我需要能够从我的主机操作系统访问该服务器。我尝试过使用桥接适配器以及带端口转发的 NAT,但是没有成功。

我也尝试过使用带有端口转发的普通 NAT,同时也尝试netsh interface portproxy中继请求以尝试公开客户的内部 127.0.0.1。

客户机和主机都是 Windows 10。更改服务器绑定的地址是不是在这种情况下,这是一个选项。我不确定我是否以理想的方式尝试了我提到的所有步骤,因此,如果您对我尝试过的任何内容或我所做的事情有任何建议,可以尝试一下,请告诉我。

答案1

我自己用 3 个步骤解决了这个问题。我将发布答案以防其他人遇到这种情况。在这个例子中,我已将主机操作系统连接到在我的客户操作系统上localhost:3000运行的服务器。localhost:62094

步骤 0——最重要的一步

确保您的客户操作系统已启用文件共享或网络发现。这就是为什么当@Peregrino69在另一个答案的评论中提到它时,我无法访问客户操作系统。启用此设置允许我 ping 客户操作系统的 IP(但是不是本地主机,这需要我在这个答案中采取的其余步骤)

1. 查找客户操作系统 IP

这是通过运行ipconfig并读取IPv4 Address 字段来完成的。在我的例子中,它是默认值10.0.2.15

2. 从 VirtualBox 设置转发端口。

第二步是通过连接到虚拟机的网络设置将主机的调用端口转发localhost到客户机。这会将主机操作系统中的调用中继到客户操作系统。设置屏幕截图:127.0.0.1:300010.0.2.15:3000localhost:300010.0.2.15:3000

转发端口

3. 将对 10.0.2.15 的调用中继到访客的本地主机

这是通过使用命令完成的netsh。使用了以下确切命令:

netsh interface portproxy add v4tov4 listenaddress=10.0.2.15 listenport=3000 connectaddress=127.0.0.1 connectport=62094

这会将对客户操作系统发出的调用10.0.2.15:3000进行中继。localhost:62094

结果

这会导致localhost:3000从主机操作系统访问时,引起托管我服务器的客户操作系统的响应10.0.2.15:60294。我附上了最终网络设置的图表,以防步骤不够清晰:

网络设置

答案2

问题表明您正尝试使用 IP 地址 127.0.0.1 从主机访问客户机。这行不通,127 个地址仅指本地主机。即从主机和客户机这两个计算机系统的角度来看,127.0.0.1 =“我自己”。

您需要使用实际的接口 IP。例如,我有一个使用桥接适配器运行的 VB VM。我的 Wi-Fi 为其提供 IP 地址 192.168.43.177。我的主机连接到同一个 Wi-Fi,IP 地址为 192.168.43.28。如果我想从 VM 内部访问 Webmin 的界面,我可以打开浏览器https://127.0.0.1:10000,但如果我想从主机访问它我必须将其打开到 192.168.43.177:10000。

无论接口是桥接的还是 NAT 的,其工作方式都相同。

相关内容