TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

Frpc-Desktop 把 frp 內網穿透最勸退的 frpc.toml 手工設定換成表單管理,開源 MIT、跨三平台、已連續維護三年。這篇從原始碼拆它的對外連線邊界:桌面端零遙測,但版本清單與更新檢查預設走作者自建代理;macOS 版 frpc 以 root 常駐的設計也需要先知道。
用 AI 摘要這篇文章:
自架服務卡住的地方,常常不是服務本身,而是讓外面的世界連進家裡這一步。frp 是這件事最常被搬出來的開源解法,但它的設定檔 frpc.toml 每加一條隧道就得手改一次,改錯一個欄位、整條連線安靜地失效。Frpc-Desktop 是開發者劉嘉偉(luckjiawei)從 2023 年底開始維護的開源桌面用戶端,目標是把這份手工檔換成表單。
挑這類常駐工具時,值得先問三個問題:表單到底換掉了 toml 的哪些工?軟體裝了之後會對外連線到哪裡?macOS 第一次啟動時跳出的管理員密碼視窗是怎麼回事?這篇逐一回答,結尾整理成決策軸。
先講結論:如果你只有一台 frps 伺服器、掛的服務個位數、不想再碰 TOML,它值得裝;如果你需要多台 frps 同時並存、想以系統服務無頭常駐,或堅持要繁體中文介面,現在的版本會讓你卡住。
frp 分成兩支程式。frps 跑在有公網位址的機器上,多半是一台便宜 VPS;frpc 跑在你家裡那台躲在 NAT 後面的電腦。frpc 主動去連 frps 建立一條常駐通道,之後有人連到 VPS 上的某個埠,流量就順著通道回到你區網裡的服務。這套做法一般叫內網穿透:家用寬頻沒有公網位址、又想從外面連回家裡的 NAS、Home Assistant,或自己架的翻譯服務(例如自架一套 LibreTranslate)時,就是它的典型場景。
舉個具體例子。你在區網的機器上跑了一個網頁服務,監聽 8080 埠;在 frpc.toml 加一條 TCP 代理,指定遠端埠 18080,frps 那邊就把 VPS 的 18080 對應到你家的 8080。之後人在外面,打開瀏覽器連 VPS 的 IP 加 18080,看到的就是家裡那個服務。SSH、遠端桌面、資料庫連線,全都用同一套邏輯換埠。
通道支援 TCP、UDP、HTTP、HTTPS,也有 stcp、xtcp 兩種點對點模式。stcp 要連線的兩邊都跑 frpc,金鑰對得上才通,適合把家裡的 SSH 只開給自己的另一台裝置;xtcp 則嘗試直接打洞,失敗時退回中繼,適合傳大檔或低延遲的場合。HTTP 與 HTTPS 類型額外吃 frps 端的網域設定,可以照子網域或路徑把不同服務掛在同一個網址下。frp 官方維護 frpc.toml(舊版是 ini),每一條代理、每個網域、每個心跳參數都平鋪在裡面。功能本身沒問題,麻煩之處在於欄位多、格式嚴,長期手改容易漏東漏西。
Frpc-Desktop 沒有重新發明穿透這件事。它下載並啟動原版 frpc 執行檔,自己只負責兩件事:把設定變成表單,以及把 frpc 當成一個被管理的程序,照顧啟動、停止、重載與狀態監控。行程掛掉會被偵測到並按退避節奏自動拉回,frpc 的輸出寫進本機日誌檔,介面上的連線狀態跟著同步;這套看照機制在 2026 年 8 月的幾次修復裡剛整理過一輪。
代理清單是核心。每條代理在介面裡是一張卡片,型別、本機位址、本機埠、遠端埠、自訂網域、子網域、HTTP 帳號密碼都從表單填,TCP 與 UDP 支援一次填一段埠範圍,每條代理可以單獨開關,不必整份重載。搜尋與分頁在 v1.2.7 補上,代理一多也找得到。

frp 版本被做成獨立的管理頁。介面會列出上游 fatedier/frp 的版本清單讓你挑,抓回來的執行檔存在軟體自己的資料目錄,想同時留新版與舊版對照也行。README 宣稱支援所有 frp 版本,機制上就是把上游版本清單完整攤給你選。

伺服器設定頁不只填位址與 token。表單往下捲還有傳輸層的細項:心跳間隔與逾時、連線池數量、走 HTTP 代理上網的設定、TLS 憑證與信任的 CA 檔,frpc 自己的本機管理介面(預設 127.0.0.1 加 57400 埠)也在這裡調。這些欄位全部對應 frpc.toml 裡的正式參數,等於把官方文件那張長表搬進介面,滑鼠移過去就有提示。日誌頁則把 frpc 的輸出收進來,等級與保留天數可調,連不上 frps 時先看這裡,比開終端機重跑一次快。
既有設定不必重填。軟體支援匯入現成的 frpc.toml 讓介面接手,也能把表單內容匯出成檔案,或一鍵清空重來。開機自動啟動、啟動後自動連線這些選項都在系統設定裡,預設全部關閉,要自己打開。方便的小功能還有快速挑本機埠、把 frps 連線資訊快速分享給共同使用者,作者在 README 把這份待辦清單全數打了勾。
frpc 實際跑的東西也值得一知:介面背後產出的就是一份 toml,程式啟動 frpc 時用參數把這份檔案餵給它。換句話說,表單顧得好,你隨時可以把匯出的設定拿到別台機器直接跑,沒有被綁在這套介面裡。
有一個限制從介面看不出來:翻到資料儲存層的原始碼,伺服器設定只留一組,程式在寫入第二組時直接拒絕。它支援的多使用者,是 frps 端那種「一台 frps、大家各用各的帳號 token」的外掛情境,不是多台 frps 並存。手上有兩台以上 VPS 的人,只能靠匯出匯入來回切換。
裝一套常駐在家的連線工具,最該問的是它究竟對誰講話。翻完整個專案的結論可以直接講:桌面端零遙測,程式裡搜不到任何 analytics、Sentry、Firebase 這類上報元件,這點比多數免費工具乾淨。
但版本功能有一條會讓人在意的邊界。原始碼裡所有 GitHub 查詢都指向同一個網域:版本清單與檢查更新兩個函式,寫死連到 gh.jwinks.com 這個作者自建的 GitHub 代理,而程式碼裡沒有任何一路直接請求 api.github.com;只有下載執行檔那一刻,才提供 GitHub 直連或走鏡像的二選一。截至 2026 年 10 月,這個代理運作正常,frp 最新版本資訊也拿得到。README 的里程碑記著 2024 年 12 月的 v1.1.5 處理過 GitHub 限流問題,鏡像下載早在 2024 年 8 月的 v1.0.9 就支援,2026 年 5 月的 v1.2.6 再做成可挑選的下載來源,看得出這條路是為了網路環境現實逐步長出來的。
這條設計對讀者的意思是:隧道流量本身完全不看作者的臉色,frpc 直連你自己的 frps;但「有哪些版本可裝」與「有沒有新版」這兩件事,預設依賴作者的個人網域。哪天那個網域收起來,已下載的版本照常運作,版本清單會退回軟體內建的快照(凍在打包當下的版本),真正失效的是更新通知;想自己接手的人要注意,軟體不支援直接指向系統裡已裝好的執行檔(issue #147 還開著),但可以把 frp 官方發行包手動匯入版本頁,這是 v1.2.6 起就有的功能。要把它當長期生產工具的人,這是值得記在心裡的單點依賴,務實的做法是把慣用的 frp 版本多留一兩個在版本管理頁、設定檔固定匯出備份,哪天要搬家,原版 frpc 加同一份 toml 就能接手。
連線設定存在本機 SQLite 資料庫(v1.2.7 起從 NeDB 遷移過來),frps 的 token 以 JSON 欄位直接放進資料表,沒有再加密。安全邊界和你手邊那份明文 toml 同一級:本機檔案讀得到的人,就拿得到 token。遷移這段 v1.2.7 的版本說明寫得明白:舊資料第一次啟動時自動搬進新資料庫、驗證完整性,成功後另留一份唯讀備份。
第一次在 macOS 上按連線,會跳出一個要求管理員密碼的視窗。這是它自己的特權設計:軟體會在 /usr/local/bin 放一支名為 frpc-desktop-launcher 的啟動腳本,並寫入 /etc/sudoers.d/frpc-desktop 這條限定該腳本的免密碼規則,之後 frpc 一律以 root 身分在背景執行,原始碼註解寫明目的是不必每次連線都討一次密碼。副作用同樣具體:隧道用戶端以系統最高權限常駐,你的 Mac 裡多一條 NOPASSWD 規則。不想留的話,移除那兩個檔案可以清掉,但程式下次連線前會檢查 helper 是否存在、不在就重新安裝,所以實際上只有「接受」與「換作業系統」兩條路。Windows 與 Linux 沒有這套設計,frpc 以目前使用者的子行程啟動,權限小得多。
另一件事是語言。介面只有簡體中文與英文兩種語言檔,初始值寫死英文,沒有繁體中文。翻原始碼的語言目錄就這兩個檔案,所以這不代表翻譯沒做完,而是目前就只發這兩種。表單欄位都是常見的連線詞彙,英文介面不難讀,但介意簡體字、或非要繁中不可的讀者,這條就是硬限制。
專案從 2023 年 11 月的第一版,走到 2026 年 9 月的 v1.2.7,一共 25 個版本,安裝檔累計下載超過 16 萬次,星數接近七千(截至 2026 年 10 月),MIT 授權。回頭看版本史,會發現功能是一段一段補齊的:2024 年 8 月加入 stcp,同年 9 月支援批次埠與單條代理開關,12 月處理 GitHub 限流,2025 年 3 月英文化並重構底層,2026 年 5 月加下載鏡像選項,2026 年 9 月的 v1.2.7 則把資料儲存從 NeDB 換成 SQLite、修掉系統匣與視窗的生命週期問題,並補上代理清單分頁。作者對 issue 的回覆算勤,修好就關,2026 年 8 到 9 月有一批修復進了版。
還開著的幾個值得看過再決定:Windows 25H2 上「frpc 未啟用時介面卡頓」有人回報且尚未解決(#128);想以系統服務身分無頭常駐的請求還在排(#40);前面提過的匯入本機既有 frpc 也還沒做(#147)。另外兩件事屬於開發端動向而非現有功能:tls2raw 外掛支援已併進主線、但還沒隨版本發布;issue 也出現把底層從 Electron 換到 Tauri 2 的重構議題。社群這邊有 Telegram 群與微信交流群,後者滿了兩百人改靠公眾號進,看得出使用者是真的。偏好網頁介面的人,同一位作者另維護一套瀏覽器版的 frpc 管理工具 Podux,可以當作替代選項。
安裝檔在 GitHub releases 頁:Windows 有安裝版 exe 與免安裝 zip,後者解壓縮就能跑,放隨身碟帶著走也行;macOS 有 arm64、x64、universal 三種 dmg,Apple Silicon 機器抓 arm64 或 universal;Linux 有 AppImage、deb、rpm,deb 還分 amd64 與 arm64,樹莓派這類 ARM 板子裝得到。第一次啟動後的順序是:先到版本管理頁挑一個 frp 版本下載,再到伺服器設定填 frps 位址、埠與 token,接著加第一條代理。表單預設把 TLS 打開,這與 frp 從 v0.50.0 起的上游預設一致,frpc 連 frps 的通道預設走加密;frpc 的本機管理介面也預設只綁在 127.0.0.1,不對區網開放。
把它放進工具箱的理由很單純:一台 frps、幾條隧道、不想再手改 TOML,這個組合它處理得乾淨,而且 MIT 授權、程式碼攤在陽光下,信任邊界自己查得到。最具代表性的使用者也正是這種人:家裡一台小主機跑著 NAS 與兩三個自架服務,外面租一台 VPS,隧道就開那幾條,設定改好後幾個月不動。macOS 用戶多想一步:能接受隧道用戶端以 root 常駐,就裝;會介意,就先在 Windows 或 Linux 機器上跑,或等作者換掉這套設計。
多台 frps 並存、無頭常駐、繁中介面這三種需求,對應到的都還是未解的限制,等相關 issue 關了再入手也不遲。如果你的煩惱還沒走到自架 frps 那一步,只是臨時要開一個洞給外部連線,用託管隧道服務(ngrok 這類)會比學 frp 快;想順手評估整套自架主機方案的話,可以回頭看我們寫過的 Olares 自架主機,以及開源 ngrok 替代方案這兩篇。