【问题标题】:How to display the webapp which is running in local host of a server in my laptop's browser如何在笔记本电脑的浏览器中显示在服务器本地主机上运行的 webapp
【发布时间】:2019-10-14 13:39:48
【问题描述】:

我不得不说,我不是网络开发人员,我对网络应用程序的工作原理一无所知。

我已通过 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

现在,是否可以通过我的个人计算机上的浏览器与之交互?

【问题讨论】:

  • 这取决于您托管应用程序的服务器上的防火墙设置。我注意到服务器是我几年前毕业的KU。根据部门的不同,我通常能够访问 KU 网络中学校计算集群上的大多数端口。尝试使用ipconfig获取您的IP地址并输入http://[your IP]:5000进行连接

标签: python-3.x flask flask-restful


【解决方案1】:

您可以在 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/

【讨论】:

    【解决方案2】:

    当使用flask run 启动一个Flask 开发服务器时,它默认开始监听5000 端口上的环回接口。通过添加--host=0.0.0.0,您可以让烧瓶服务器监听主机的所有网络接口。因此,如果您对主机具有完全的网络访问权限,您应该能够将您的浏览器指向它。使用您问题中给出的地址,只需在浏览器的地址栏中输入 http://ku.edu:5000 即可与您的 Flask Web 应用程序进行交互。

    但是,出于安全原因,不建议这样做!由于服务器正在侦听每个网络接口,因此任何可以通过网络访问主机的人都可以访问该应用程序。您在开发模式下使用 Flask 开发服务器运行应用程序,这对于生产使用来说是不安全的。

    相反,我建议使用 ssh 端口转发 来访问烧瓶开发服务器,绑定到远程主机的环回接口:

    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,这是您的烧瓶服务器正在侦听的位置。但是——与上述解决方案相比——只有远程主机上的本地或 ssh 用户才能访问您的应用程序。

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 2018-08-13
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多