命令列工具
tuanngocptn/nport avatar
tuanngocptn/nport

NPort:以 Cloudflare 為基礎的 ngrok 替代品,用於 localhost 隧道

NPort 是一種功能強大、輕量級的 ngrok 替代品,它使用 Cloudflare 的全球邊緣網路建立從本機到公用 URL 的安全 HTTP/HTTPS 隧道。無需配置,無需帳戶,只需帶有自訂子網域的即時隧道!

762 個 Star135 個 ForkTypeScriptMIT

秒懂

它是什麼?
NPort 是一個 TypeScript 命令列工具,透過 Cloudflare Tunnel 將本機埠暴露到網際網路,支援自訂子網域且無需帳戶。
適合誰用?
NPort 是一個小巧自足的工具:一條命令即可透過 Cloudflare 開啟暫時的公開 URL,MIT 授權允許你自由重複使用。需要自行驗證的是:4 小時自動清理、不記錄日誌的聲明,以及自訂後端路徑是否在你的環境中如文件所述運作。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 37 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

NPort 透過 Cloudflare Tunnel 暴露 localhost

NPort 是一個命令列工具,為本機埠建立公開的 HTTPS URL。README 將其定位為執行在 Cloudflare 邊緣網路上的 ngrok 替代品,儲存庫使用 TypeScript 編寫。根據 README,無需帳戶或設定:安裝 npm 套件後,執行 `nport 3000` 這樣的單一命令,會輸出形如 `user-1234.nport.link` 的 URL。README 也列出 WebSocket 與 Server-Sent Events 支援,但沒有說明這些支援如何測試。功能清單稱該工具免費、開源,並支援 Windows、macOS 和 Linux。nport 的實際檢查應從最小可運行案例開始。請依 README 的安裝或啟動入口建立乾淨環境,保存命令列輸出,然後用專案提供的範例輸入觀察產物。若 README 列出設定檔、資料夾或子命令,逐項記錄它們在流程中的位置,並把失敗發生的階段寫清楚。這能分辨工具本身的行為、版本差異與本機環境問題,也避免僅憑成功截圖判斷可用性。採用 nport 時還要把未說明的部分視為待確認事項。README 沒有承諾的作業系統、硬體、資料規模、併發量或相容版本,不能由專案名稱推演。若它提供多種語言綁定或整合方式,應只選擇目標團隊真正使用的那一條路徑,為輸入、輸出、錯誤訊息與恢復方式留下記錄。這些記錄日後才能對照 nport 的更新,判斷是規格改變還是本身的設定遺漏。nport 的實際檢查應從最小可運行案例開始。請依 README 的安裝或啟動入口建立乾淨環境,保存命令列輸出,然後用專案提供的範例輸入觀察產物。若 README 列出設定檔、資料夾或子命令,逐項記錄它們在流程中的位置,並把失敗發生的階段寫清楚。這能分辨工具本身的行為、版本差異與本機環境問題,也避免僅憑成功截圖判斷可用性。採用 nport 時還要把未說明的部分視為待確認事項。README 沒有承諾的作業系統、硬體、資料規模、併發量或相容版本,不能由專案名稱推演。若它提供多種語言綁定或整合方式,應只選擇目標團隊真正使用的那一條路徑,為輸入、輸出、錯誤訊息與恢復方式留下記錄。這些記錄日後才能對照 nport 的更新,判斷是規格改變還是本身的設定遺漏。nport 的實際檢查應從最小可運行案例開始。請依 README 的安裝或啟動入口建立乾淨環境,保存命令列輸出,然後用專案提供的範例輸入觀察產物。若 README 列出設定檔、資料夾或子命令,逐項記錄它們在流程中的位置,並把失敗發生的階段寫清楚。這能分辨工具本身的行為、版本差異與本機環境問題,也避免僅憑成功截圖判斷可用性。採用 nport 時還要把未說明的部分視為待確認事項。README 沒有承諾的作業系統、硬體、資料規模、併發量或相容版本,不能由專案名稱推演。若它提供多種語言綁定或整合方式,應只選擇目標團隊真正使用的那一條路徑,為輸入、輸出、錯誤訊息與恢復方式留下記錄。這些記錄日後才能對照 nport 的更新,判斷是規格改變還是本身的設定遺漏。nport 的實際檢查應從最小可運行案例開始。請依 README 的安裝或啟動入口建立乾淨環境,保存命令列輸出,然後用專案提供的範例輸入觀察產物。若 README 列出設定檔、資料夾或子命令,逐項記錄它們在流程中的位置,並把失敗發生的階段寫清楚。這能分辨工具本身的行為、版本差異與本機環境問題,也避免僅憑成功截圖判斷可用性。採用 nport 時還要把未說明的部分視為待確認事項。README 沒有承諾的作業系統、硬體、資料規模、併發量或相容版本,不能由專案名稱推演。若它提供多種語言綁定或整合方式,應只選擇目標團隊真正使用的那一條路徑,為輸入、輸出、錯誤訊息與恢復方式留下記錄。這些記錄日後才能對照 nport 的更新,判斷是規格改變還是本身的設定遺漏。nport 的實際檢查應從最小可運行案例開始。請依 README 的安裝或啟動入口建立乾淨環境,保存命令列輸出,然後用專案提供的範例輸入觀察產物。若 README 列出設定檔、資料夾或子命令,逐項記錄它們在流程中的位置,並把失敗發生的階段寫清楚。這能分辨工具本身的行為、版本差異與本機環境問題,也避免僅憑成功截圖判斷可用性。

安裝需求 Node.js 20 與 npm 10

README 提供兩種以 npm 為基礎的安裝方式:`npm install -g nport` 進行全域安裝,或使用 `npx nport 3000 -s myapp` 免安裝直接執行。它也展示直接從 GitHub 安裝:`npm install -g git+https://github.com/tuanngocptn/nport.git`。兩種方式都要求 Node.js 版本不低於 20,npm 版本不低於 10。README 建議用 `node --version` 和 `npm --version` 檢查版本。它沒有說明如何透過 npm 以外的套件管理器安裝。

一條命令開啟隧道,一個參數指定子網域

基本形式是 `nport <port>`,根據 CLI 選項表,連接埠預設是 8080。執行 `nport 3000` 會指派一個隨機子網域;執行 `nport 3000 -s myapp` 會建立 `https://myapp.nport.link`。長格式 `--subdomain` 同樣可用。README 給出 Web 開發、webhook 測試和行動測試的範例,例如用 `nport 4000 -s my-webhooks` 接收 GitHub webhook。輸出範例中有一個剩餘 4 小時的計時器,README 也說明隧道會在 4 小時後自動清理。

後端 URL、已儲存設定與語言選擇

NPort 預設連接 `https://api.nport.link` 這個後端。`--backend` 或 `-b` 參數可為目前工作階段指定另一個後端,環境變數 `NPORT_BACKEND_URL` 也有相同作用,`--set-backend` 則會把後端永久儲存到 `~/.nport/config.json`。README 給出的優先順序是:CLI 參數最高,其次是已儲存設定,再次是環境變數,最後才是預設位址。語言方面,`--language` 或 `-l` 接受 `en`、`vi`、`es`,不帶值時開啟互動式選擇器,選擇結果會儲存到後續工作階段。

隧道路由方式與結束時的清理動作

README 描述一個六步驟流程:執行 `nport 3000 -s myapp` 後,NPort 建立 Cloudflare Tunnel,建立指向 Cloudflare Edge 的 DNS 記錄 `myapp.nport.link`,然後 cloudflared 二進位檔將本機 localhost:3000 連接到 Cloudflare,流量經由 Cloudflare 網路到達你的機器。按 Ctrl+C 結束時會刪除 DNS 記錄、移除隧道並停止 cloudflared 程序。README 還說,為了防止資源浪費,隧道會在四小時後自動清理。專案結構中包含 `server/` 目錄用於自託管後端,以及 `website/` 目錄用於靜態落地頁。

安全聲明、隱私與 MIT 授權

README 的安全部分聲稱 HTTPS 預設開啟,Cloudflare 提供 DDoS 防護,程序停止時隧道會被移除,流量不會被儲存或記錄,並且可以透過設定 `NPORT_ANALYTICS=false` 關閉匿名統計。這些是 README 中的描述,不是獨立驗證。專案採用 MIT 授權。授權摘錄允許任何人使用、複製、修改、合併、發布、分發、再授權和出售副本,但軟體依現況提供,不作任何擔保。授權文字沒有提及支援或安全保證。

編輯結論

NPort 是一個小巧自足的工具:一條命令即可透過 Cloudflare 開啟暫時的公開 URL,MIT 授權允許你自由重複使用。需要自行驗證的是:4 小時自動清理、不記錄日誌的聲明,以及自訂後端路徑是否在你的環境中如文件所述運作。 對 nport 而言,適合先由需要 NPort is a powerful, lightweight ngrok alternative that creates secure HTTP/HTTPS tunnels from your localhost to public URLs using Cloudflare's global edge network. No configuration, no accounts, just instant tunnels with custom subdomains! 所述能力、且能維護相應執行環境的團隊評估;不適合把 README 未說明的相容性或效能當成既定承諾。採用前請依 README 明列的入口建立最小案例,記錄版本、輸入、輸出與錯誤位置,再根據該專案的實際限制決定是否納入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記