目錄
概要
1. 環境與前置條件
2. 安裝與配置 Flask
2.1 創建虛擬環境
2.2 安裝 Flask
3. 安裝與配置 Ngrok
3.1 下載 Ngrok
3.2 注冊并獲取 Authtoken
4. 在 PyCharm 中創建 Flask 項目
5. 運行本地 Flask 服務
6. 啟動 Ngrok 隧道并獲取公網地址
7. 完整示例代碼匯總
8. 常見問題與排查
9. 結語
概要
本文提供一種通過Flask框架與Ngrok工具實現本地開發項目(基于PyCharm)公網訪問的輕量化方案。通過整合Python后端服務配置、Ngrok隧道映射及安全認證流程,開發者可快速生成臨時外網域名,實現遠程調試與接口測試。本方案適用于原型開發、跨設備協作及API接口驗證場景。
1. 環境與前置條件
-
操作系統:Windows/macOS/Linux 均可。
-
Python 版本:≥3.6。3.11已測試有效。
-
PyCharm:已安裝并能正常運行。
-
網絡:能訪問 ngrok.com 及 Python 包索引。
2. 安裝與配置 Flask
2.1 創建虛擬環境
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
此步驟可隔離依賴,避免全局污染。
2.2 安裝 Flask
pip install Flask
根據 Flask 官方文檔,Flask 是輕量級微框架,可快速上手并支持生產部署ngrok
3. 安裝與配置 Ngrok
3.1 下載 Ngrok
從官方頁面下載對應平臺的可執行文件并解壓至任意目錄(如 /usr/local/bin
)Download ngrok
3.2 注冊并獲取 Authtoken
-
訪問 https://ngrok.com 并注冊免費賬號。
-
登錄控制面板,復制 Authtoken。
-
在終端中執行:
ngrok config add-authtoken <YOUR_AUTHTOKEN>
此命令會將 Authtoken 寫入 ~/.ngrok2/ngrok.yml
,用于后續隧道授權
4. 在 PyCharm 中創建 Flask 項目
-
新建項目:File → New Project → Pure Python,選擇上述虛擬環境。
-
添加依賴:在 PyCharm 的 Terminal 中執行
pip install Flask
。 -
項目結構:
my_flask_app/
│
├── app.py
├── requirements.txt
└── venv/
-
requirements.txt 內容:
Flask
5. 運行本地 Flask 服務
在 app.py
中編寫最簡示例:
from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hello, Flask + Ngrok!'if __name__ == '__main__':app.run(port=5000)
-
port=5000
為 Flask 默認端口,可自定義。
?在Ngork界面運行以下命令,將本地5000端口映射至公網:
bash
ngrok http 5000
Ngrok將生成
Forwarding
字段(如https://abcd.ngrok.io
),即外網訪問地址。 -
通過 PyCharm Run 配置或在終端執行
python app.py
啟動服務
6. 啟動 Ngrok 隧道并獲取公網地址
在新終端(仍在虛擬環境或可執行 ngrok)中運行:
ngrok http 5000
-
此命令將在控制臺輸出兩個公網地址(HTTP 和 HTTPS),形如
https://xxxxxx.ngrok.io
。 -
Ngrok 會將外部請求安全轉發至本地 5000 端口
7. 完整示例代碼匯總
from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hello, Flask + Ngrok!'if __name__ == '__main__':# 開發模式下可打開 debugapp.run(host='0.0.0.0', port=5000)
Flask>=2.0
8. 常見問題與排查
問題 | 排查思路 |
---|---|
Ngrok 報錯 ERR_NGROK_6022 | 重置 Authtoken:ngrok config add-authtoken ... ;檢查網絡連通性 |
訪問超時或 502 | 確保 Flask 正在運行且端口一致;防火墻未阻擋;使用 app.run(host='0.0.0.0') 。 |
地址隨機變更 | 免費版地址非固定,可升級付費或在腳本中調用 Ngrok API 申請穩定子域 |
9. 結語
通過上述步驟,可在本地 PyCharm 環境中快速搭建 Flask 服務,并借助 Ngrok 實現臨時公網訪問,適用于演示、測試及遠程調試場景。后續可集成 CI/CD、Docker 或自定義子域,進一步完善部署流程。
本思路實戰項目記錄:
搭建 Stable Diffusion 圖像生成系統并通過 Ngrok 暴露到公網(實現本地系統網絡訪問)——項目記錄 -CSDN博客
?擴散部署:
深度學習項目記錄·Stable Diffusion從零搭建、復現筆記-CSDN博客
Stable Diffusion+Pyqt5: 實現圖像生成與管理界面(帶保存 + 歷史記錄 + 刪除功能)——我的實驗記錄(結尾附系統效果圖)-CSDN博客
SD + Contronet,擴散模型V1.5+約束條件后續優化:保存Canny邊緣圖,便于視覺理解——stable diffusion項目學習筆記-CSDN博客