Ollama + Cloudflare:打造你的個人AI雲端API,讓本地模型通外網
2025-06-22 16:29:01 未分類

你是否曾想過,在自己電腦上運行的強大 AI 模型,不僅能自己使用,還能像 OpenAI API 一樣,提供給外部的雲端服務呼叫?最近一篇技術文章詳細介紹了如何將本地運行的 Ollama 模型,透過 Cloudflare Tunnel 對外開放,讓 Cursor 這類雲端編輯器也能取用。
這篇文章將深入解析其背後的原理,讓你明白這套組合拳是如何打通「本地」與「雲端」的任督二脈。
核心問題:一座無法從外部訪問的孤島
要理解整個架構,首先要明白問題出在哪裡。
1. 本地 AI 伺服器 (Ollama):一座強大的私人島嶼
當你在電腦上安裝並運行 Ollama 後,它就像在你的電腦內部建立了一座功能強大的「私人島嶼」。
- Ollama 的角色:一個讓你輕鬆下載、管理並運行大型語言模型(如 DeepSeek, Llama 3)的工具。
- 運行方式:一旦啟動模型,Ollama 會在你的電腦上開啟一個本地伺服器。
- 關鍵地址:這個伺服器的地址是
http://localhost:11434
。localhost
是個特殊域名,永遠指向「本機」,而11434
則是它的門牌號(Port)。
這個地址最大的限制是:只有你自己這台電腦能訪問它。它完全與網際網路隔離,就像一座在地圖上找不到的私人島嶼,外人無法直接登島。
2. 雲端服務 (Cursor):一位遠方的訪客
像 Cursor 這樣的雲端 AI 編輯器,它的核心運作在雲端伺服器上。當你向它提問時,它的後端伺服器需要去呼叫一個 AI 模型 API。
- 問題點:如果你告訴 Cursor 的伺服器:「請去
http://localhost:11434
找 AI 模型」,它會一頭霧水。因為對雲端伺服器來說,localhost
指的是它自己,而不是你遠在天邊的個人電腦。它根本找不到你的那座「私人島嶼」。
解決方案:Cloudflare Tunnel - 一座神奇的跨海大橋
為了解決這個問題,我們需要一座橋樑,而 Cloudflare Tunnel
正是扮演這個角色的最佳選擇。
- Cloudflare Tunnel 的角色:它不是讓外部流量「打進來」,而是讓你本地的服務「主動、安全地連出去」,並建立一個公開的入口。
運作原理
整個過程就像是你在你的私人島嶼上,建立了一個通往世界的秘密通道:
-
建立通道 (從內向外):你在你的電腦上運行 Cloudflare 的工具
cloudflared
。它會主動向 Cloudflare 的全球網路發起一個加密的、持續的連線。這就像島主主動挖了一條通往公海的安全隧道。 -
獲得公開地址:Cloudflare 收到這個連線後,會給你一個公開的網址,例如
https://some-random-name.trycloudflare.com
。這個網址就像是隧道的「公海入口」,全世界都可以看到並訪問它。 -
請求轉發:當外部服務(如 Cursor)向這個公開網址發送請求時: a. 請求首先到達 Cloudflare 的網路。 b. Cloudflare 透過先前建立好的安全通道,將請求精準地轉發到你電腦上運行的
cloudflared
程式。 c.cloudflared
再將請求轉發給你指定的本地目標,也就是http://localhost:11434
(Ollama)。 -
原路返回:Ollama 處理完請求後,將回應透過原通道返回,最終交到 Cursor 手上。
一個關鍵細節 文章中提到
--http-host-header="localhost:11434"
參數至關重要。這是因為 Ollama 伺服器很謹慎,它會檢查訪客的「名片」(Host Header)。如果名片上寫的不是localhost
,它會拒絕服務。這個參數的作用就是讓 Cloudflare 在轉發時,幫忙偽造一張寫著localhost:11434
的名片,從而順利通過 Ollama 的安全檢查。
流程總結
整個請求的旅程如下圖所示:
graph LR
subgraph 雲端 (Public Internet)
A[Cursor 後端服務] --> B{Cloudflare 公開網址};
end
subgraph 你的電腦 (Local Machine)
D[Ollama 伺服器 @ localhost:11434]
end
B -- 安全通道 (Tunnel) --> C[cloudflared 工具];
C -- 本地轉發 --> D;
D -- 回應 --> C;
C -- 回應 --> B;
B -- 回應 --> A;
style D fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#9cf,stroke:#333,stroke-width:2px
如何實作?動手設定你的個人 AI 通道
想要親手打造這套系統嗎?整個過程主要分為兩大步驟:設定本地 AI 環境,以及建立雲端通道。以下是根據參考文章整理的簡化流程(以 macOS 和 Homebrew 為例):
步驟一:安裝 Ollama 並運行本地模型
-
安裝 Ollama: 打開終端機,使用 Homebrew 安裝 Ollama。
brew install ollama
如果找不到 Homebrew , 打開終端機,執行以下指令
echo export PATH=$PATH:/opt/homebrew/bin >> ~/.zshrc
連結: Fixing zsh command not found: brew? (installing Homebrew)
如果尚未安裝 Homebrew , 打開終端機,執行以下指令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
連結: Homebrew
-
下載並運行 AI 模型: 以 DeepSeek 模型為例,從 Ollama Hub 下載模型。
ollama pull deepseek-r1
-
驗證本地 API: 運行模型後,Ollama 會在
http://localhost:11434
啟動一個 API 服務。你可以用curl
指令測試它是否正常運作。curl http://localhost:11434/v1/chat/completions -d '{ "model": "deepseek-r1", "messages": [{"role": "user", "content": "你好嗎?"}] }'
如果能收到 AI 的回覆,代表第一步成功了!
步驟二:設定 Cloudflare Tunnel 打通外網
-
安裝 Cloudflare CLI 工具 (
cloudflared
):brew install cloudflared
注意: 可使用
cloudflared --version
指令驗證是否已安裝。 -
啟動通道: 執行以下指令,將你本地的
11434
連接埠暴露到外網。cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434"
注意:
--http-host-header="localhost:11434"
這個參數非常重要,它能避免 Ollama 因為安全檢查而拒絕來自通道的請求。 -
取得公開網址: 指令成功執行後,終端機會顯示一個類似
https://xxxxxxxxxx.trycloudflare.com
的公開網址。這就是你個人 AI 的雲端 API 入口!
現在,你就可以將這個公開網址填入任何支援自訂 API 端點的服務中(例如 Cursor),開始享受在你個人電腦上運行的 AI 算力了。
Roo Code 設定方式
- API 供應商 = OpenAI Compatible
- 基礎 URL =
https://xxxxxxxxxx.trycloudflare.com
的公開網址 - 金鑰 = 隨便輸入
- 模型 = 本地 Ollama 中運行的模型名稱完全一致,例如 qwen3:14b
結論
透過 Ollama
+ Cloudflare Tunnel
的組合,我們巧妙地解決了本地服務與雲端服務之間的網路隔離問題。這不僅讓我們能以極低成本(甚至免費)使用強大的本地 AI 模型,同時也兼顧了數據隱私和客製化彈性。這項技術為開發者打開了一扇新的大門,讓個人電腦也能成為強大的雲端服務節點。