node.js - 在远程服务器上开发 Node.js / React 应用程序,并在本地访问它
问题描述
我想远程处理(或开发)一个 React 应用程序,但仍然在本地浏览器中检查结果。使用npm
, 在远程服务器上,我启动
npm start
为了启动应用程序。
它返回
Server running at http://localhost:1234
machineIP:1234
然后,在本地,我可以在我的浏览器中machineIP
通过远程主机的 IP 地址访问该应用程序。这看起来很方便,但我不想将我的应用程序暴露给全世界。
我真的很惊讶 1234 端口突然对任何人开放。也许这是我在 Ubuntu 19.04 下远程服务器的配置。
我看到了两个潜在的方向:
- 可以防止1234端口对外开放吗?然后在(现在是私有的)端口 1234 上打开从我的本地主机到远程主机的 SSH 隧道?
- 我可以使用密码限制对应用程序的访问,但是每次重新启动应用程序后(因为它正在服务器上进行修改),我可能每次都必须登录。
当您的应用程序在远程服务器上运行(并不断重新启动)时,您将如何继续私下检查您的应用程序(在本地浏览器中)?
解决方案
首先,您可能想检查该远程服务器上是否运行了防火墙。如果没有,那么ufw
可能是一个不错的选择。确保sudo ufw allow 22/tcp
或sudo 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
在浏览器中查看您的应用程序。