Ollama + Cloudflare:打造你的個人AI雲端API,讓本地模型通外網

2025-06-22 16:29:01 Category Icon 未分類

Ollama + Cloudflare:打造你的個人AI雲端API,讓本地模型通外網

你是否曾想過,在自己電腦上運行的強大 AI 模型,不僅能自己使用,還能像 OpenAI API 一樣,提供給外部的雲端服務呼叫?最近一篇技術文章詳細介紹了如何將本地運行的 Ollama 模型,透過 Cloudflare Tunnel 對外開放,讓 Cursor 這類雲端編輯器也能取用。

這篇文章將深入解析其背後的原理,讓你明白這套組合拳是如何打通「本地」與「雲端」的任督二脈。

核心問題:一座無法從外部訪問的孤島

要理解整個架構,首先要明白問題出在哪裡。

1. 本地 AI 伺服器 (Ollama):一座強大的私人島嶼

當你在電腦上安裝並運行 Ollama 後,它就像在你的電腦內部建立了一座功能強大的「私人島嶼」。

  • Ollama 的角色:一個讓你輕鬆下載、管理並運行大型語言模型(如 DeepSeek, Llama 3)的工具。
  • 運行方式:一旦啟動模型,Ollama 會在你的電腦上開啟一個本地伺服器。
  • 關鍵地址:這個伺服器的地址是 http://localhost:11434localhost 是個特殊域名,永遠指向「本機」,而 11434 則是它的門牌號(Port)。

這個地址最大的限制是:只有你自己這台電腦能訪問它。它完全與網際網路隔離,就像一座在地圖上找不到的私人島嶼,外人無法直接登島。

2. 雲端服務 (Cursor):一位遠方的訪客

像 Cursor 這樣的雲端 AI 編輯器,它的核心運作在雲端伺服器上。當你向它提問時,它的後端伺服器需要去呼叫一個 AI 模型 API。

  • 問題點:如果你告訴 Cursor 的伺服器:「請去 http://localhost:11434 找 AI 模型」,它會一頭霧水。因為對雲端伺服器來說,localhost 指的是它自己,而不是你遠在天邊的個人電腦。它根本找不到你的那座「私人島嶼」。

解決方案:Cloudflare Tunnel - 一座神奇的跨海大橋

為了解決這個問題,我們需要一座橋樑,而 Cloudflare Tunnel 正是扮演這個角色的最佳選擇。

  • Cloudflare Tunnel 的角色:它不是讓外部流量「打進來」,而是讓你本地的服務「主動、安全地連出去」,並建立一個公開的入口。

運作原理

整個過程就像是你在你的私人島嶼上,建立了一個通往世界的秘密通道:

  1. 建立通道 (從內向外):你在你的電腦上運行 Cloudflare 的工具 cloudflared。它會主動向 Cloudflare 的全球網路發起一個加密的、持續的連線。這就像島主主動挖了一條通往公海的安全隧道。

  2. 獲得公開地址:Cloudflare 收到這個連線後,會給你一個公開的網址,例如 https://some-random-name.trycloudflare.com。這個網址就像是隧道的「公海入口」,全世界都可以看到並訪問它。

  3. 請求轉發:當外部服務(如 Cursor)向這個公開網址發送請求時: a. 請求首先到達 Cloudflare 的網路。 b. Cloudflare 透過先前建立好的安全通道,將請求精準地轉發到你電腦上運行的 cloudflared 程式。 c. cloudflared 再將請求轉發給你指定的本地目標,也就是 http://localhost:11434 (Ollama)。

  4. 原路返回: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 並運行本地模型

  1. 安裝 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

  2. 下載並運行 AI 模型: 以 DeepSeek 模型為例,從 Ollama Hub 下載模型。

    ollama pull deepseek-r1
  3. 驗證本地 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 打通外網

  1. 安裝 Cloudflare CLI 工具 (cloudflared):

    brew install cloudflared

    注意: 可使用 cloudflared --version 指令驗證是否已安裝。

  2. 啟動通道: 執行以下指令,將你本地的 11434 連接埠暴露到外網。

    cloudflared tunnel --url http://localhost:11434 --http-host-header="localhost:11434"

    注意: --http-host-header="localhost:11434" 這個參數非常重要,它能避免 Ollama 因為安全檢查而拒絕來自通道的請求。

  3. 取得公開網址: 指令成功執行後,終端機會顯示一個類似 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 模型,同時也兼顧了數據隱私和客製化彈性。這項技術為開發者打開了一扇新的大門,讓個人電腦也能成為強大的雲端服務節點。

參考資料