VirtualBox 端口转发问题

VirtualBox port forwarding issue

我在端口转发方面遇到了一个奇怪的问题。我已经使用它很多次了,它对我来说似乎没有问题(Ubuntu 访客,Ubuntu 主机)。

我现在正在处理一个问题,尽管在该端口上设置了端口转发,但特定的基于 NodeJS 的服务器将在来宾而不是主机中卷曲。我是 运行 同一个机器上的另一台服务器(在来宾和主机上都有不同的端口),它工作正常,所以我知道这不是 virtualbox 等的系统问题。

我发现了许多端口转发问题和许多解决方案,但其中 none 对我有用。我已经检查过我的防火墙没有问题。我试过 运行 tcp 和 udp。我尝试将端口从 3000 更改为 8123,我知道我过去曾成功使用过。我试过弄乱几乎所有可能的 0.0.0.0 和 127.0.0.1 配置。

基本上,我没有想法,正在寻找其他尝试。还有什么可能导致此类问题?还有其他调试策略可以尝试吗?

好的,我通过将 Express 服务器设置为侦听 0.0.0.0 而不是 127.0.0.1 的 IP 来解决问题。一旦我改变了它,主机访问就起作用了(在 127.0.0.1 和 0.0.0.0 上)。

我还是不明白,但希望此信息以后可以帮助其他人。

Ok, I resolved the problem by setting the Express server to listen on an IP of 0.0.0.0 instead of 127.0.0.1.

端口转发用于特定的网络适配器。您会注意到,在设置中,端口转发按钮实际上位于特定 NIC 的选项卡上。

当您的代码侦听 127.0.0.1 时,它仅绑定到环回虚拟适配器。它必须绑定到您为其端口转发的网络适配器。您可以直接绑定到该接口的地址,或使用 0.0.0.0 来监听 any 适配器。完成此操作后,您到该特定适配器的端口转发将起作用。