无法通过外部 ip 访问 localhost

无法通过外部 ip 访问 localhost

我知道网上有各种文档提供了执行此操作的步骤,但我无法解决这个问题——我有一个angularjs在本地主机上运行的项目(操作系统是 ubuntu 14.04),我想通过外部 ip 访问它。

以下是项目配置文件的片段 -

options: {
  port: 9000,
  // Change this to '0.0.0.0' to access the server from outside.
  //hostname: 'localhost'
  ...
  ...
}

我已更改localhost0.0.0.0 现在允许我通过内部 IP 访问应用程序 -

192.168.X.X:9000

问题是我无法使用外部 IP 访问。我有一个路由器,并在路由器配置中设置了端口转发,我希望这可以解决问题,但事实并非如此。

我还尝试在 /etc/hosts 中添加以下行 -

<my external ip>  localhost
<my external ip>  127.0.0.1

这没什么区别。我不知道哪里出了问题,即使花了几天时间寻找解决方案也找不到答案。

更新--

这似乎是互联网连接的限制,不允许进行这样的端口转发。虽然我可以成功进行 ssh 端口转发。

我在不同的网络上尝试了同样的操作,并能够通过外部 IP 访问本地主机。

答案1

许多路由器不会接受/转发从外部发回的数据包(即那些发往其自己的公共 IP 的数据包)。我以前也遇到过这样的问题。

此外,据我所知,您不能使用 hosts 文件将流量从一个 IP 重定向到另一个 IP。这实际上只是为了定义您的 PC 不会向名称服务器请求获取其 IP 的主机名。

尝试以下服务网络嗅探器访问您的服务器或只是一些端口扫描服务。它能做到吗?

编辑:如果您确实必须使用动态/公共主机名,例如测试某些服务器,请将其添加到本地主机文件中,但让它指向 LAN IP 而不是公共/外部 WAN IP。

相关内容