如何让 NodeJs 项目在端口 3000 上可公开访问?

How do I make a NodeJs project publicly accessible on port 3000?

我在基于阿里云的 Ubuntu 服务器上有一个 NodeJs/Express 项目。

当我 运行 使用 curl localhost:3000curl 127.0.0.1:3000 进行项目和访问时,它有效!

当我使用 IP public 访问时,例如curl 192.x.x.x:3000 它不起作用,即使我在某些代码中编辑了 Express 项目中的配置:server.listen(3000,"0.0.0.0") OR server.listen("3000","192.x.x.x")

仅供参考,我在此服务器上安装了 Apache。当我用IPpublic上网时没问题。 我该怎么做才能解决这个问题?提前致谢。

PS:192.x.x.x 是我的 IP public,它可以通过 Apache 项目访问

您可以在本地访问您的服务 - 但不能公开访问这一事实可能意味着 2 种可能的配置:

  1. 服务器运行你的应用程序阻塞了3000端口

  2. 您没有配置服务器将特定路由的80端口映射到3000端口

很可能您的服务器配置中最重要的部分尚未完成。

您必须配置安全基础并创建允许端口 3000 的入站规则。遵循此指南。

https://www.alibabacloud.com/help/doc-detail/25471.htm

确保将 TCP 流量或所有来源的所有流量作为入站规则允许到端口 3000。

发出以下命令为 TCP 流量打开端口 3000。

sudo ufw 允许 3000/tcp