首页 > 解决方案 > 在远程服务器上开发 Node.js / React 应用程序,并在本地访问它

问题描述

我想远程处理(或开发)一个 React 应用程序,但仍然在本地浏览器中检查结果。使用npm, 在远程服务器上,我启动

npm start

为了启动应用程序。

它返回

Server running at http://localhost:1234 

machineIP:1234然后,在本地,我可以在我的浏览器中machineIP通过远程主机的 IP 地址访问该应用程序。这看起来很方便,但我不想将我的应用程序暴露给全世界。

我真的很惊讶 1234 端口突然对任何人开放。也许这是我在 Ubuntu 19.04 下远程服务器的配置。

我看到了两个潜在的方向:

  1. 可以防止1234端口对外开放吗?然后在(现在是私有的)端口 1234 上打开从我的本地主机到远程主机的 SSH 隧道?
  2. 我可以使用密码限制对应用程序的访问,但是每次重新启动应用程序后(因为它正在服务器上进行修改),我可能每次都必须登录。

当您的应用程序在远程服务器上运行(并不断重新启动)时,您将如何继续私下检查您的应用程序(在本地浏览器中)?

标签: node.js

解决方案


首先,您可能想检查该远程服务器上是否运行了防火墙。如果没有,那么ufw可能是一个不错的选择。确保sudo ufw allow 22/tcpsudo ufw allow OpenSSH之前sudo ufw enable,您仍然可以通过 SSH 连接到服务器。您还可以使用 选择允许从您自己的本地 IP 连接到端口 1234 sudo ufw allow from localIP to any port 1234,其中localIP是本地计算机的公共 IP 地址。然后,您可以简单地machineIP:1234在浏览器中查看您的应用程序。

如果您不想或无法将端口 1234 开放给您自己的 IP,但仍然具有 SSH 访问权限,那么您也可以使用ssh -L 1234:machineIP:1234 machineIP. 然后,您可以localhost:1234在浏览器中查看您的应用程序。


推荐阅读