我們閱讀每一份意見回饋,並非常認真地看待您的意見。

欲查看所有可用的限定詞,請參閱我們的文件。

可隨您擴展的開源隧道。無需為閒置時間付費。安全、快速的 Rust 效能,以及隨用隨付的計價方式。

透過加密的 WebSocket 連線,並支援 TLS 終止、HTTP/TCP 代理、即時儀表板、Prometheus 指標和審計日誌,將本地服務公開至公用伺服器。

您可以選擇自架或使用我們的託管服務。

正在使用 AI 代理?rustunnel 內建 MCP 伺服器 — 一鍵設定 Cursor(然後新增您的 API 金鑰):

對於 Claude Code、Claude Desktop、Windsurf 等,請參閱代理整合指南或 rustunnel.com/agents.md 上的代理手冊。

您無需運行自己的伺服器即可使用 rustunnel。我們營運著全球公用邊緣伺服器網路,您可以立即連線。

預設情況下,用戶端會自動選擇最近的區域。使用 --region <id> 連線至特定區域。舊版位址 edge.rustunnel.com 是 CNAME 指向 eu.edge.rustunnel.com,並將繼續運作以確保向後相容性。

免費方案是入門的絕佳方式。當您需要自訂子網域或無限隧道時,可隨時從您的儀表板升級至隨用隨付方案。

取得金鑰後,執行設定精靈:

用戶端會在隧道建立後立即列印出公開 URL:

整合測試套件會在隨機連接埠上啟動真實伺服器,並測試驗證、HTTP 隧道、TCP 隧道和重新連線邏輯。它需要一個正在運行的 PostgreSQL 執行個體。

make db-start 會運行 deploy/docker-compose.dev-deps.yml,該檔案會在 localhost:5432 上啟動一個 Postgres 16 容器。make test 目標會自動注入 TEST_DATABASE_URL。如果您直接運行 cargo test,請先匯出該變數:

為本地測試產生自簽憑證:

儲存庫中已檢查入一個現成的本地設定檔,位於 deploy/local/server.toml。它指向上述自簽憑證路徑,並為方便起見禁用了驗證。直接使用它啟動伺服器:

deply/local/server.toml 中的關鍵設定:

伺服器運行後,公開本地服務(例如,運行在連接埠 3000 上的服務):

--insecure 會跳過 TLS 憑證驗證。使用本地自簽憑證時需要此選項。切勿對生產伺服器使用此旗標。

用戶端將列印出一個公開 URL,例如:

隧道 URL 使用子網域(例如 http://abc123.localhost:8080)。瀏覽器預設不會解析 *.localhost 子網域,因此您有兩種選擇:

選項 A — 使用 Host 標頭進行 curl(無需設定)

選項 B — 透過 dnsmasq 設定萬用字元 DNS(啟用瀏覽器存取)

然後在瀏覽器中訪問 http://abc123.localhost:8080(請包含 :8080,因為本地設定使用連接埠 8080,而非連接埠 80)。

.githooks/ 中包含了一個預推送掛鉤,它鏡像了 CI 檢查步驟(格式檢查 + Clippy)。克隆後執行一次以啟用它:

從那時起,每次 git push 都將自動運行:

如果任一檢查失敗,推送將被中止,保持遠端分支的綠色狀態。

以下步驟對應於以下部署情況:

以建置使用者(非 root)身份安裝 Rust:

或使用 Makefile 目標(運行建置 + 安裝 + systemd 設定):

rustunnel 需要 PostgreSQL 來儲存共用狀態(金鑰、隧道歷史記錄、審計日誌)。

建立一個專用的資料庫和使用者:

提示:對於託管式 PostgreSQL(例如 AWS RDS、DigitalOcean Managed Database、Supabase),請跳過上述 apt 安裝步驟,只需記下下一步設定中的連線 URL。

架構遷移會在伺服器啟動時自動運行 — 無需手動 SQL。

建立 /etc/rustunnel/server.toml 並填入以下內容。將 your-admin-token-here 替換為一個強隨機密碼(例如 openssl rand -hex 32)。

建立 Cloudflare 憑證檔案:

請求涵蓋裸網域和萬用字元的憑證(HTTP 子網域隧道需要):

這些路徑已在上方的設定中設定。Certbot 透過 systemd 計時器設定自動續約。

rustunnel 在啟動時從磁碟讀取 TLS 憑證,因此每次續約後都必須重新啟動。新增 Certbot 部署掛鉤以自動執行此操作:

允許 rustunnel 服務使用者讀取憑證:

連接埠提醒:連接埠 4040 是控制平面 WebSocket(用戶端在此連線),而非儀表板。使用純 HTTP 訪問它會返回 HTTP/0.9,這是預期的。儀表板位於 dashboard_port — 如果不確定,請檢查您的 server.toml。

拉取最新程式碼、重新建置、安裝和重新啟動,一條指令完成:

這會執行 git pull → cargo build --release → install → systemctl restart → systemctl status。

完整的 Docker 指南,涵蓋本地開發(自簽憑證)和生產 VPS(Let's Encrypt),可在 docs/docker-deployment.md 中找到。

多架構映像檔(linux/amd64 + linux/arm64)會在每個穩定版本發佈到 GitHub Container Registry — 無需建置:

選項 1 — Homebrew(macOS 和 Linux,推薦)

Homebrew 安裝預建二進位檔 — 無需 Rust 工具鏈。該公式會在每次發佈時自動更新。這將同時安裝 rustunnel(CLI 用戶端)和 rustunnel-mcp(用於 AI 代理整合的 MCP 伺服器)。

從最新的 GitHub Release 下載適用於您平台的壓縮檔,解壓縮,然後將 rustunnel 二進位檔移動到您 $PATH 中的目錄:

建立設定檔最簡單的方法是互動式設定精靈:

它會提示您輸入區域和驗證金鑰,然後將正確的伺服器位址和註解過的 tunnels: 範例區段寫入 ~/.rustunnel/config.yml。

選擇特定區域(eu、us、ap)直接連線,或選擇 auto(預設)讓用戶端探測所有區域並選擇最近的。如果運行自己的伺服器,請選擇 self-hosted — 精靈將提示您輸入伺服器位址。

設定後,使用 rustunnel start 連線所有設定檔中定義的隧道,或使用 rustunnel http <port> / rustunnel tcp <port> 進行一次性隧道。

所有隧道運行指令(http、tcp、udp、p2p、start)和金鑰建立都接受 --json 旗標。使用它時,stdout 會發出 NDJSON — 每行一個 JSON 事件物件 — 而非人類可讀的啟動框,這使得 CLI 易於從腳本和 AI 代理驅動:

診斷資訊仍會發送到 stderr,因此 stdout 保持有效的 NDJSON。對於 http、tcp、udp 和 p2p 指令,驗證金鑰也可以透過 RUSTUNNEL_TOKEN 環境變數提供,而非 --token(start 從設定檔讀取金鑰)。

預設位置:~/.rustunnel/config.yml

從設定檔啟動所有隧道:

託管服務:從 rustunnel.com 儀表板的「儀表板」→「API 金鑰」管理金鑰。您可以建立、標記和撤銷金鑰,無需任何 CLI 指令。

自架:透過儀表板 API 建立額外的金鑰:

Prometheus 指標端點位於 :9090/metrics:

使用完整的監控堆疊(Prometheus + Grafana)啟動:

生產注意事項:預設的 Grafana 密碼是 changeme。在生產環境中啟動堆疊前,請設定 GRAFANA_PASSWORD 環境變數:

儀表板連接埠提供 REST API,用於程式化存取隧道、金鑰、捕獲的請求和隧道歷史記錄。除健康檢查外,所有端點都需要 Authorization: Bearer <token> 標頭。

/api/tunnels、/api/groups 及其每個隧道的子資源會依呼叫者範圍劃分:管理員金鑰可以看到所有內容;使用者範圍的 API 金鑰只能看到自己的隧道和群組;呼叫者看不到的隧道將返回 404,絕不會返回 403。有關完整規則,請參閱 docs/api-reference.md § 可見性範圍。

完整的請求/回應結構、查詢參數和範例可在 docs/api-reference.md 中找到。

機器可讀的 OpenAPI 3.0 規格可在 GET /api/openapi.json 取得(無需驗證)。

rustunnel 內建了 rustunnel-mcp 二進位檔,它透過 stdio 實現了 Model Context Protocol,讓 AI 代理(Claude、GPT-4o、自訂代理)能夠在無需任何手動干預的情況下開啟和管理隧道。

適用於任何 MCP 框架。有關 Claude Code、Claude Desktop、Codex、Cursor、Windsurf、Cline 和自訂代理的複製貼上設定 — 以及一個一指令安裝程式 — 請參閱代理整合指南:

一次設定 RUSTUNNEL_TOKEN,代理就不需要在工具呼叫時傳遞金鑰。

Homebrew(macOS 和 Linux)— 與 CLI 同時安裝 rustunnel-mcp:

完整的設定指南、配置選項和工作流程範例可在 docs/mcp-server.md 中找到。

將 rustunnel 與 Claude Code 搭配使用的最簡單方法。安裝插件後,它會自動處理所有 MCP 設定 — 只需輸入一次您的金鑰,然後開始要求 Claude 公開連接埠。

該插件會在啟用時提示您輸入伺服器位址和 API 金鑰,將它們安全地儲存,並在背景啟動 MCP 伺服器。無需編輯 .mcp.json 或手動設定。

插件目錄:plugins/claude-code/ 文件:docs/claude-plugin.md

rustunnel 內建了一個 OpenClaw 技能,讓任何與 OpenClaw 相容的 AI 代理能夠第一級別地了解 rustunnel — 設定檔格式、驗證、工具簽章和常見工作流程 — 無需您進行解釋。

技能檔案:skills/rustunnel/SKILL.md

載入後,您可以向代理提問,例如:

「使用 rustunnel 將我的本地連接埠 3000 作為 HTTPS 隧道公開。」

「列出我的活躍隧道並關閉轉發連接埠 5432 的隧道。」

「使用我的金鑰設定我的 rustunnel 設定檔。」

該技能會指示代理自動從 ~/.rustunnel/config.yml 讀取憑證,因此您不會在每次呼叫時被提示輸入金鑰。

詳細的功能列表和計劃中的未來工作已在 docs/ROADMAP.md 中維護。

歡迎貢獻!請遵循以下步驟:

此專案根據 GNU AGPLv3 授權條款授權 — 詳情請參閱 LICENSE 檔案。

Rust 建構的自架安全隧道伺服器。透過 TLS 加密的 WebSocket 將本地 HTTP/HTTPS/TCP/UDP 服務公開至網際網路。開源,隨用隨付的託管選項,以及用於 AI 代理的 MCP 伺服器。