我在端口转发方面遇到了一个奇怪的问题。我已经使用过它很多次了,它似乎对我来说没有任何问题(Ubuntu 客户,Ubuntu 主机)。
我现在正在处理一个问题,即特定的基于 NodeJS 的服务器将在 guest 中 curl ,但不会在主机中 curl ,尽管在该端口上设置了端口转发。我在同一个机器上运行另一台服务器( guest 和主机上有不同的端口),该服务器运行正常,所以我知道这不是 virtualbox 等的系统问题。
我发现了许多端口转发问题和许多解决方案,但没有一个对我有用。我已经检查过我的防火墙没有问题。我尝试过同时运行 tcp 和 udp。我尝试将端口从 3000 更改为 8123,我知道我过去曾成功使用过该端口。我尝试过弄乱 0.0.0.0 和 127.0.0.1 的几乎所有可能的配置。
基本上,我没有想法,正在寻找其他可以尝试的东西。还有什么可能导致此类问题?还有其他调试策略可以尝试吗?
最佳答案
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
时,它仅绑定(bind)到环回虚拟适配器。它必须绑定(bind)到您要为其进行端口转发的网络适配器。您可以直接绑定(bind)到该接口(interface)的地址,也可以使用 0.0.0.0
来监听任何适配器。完成此操作后,到该特定适配器的端口转发将起作用。
关于node.js - VirtualBox端口转发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44309208/