无法将 http 请求从外部客户端路由到 Virtualbox 客户机

无法将 http 请求从外部客户端路由到 Virtualbox 客户机

我有一个运行 Ubuntu 14.04 的 Virtualbox 客户机和一个 node.js Web 服务器。Virtualbox 主机是 Windows 8.1 客户端。设置节点服务器后,我在提供外部访问方面遇到了一些困难。

节点服务器在端口 5005 上运行,因此通常情况下,我只需从防火墙创建一个端口转发规则,将所有对 5005 的请求路由到同一端口上的客户 IP(192.168.2.13)。这样做,我看到我从外部位置发出的请求到达防火墙并被允许,但外部客户端从未收到响应。如果我从网络内部访问私有 IP,它会正确响应并符合预期(因此服务器肯定已启动)。

如果我尝试相同的过程,但在主机(而不是来宾 VM)上运行服务器,它就会工作!这表明防火墙配置不是问题。我可以从防火墙 ping 来宾 IP,因此连接似乎很好。

因此,虚拟机的网络设置中似乎发生了一些问题,导致了问题,但是什么呢?VB 客户机配置了静态 IP,使用 VirtualBox 的桥接网络模型。

IpTables 或 UFW 均未配置为阻止来宾上的任何内容(我可以告诉)

我错过了什么?

答案1

原来是客户机没有正确设置默认网关。我可以通过运行

route -N

在客户机上,它显示没有设置默认路由。为了解决这个问题,我运行

route del default
route add default gw 192.168.2.100 eth1

并且访客现在可以与来自互联网的 NAT 流量正常通信。

相关内容