跳到正文
cloudflare blog· Nikita Cano·· 3 小時前精選AI 評分67

Protected Quick Tunnels:簡易無帳號驗證,助你快速分享開發專案

Protected Quick Tunnels: simple accountless authentication for your next dev project

AI 導讀

Protected Quick Tunnels 是 Cloudflare 的本地隧道工具,最新 2026.9.3 版加入 --allowed-mail 引數,允許開發者在不註冊帳號的情況下,透過郵件白名單限制誰能存取本地服務。

推薦理由

此更新讓本地開發環境能通過一次命令生成受限訪問的公網 URL,並支援通過郵箱白名單實現安全共享,降低了部署門檻。

正文 · AI 翻譯

我們於 2021 年推出 Quick Tunnels ,為開發者提供一個簡單的方式,分享他們在本機開發環境中執行的最新服務、應用程式或專案。自此以來,許多事已改變,但核心用例仍然相同。

你的編碼代理剛完成此功能。開發伺服器已在 localhost:5173 上啟動,代理在你還未問之前就提供讓你在手機上試用。只需執行一條命令,即可得到一個連結:

該命令啟動一個 Quick Tunnel。cloudflared,Cloudflare 的輕量級聯結器,將你的本機服務以隨機的 trycloudflare.com URL 公開。無需帳號、域名或費用。代理現在使用 Quick Tunnels 的原因與一般使用者相同:它們是從本機埠到 URL 的最短路徑。

問題一直都相同。任何擁有該連結的人都可以開啟它。

從 cloudflared 2026.9.3 開始,你可以在命令中加入 --allowed-mail,此時你的 Quick Tunnel 只允許你選定的電子郵件地址和域名進入。訪客透過 Cloudflare Access 送出的單次 PIN 來證明他們擁有其中一個地址。雙方都不需要 Cloudflare 帳號。

代理使 Quick Tunnels 的受歡迎程度升至前所未有的高度

寫程式的代理程式需要一個地方顯示結果。住在家裡的 Mac mini 代理程式需要能從手機連線。筆記型電腦上的 Model Context Protocol 伺服器需要一個公開端點,才能讓託管的助手呼叫它們。每個都需要一個 URL,而 Quick Tunnel 可以從單一指令產生一個 URL,代理程式可以自行執行。它不需要登錄檔單,避免卡住。加上 --output json 後,每一行日誌都變成 JSON 物件,代理程式就能從中挑出 URL,而不必抓取文字。

自從代理興起後,Cloudflare Tunnel 與 Quick Tunnels 的採用率呈指數增長。2026 年 9 月 18 日,一條指向 Quick Tunnels 頁面的連結攀升至 Hacker News 的榜首,並獲得超過 800 分與 300 條評論。討論串彷彿是一個代理工作流程目錄。有人說他們的 AI 自行發現 Quick Tunnels,並用它發布剛建好的網站;另一則說「在外行動時做代理工作時,它們非常有用」。

還有一位 commenter 針對本貼文提出問題:「還需要多久才會有人讓代理設定一條隧道,讓全世界看到最敏感、私密且令人尷尬的資訊,或是不安全的進度中的應用程式?」

控制誰能存取你的服務

將電子郵件地址傳遞給 --allowed-mail:

Alice 開啟 URL,輸入她的電子郵件地址,輸入寄到收件箱的驗證碼,即可進入你的應用程式。其他人則在任何請求到達你的機器之前就被阻擋。你仍然不需要建立 DNS 記錄、寫配置檔或開啟儀錶板。

若要允許更多人進入,重複該旗標或允許整個域名:

如果你省略 --allowed-mail,情況不變。公開的 Quick Tunnels 仍然如以往一樣。

要改變進入者,先停止 cloudflared,再啟動一條新隧道。當程序結束時,所有人的存取即結束。

若需穩定主機名稱或更豐富的規則(如身份供應商群組),請使用 Cloudflare Tunnel 搭配 Cloudflare Access。若要從自己的裝置在不使用任何公開 URL 的情況下連線家中代理,並建立雙向連線,請使用 Cloudflare Mesh。

將其設為你的代理預設值

因為保護是一個單一旗標,代理程式可以像人一樣輕鬆使用它。只需在你的編碼代理閱讀的指令檔案中加入一行,例如 AGENTS.md:

從此之後,你的代理分享的預覽只會對你開啟。代理程式並不總是遵循指令,所以請檢查它執行了什麼:cloudflared 會印出隧道是否使用電子郵件驗證以及其包含的規則數量,且不會顯示地址。

從 Wrangler 開啟受保護的隧道

如果你在 Workers 上構建,你可以從最新版本的 wrangler 開始相同型別的隧道:

Wrangler 支援重複旗標、逗號分隔值以及萬用字元域名,並會從其除錯日誌中移除 --allowed-mail 值。

Cloudflare 會驗證電子郵件。由你的機器決定誰能進入。

當有人開啟受保護的網址時,他們會進入 Cloudflare Access 登入頁面。輸入電子郵件地址後,再輸入寄到該信箱的一次性 PIN。電子郵件登入是為使用瀏覽器的人設計的。

這一步只回答一個問題:此人是否擁有此電子郵件地址?它不決定是否歡迎他們。cloudflared 會在你的機器上通過將已驗證的地址與你輸入的規則進行比對來作出決定。

在沒有帳戶時,政策存放在哪裡?

將這兩個問題分離是設計的核心。身份驗證證明訪客是誰。授權決定該訪客是否能進入。每個執行存取規則的 Cloudflare 產品都將授權部分儲存在同一位置:你的 Cloudflare 帳戶。Quick Tunnel 沒有這個。難點從來不是傳送程式碼,而是決定來賓名單應該存放在哪裡。

我們從四項需求開始。設計必須:

  • 保持 Quick Tunnels 無帳戶,因為註冊步驟會破壞單一指令隧道的目的。
  • 保持公開 Quick Tunnels 的請求路徑不變。
  • 避免在每次訪客登入後的每個請求中進行集中式政策查詢。
  • 保護開發者在終端機中輸入的電子郵件地址隱私。

我們的第一個想法是將 Cloudflare Access 應用程式放在每個 Quick Tunnel 主機名稱前。Access 已經在流量到達 cloudflared 之前檢查訪客,因此重複使用它看起來是最短的路徑。但成千上萬的 Quick Tunnels 可能同時執行,許多隻執行幾分鐘,每個都需要自己的應用程式和政策。沒有帳戶擁有它們,我們必須發明新的名稱空間並動態路由應用程式,只是為了儲存一個只存在一個下午的清單。

我們的第二個想法是構建整個流程。cloudflared 將儲存規則,而隧道服務會傳送並檢查程式碼。這個想法的授權部分很好:每個聯結器都檢查自己的清單,這樣可自然擴充套件並將規則保留在開發者的機器上。身份驗證部分則不行。傳送程式碼是電子郵件登入的簡單部分。困難在於確保電子郵件送達、阻止濫用、建立安全挑戰、管理會話,以及提供可存取且已翻譯的登入頁面,並多年安全運作。Cloudflare Access 已經解決了這些問題。

So we kept the best half of each idea. Access verifies that the visitor controls the email address. A small authentication broker running on Cloudflare Workers turns that verified identity into a short-lived, signed handoff. The broker is stateless by design. It stores no tunnel policies, no visitor sessions, and no identity records, and it never sees a tunnel's guest list. cloudflared checks the handoff and makes the authorization decision itself, in memory, against the rules you typed.

結果就是我們最在乎的屬性:您的訪客名單永遠不會離開您的機器。Cloudflare 只知道通道需要電子郵件驗證,卻不知道您邀請了誰。

透過受保護的 Quick Tunnel 傳送請求

受保護的隧道以與公開隧道相同的無帳號方式建立。cloudflared 只傳送驗證模式,絕不傳送你的規則。如果服務未確認該模式,cloudflared 會拒絕啟動,而不是錯誤地給你一個公開 URL。

第一次訪客開啟 URL 時:

  1. cloudflared 看到一個沒有會話的請求。它將瀏覽器重定向到 login.trycloudflare.com,並附上一個隨機、單次使用的狀態,該狀態與該瀏覽器繫結且有效期為 10 分鐘。
  2. Cloudflare Access 會將一次性 PIN 傳送到訪客的電子郵件地址並進行驗證。
  3. 代理檢查 Access 身份並返回一個短期、已簽名的斷言,該斷言繫結於隧道主機名和該狀態。瀏覽器以表單 POST 的方式傳送,從不會出現在 URL、瀏覽器歷史或日誌中。
  4. cloudflared 驗證斷言,消耗該狀態,並將電子郵件與你的規則比對。若匹配成功,則建立本地會話並將訪客導向他們所請求的頁面。否則,訪客會收到一個通用回應,不會透露任何名單資訊。
  5. 後續請求將使用該會話最多四小時(若訪客的 Access 登入較早過期則更短),或直到你停止 cloudflared。不存在中央查詢或政策服務。

會話 Cookie 儲存一個隨機值和過期時間,且不包含訪客身份資訊。cloudflared 在轉發請求前會移除身份驗證憑證,因此你的應用永遠不會看到它們,也不必實作登入流程。若任何檢查失敗,請求不會到達你的本地服務。受保護的隧道永不回復到公開模式。

由實習生打造

受保護的 Quick Tunnels 由兩位實習生推出:產品方面的 Hugo Vicente 與工程方面的 Alessandro Frigerio。他們將需求從產品規格帶到身份驗證代理,最後到 cloudflared 版本。這就是 Cloudflare 的 internships 的運作方式:實習生負責實際問題並交付到生產環境。

在你下一次示範時試試看

Quick Tunnels 的電子郵件保護與 Quick Tunnels 本身一樣免費。Install or update cloudflared,啟動本地伺服器,並加入 --allowed-mail 旗標:

設定細節、匹配規則與限制請參閱 Quick Tunnels documentation。

下次你或你的代理分享你正在構建的內容時,該連結只會對你選擇的人開啟。

來源:cloudflare blog · blog.cloudflare.com