如何在笔记本电脑的浏览器中显示服务器本地主机中 运行 的 webapp
How to display the webapp which is running in local host of a server in my laptop's browser
我不得不说,我不是 Web 开发人员,我对 Web 应用程序的工作原理一无所知。
我已经通过 ssh 连接到远程服务器,从 github 和 运行 下载了一个项目(Python,flask 应用程序):
zwlayer@personalcomputer $ ssh myusername@ku.edu
myusername@ku.edu $ git clone https://github.com/.../project
myusername@ku.edu $ cd project
myusername@ku.edu $ env FLASK_APP=app.py FLASK_ENV=development env USE_CUDA=False flask run --host=0.0.0.0
现在,是否可以通过我的个人计算机上的浏览器与之交互?
您可以在 SSH 中使用本地端口转发。
使用命令 SSH 连接到服务器:
ssh -L 5000:127.0.0.1:5000 myusername@ku.edu
这会将您主机上的端口 5000 转发到服务器上的端口 5000
运行 应用命令:
flask run --host=127.0.0.1 --port=5000
(主机和端口选项是为了明确起见)
您应该可以通过在浏览器中输入 http://127.0.0.1:5000 来访问该应用程序。
在 https://www.booleanworld.com/guide-ssh-port-forwarding-tunnelling/
阅读更多内容
当使用 flask run
启动 Flask 开发服务器时,它默认开始侦听端口 5000 上的环回接口。通过添加 --host=0.0.0.0
你可以让 flask 服务器监听主机的所有网络接口。因此,如果您对主机具有完整的网络访问权限,您应该能够将浏览器指向它。使用您问题中给出的地址,只需在浏览器的地址栏中输入 http://ku.edu:5000
即可与您的 Flask 网络应用程序进行交互。
但是,出于安全原因,不推荐这样做!由于服务器正在侦听每个网络接口,任何可以访问主机的网络的人都可以访问该应用程序。您是 运行 在开发模式下使用 Flask 开发服务器的应用程序,这对于生产使用来说是不安全的。
相反,我建议使用ssh端口转发访问flask开发服务器,绑定到远程主机的环回接口:
zwlayer@personalcomputer $ ssh -L 5000:localhost:5000 myusername@ku.edu
myusername@ku.edu $ git clone https://github.com/.../project
myusername@ku.edu $ cd project
myusername@ku.edu $ env FLASK_APP=app.py FLASK_ENV=development env USE_CUDA=False flask run
这样,ssh 通过 ssh 隧道将指向本地计算机端口 5000 的所有流量转发到远程主机的 localhost:5000
,即远程主机本身的端口 5000。
因此,您可以将浏览器指向 http://localhost:5000
,它会转发到远程服务器的 localhost:5000
,这是您的 Flask 服务器正在侦听的地方。但是——与上述解决方案相反——只有远程主机上的本地或 ssh 用户才能访问您的应用程序。
我不得不说,我不是 Web 开发人员,我对 Web 应用程序的工作原理一无所知。
我已经通过 ssh 连接到远程服务器,从 github 和 运行 下载了一个项目(Python,flask 应用程序):
zwlayer@personalcomputer $ ssh myusername@ku.edu
myusername@ku.edu $ git clone https://github.com/.../project
myusername@ku.edu $ cd project
myusername@ku.edu $ env FLASK_APP=app.py FLASK_ENV=development env USE_CUDA=False flask run --host=0.0.0.0
现在,是否可以通过我的个人计算机上的浏览器与之交互?
您可以在 SSH 中使用本地端口转发。
使用命令 SSH 连接到服务器:
ssh -L 5000:127.0.0.1:5000 myusername@ku.edu
这会将您主机上的端口 5000 转发到服务器上的端口 5000
运行 应用命令:
flask run --host=127.0.0.1 --port=5000
(主机和端口选项是为了明确起见)
您应该可以通过在浏览器中输入 http://127.0.0.1:5000 来访问该应用程序。
在 https://www.booleanworld.com/guide-ssh-port-forwarding-tunnelling/
阅读更多内容当使用 flask run
启动 Flask 开发服务器时,它默认开始侦听端口 5000 上的环回接口。通过添加 --host=0.0.0.0
你可以让 flask 服务器监听主机的所有网络接口。因此,如果您对主机具有完整的网络访问权限,您应该能够将浏览器指向它。使用您问题中给出的地址,只需在浏览器的地址栏中输入 http://ku.edu:5000
即可与您的 Flask 网络应用程序进行交互。
但是,出于安全原因,不推荐这样做!由于服务器正在侦听每个网络接口,任何可以访问主机的网络的人都可以访问该应用程序。您是 运行 在开发模式下使用 Flask 开发服务器的应用程序,这对于生产使用来说是不安全的。
相反,我建议使用ssh端口转发访问flask开发服务器,绑定到远程主机的环回接口:
zwlayer@personalcomputer $ ssh -L 5000:localhost:5000 myusername@ku.edu
myusername@ku.edu $ git clone https://github.com/.../project
myusername@ku.edu $ cd project
myusername@ku.edu $ env FLASK_APP=app.py FLASK_ENV=development env USE_CUDA=False flask run
这样,ssh 通过 ssh 隧道将指向本地计算机端口 5000 的所有流量转发到远程主机的 localhost:5000
,即远程主机本身的端口 5000。
因此,您可以将浏览器指向 http://localhost:5000
,它会转发到远程服务器的 localhost:5000
,这是您的 Flask 服务器正在侦听的地方。但是——与上述解决方案相反——只有远程主机上的本地或 ssh 用户才能访问您的应用程序。