在远程服务器上开发Node.js / React应用程序,并在本地访问它

时间:2020-02-29 22:48:23

标签: node.js

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

npm start

以启动应用程序。

返回

Server running at http://localhost:1234 

然后,在本地,我可以在浏览器中访问地址为machineIP:1234的应用程序,其中machineIP是远程主机的IP地址。这看起来很方便,但我不想将我的应用程序向全世界公开。

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

我看到两个潜在的方向:

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

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

2 个答案:

答案 0 :(得分:1)

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

如果您不想或无法打开端口1234到自己的IP,但是仍然具有SSH访问权限,那么您也可以使用ssh -L 1234:machineIP:1234 machineIP设置SSH隧道。然后,您可以通过在浏览器中转到localhost:1234来查看您的应用程序。

答案 1 :(得分:1)

我经常与节点合作并做出反应,并且我是为我解决此问题的工具。 它是自托管且免费的,它使用ssh,但可以帮助您使用UI

https://github.com/vicjicaman/tunnel-tool

如果您需要任何帮助,请告诉我!