如何将我的节点服务器从本地主机部署到互联网

How to deploy my node server to the internet from local host

我有一台 ubuntu18 台机器,我在其中开发了一个网络应用程序。

Web 应用程序有一个前端(HTML、CSS 和 Javascript)和一个后端(Nodejs、python、java).前端和后端通过 websocket 进行通信。后端由两台服务器组成,一台运行在 Nodejs 上,另一台运行在 java.

当我在本地主机上测试应用程序时,一切正常。我想使用我的 public IP 地址让互联网上的任何人都可以访问此应用程序。我现在没有域名。

如何让我的 ubuntu 机器上的后端服务器 运行 可用于来自世界任何地方的 websocket 连接?

由于我是该领域的新手,因此非常感谢您的详细解释。

有不同的 npm 模块可用,以提供域名并最终提供从外部世界访问本地服务器的能力。话虽如此,如果服务器停止在您的本地,那么您可能必须再次生成一个新域名并将其共享。还有其他方法可以缓解这种情况。

但是我从你的问题中了解到的是this is the answer you are looking for.。希望这有帮助。

要在您的计算机上本地公开服务器 运行,您需要允许在正确的端口上访问您的网络,这意味着让您的路由器知道在接收到某个端口的网络流量时要做什么,这很可能默认关闭。

虽然这可能不是大型项目最安全的解决方案,但它通常是您托管大多数服务器的方式,包括 HTTP 服务器、游戏服务器等,为了实现这一点,您必须 端口转发你的路由器。

端口转发

要让您的路由器在收到定向到特定端口的流量时知道如何操作,您必须通过网关访问其配置。建议在线查找您的特定路由器型号以获得快速简便的指南,但通常情况是这样的:

  1. 打开浏览器并导航到路由器的网关以访问配置页面(通常为 192.168.1.1)。
  2. 使用管理员凭据登录。如果您从未这样做过,它们可能是默认凭据,google 要查找的路由器型号。 This list may help you.
  3. 导航到名为 端口转发 的部分,通常它位于高级配置或防火墙部分下方。
  4. 您想根据您的服务器侦听的端口和您机器的本地 IPv4 地址设置新的转发规则,例如,如果您的服务器侦听端口 1337 并且您的本地 IP 地址是 192.168.1.120,您应该同时设置 TCP 和 UDP 规则,这实际上让您的路由器知道进入该特定端口的任何流量都将被重定向到您的机器(此步骤可能因路由器制造商的不同而有很大差异)
  5. 最后但同样重要的是,您的本地机器应该 运行 在静态 IP (192.168.1.XXX) 上,以确保它不会自动更改。要在 Ubuntu / 其他发行版中执行此操作,请参阅 this guide

端口转发路由器后,服务器应该可以通过您的外部 IP 地址(Use this to easily find out what your external IP is 和您定义的端口访问,例如:264.186.45.7:1337.

自定义主机名

要使用自定义 DNS 解析器以便为您的服务器定制 URL,您可以使用 noip 等免费工具,这些工具为您的服务器提供了很好的免费主机名选择。您所需要的只是设置一个主机名并下载他们的客户端,该客户端会自动将您所有服务器的流量重新路由到该外部 URL,因此您可能有一个不错的主机名,例如 awesome-server.ddns.net.

结论

这不是一个非常深入的指南,只是简要介绍了将本地服务器暴露给外界所需的步骤,因此对于每个步骤都需要进行一些研究。如果您需要任何进一步的帮助或想指出一些问题,请随时编辑答案或在下方发表评论。

你可以做的一件不需要从路由器转发端口的事情是隧道 其工作方式相同

尝试使用 ngrok(https://ngrok.com/) 它不需要端口转发,下载 ngrok 和 运行 ngrok.exe tcp 5001 5001 是端口,tcp 是协议(http, tcp, ..),要在线连接它,请使用类似于 4.tcp.ngrok.io:4869 的“转发”,它将转发到本地主机端口 5001

注意:您可以在没有帐户的情况下使用它,但它会每 7 小时过期一次,查看要使用的帐户阅读 https://dashboard.ngrok.com/auth/your-authtoken(创建帐户后)