如果应用程序正在侦听“localhost”,我们如何访问网络外的节点服务器?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果应用程序正在侦听“localhost”,我们如何访问网络外的节点服务器?相关的知识,希望对你有一定的参考价值。

当我们使用app.listen(port)时使用Express,应用程序位置是localhost:port/

在本地机器中,我完全理解我们如何使用在同一台机器上运行的本地浏览器来访问此地址。即使在同一网络上运行的其他客户端也可以访问服务器

据我所知,localhost127.0.0.1 IP可以在同一网络中的相同或其他机器上访问。

但是如果我们像Heroku一样部署到云而不添加像app.listen(port, IP_ADDRESS)这样的IP选项而是使用app.listen(port),那么唯一不同的是PORT编号(process.env.PORT),但IP仍然是localhost。那么来自其他网络的客户端如何访问服务器?

答案

您可以在路由器上使用端口转发将router_ip:port转发到local_ip:port,允许您在外部访问它

另一答案

仅仅因为您通过localhost连接到本地实例并不意味着它也不会通过IP公开。 Localhost基本上表示不解析任何IP,只需循环回这台计算机,但您的节点服务器仍将部署到实际的IP地址。尝试查找计算机的IP地址并通过而不是localhost连接到节点服务器,您将发现您仍然可以与服务器通信。

部署到云服务或任何其他托管服务时,您将获得与该实例关联的IP地址,该IP地址将用于解析。特别是Heroku会为你设置很多域空间和端口转发过程。

以上是关于如果应用程序正在侦听“localhost”,我们如何访问网络外的节点服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何测试网络管道服务是不是正在侦听

Yourkit UI 抛出“没有在 localhost 上运行的应用程序配置为侦听端口的分析器代理”异常

System.Net.HttpListenerException:无法侦听前缀“http://localhost:8080”

Owin 自主机 - 无法侦听前缀“http://localhost:12345/”,因为它与机器上的现有注册冲突

如何为 Android 电视应用程序及其侦听器创建导航菜单抽屉

Firestore:如果两个侦听器监听相同的查询 firebase 维护两个不同的查询快照?