相关推荐recommended
如何使用vscode启动Flask并实现无公网IP远程访问内网服务
作者:mmseoamin日期:2024-04-27

文章目录

    • 1. 安装部署Flask
    • 2. 安装Cpolar内网穿透
    • 3. 配置Flask的web界面公网访问地址
    • 4. 公网远程访问Flask的web界面

      本篇文章主要讲解如何在本地安装Flask,以及如何将其web界面发布到公网进行远程访问。

      Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。

      另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

      轻量级web开发框架:Flask本地部署及公网远程访问

      1. 安装部署Flask

      本篇文章代码使用 Python3 运行

      安装环境:需要在电脑上安装 Python3 和 pip3。建议安装最新版本

      检查是否有安装了pip的可用Python,查看Python和pip版本:

      C:> py --version
      Python 3.N.N
      C:> py -m pip --version
      pip X.Y.Z from ... (python 3.N.N)
      

      使用pip安装和更新:

      $ pip install -U Flask
      

      创建环境:

      conda create -n FLASK python=3.10
      

      激活环境:

      conda activate FLASK
      

      创建项目目录:

      mkdir FLASK
      

      进入到创建的目录:

      cd FLASK
      

      在当前目录启动VS Code:

      code .
      

      在VS Code里 FLASK下新建一个文件,名字为 app.py

      粘贴下面命令,并保存

      # save this as app.py
      from flask import Flask
      app = Flask(__name__)
      @app.route("/")
      def hello():
          return "Hello, World!"
      

      如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120164830537,第1张

      在下方TERMINAL里输入ls查看目录位置

      如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120165319864,第2张

      打开一个新的命令

      输入cd空格加上刚才vs code的目录,例如

      cd C:\Users\wang\dev\python\flask
      

      输入ls查看目录

      如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120165938767,第3张

      启动Flask

      flask run
      

      打开一个新的浏览器,输入http://127.0.0.1:5000/,进入到 HelloWorld的web界面。

      如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120170348720,第4张

      2. 安装Cpolar内网穿透

      上面在本地成功部署了Flask,并局域网访问成功,下面我们安装Cpolar内网穿透工具,通过cpolar 转发本地端口映射的http公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装步骤:

      cpolar官网地址: https://www.cpolar.com

      • 使用一键脚本安装命令
        curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
        
        • 向系统添加服务
          sudo systemctl enable cpolar
          
          • 启动cpolar服务
            sudo systemctl start cpolar
            

            cpolar安装成功后,在外部浏览器上访问9200端口 即:【http://局域网ip:9200】,使用cpolar账号登录(如没有账号,可以点击下面免费注册),登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可

            如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20230831171159175,第5张

            3. 配置Flask的web界面公网访问地址

            点击左侧仪表盘的隧道管理——创建隧道,创建一个Flask的cpolar公网地址隧道:

            • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
            • 协议:选择http
            • 本地地址:5000 (局域网访问的端口)
            • 域名类型:免费选择随机域名
            • 地区:选择China Top
            • 点击创建

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171035750,第6张

              隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171152780,第7张

              4. 公网远程访问Flask的web界面

              使用上面的cpolar https公网地址在任意设备的浏览器访问,即可成功看到Flask的web界面,这样一个公网地址且可以远程访问就创建好了,无需自己购买云服务器,即可发布到公网访问。

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171325137,第8张

              由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。

              我一般会使用固定二级子域名,因为我希望将网址发送给开发人员分工合作,小型团队在短时间内就可以使用固定的公网地址完成功能丰富的中小型网站或Web服务的实现。它是一个固定、易记的公网地址(例如:Flask.cpolar.cn)因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】

              注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

              登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171616938,第9张

              保留成功后复制保留成功的二级子域名的名称

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171639329,第10张

              返回登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

              如何使用vscode启动Flask并实现无公网IP远程访问内网服务,image-20231120171707486,第11张

              修改隧道信息,将保留成功的二级子域名配置到隧道中