Native Swift/AppKit app that turns a local folder or localhost website into a temporary shareable URL through Cloudflare Quick Tunnel.
LocalShare 是 macOS 原生小工具,可將本機資料夾或正在執行的 HTTP 網站暫時公開為 https://….trycloudflare.com 網址。
系統需求:macOS 13 或更新版本;同一份 App 支援 Apple Silicon 與 Intel Mac。
目前的免費社群建置未使用付費 Apple Developer ID 公證。第一次開啟時,請確認檔案來自本儲存庫的官方 Release,並核對 Release 內的 SHA-256 校驗檔。
- 開啟
LocalShare-1.3.0-macOS.dmg。 - 將 LocalShare 拖到「應用程式」。
- 第一次開啟若 macOS 阻擋 App,請先嘗試開啟一次,再前往「系統設定 → 隱私權與安全性 → 強制打開」。
- 選擇網站資料夾,或輸入
http://localhost:3000這類本機網址。 - 按「開始分享」。LocalShare 會先確認本機來源可連線;Cloudflare 建立公開網址後會立即顯示並自動複製。
- 分享期間請保持 LocalShare 開啟。App 會防止電腦因閒置而睡眠,並以低頻率在背景檢查公開網址。
- 按「停止分享」或關閉 App 後,公開網址立即失效;App 會先顯示確認提示。
公開網址沒有密碼保護。任何拿到網址的人都能讀取分享內容;請勿分享機密檔案、密碼、資料庫或管理後台。
為避免意外把區域網路服務暴露出去,網址模式只接受 localhost、127.0.0.0/8 或 ::1;內建靜態伺服器也只監聽 127.0.0.1。直接輸入網址時不可夾帶帳號或密碼。
Quick Tunnel 適合臨時預覽與測試,不保證固定網址或服務可用率。每次重新啟動會產生不同網址,並有 200 個同時進行中請求的上限,且不支援 Server-Sent Events(SSE)。
- 確認 LocalShare 仍開啟,而且沒有按過「停止分享」。
- 若分享的是
http://localhost:3000,原本的開發伺服器也必須持續執行。 - 已停止的 Quick Tunnel 舊網址不會恢復;請重新開始分享並使用新網址。
- 新建立的
trycloudflare.com網域可能需要一小段時間才會完成 DNS 傳播。LocalShare 會保持穿隧運行、顯示橘色等待狀態,驗證成功後自動轉成綠色;不會因本機暫時找不到新主機名稱而停止分享。 - 詳細穿隧記錄位於
~/Library/Logs/LocalShare/cloudflared.log。
- 重新設計原生 macOS 介面,加入透明標題列、卡片式資訊層級、狀態指示、SF Symbols、完整選單與鍵盤操作。
- 支援將網站資料夾直接拖入輸入欄,並記住上次分享來源。
- 靜態檔案改用 256 KB 分段串流,不會因分享大型檔案而一次占用同等大小的記憶體。
HEAD健康檢查只讀取檔案資訊,不再載入檔案內容;背景檢查改為 20 秒並加入 Timer tolerance。- 使用專用的無快取 HTTP session;畫面記錄、子程序輸出及 cloudflared 診斷檔都會限制大小。
- 隱藏檔無法透過直接網址讀取,符號連結也不能離開使用者選定的根資料夾。
- 發行建置會在簽署前再次驗證兩個 cloudflared 執行檔的固定 SHA-256。
App 內的執行檔也可直接使用:
/Applications/LocalShare.app/Contents/MacOS/LocalShare --help
/Applications/LocalShare.app/Contents/MacOS/LocalShare --json doctor
/Applications/LocalShare.app/Contents/MacOS/LocalShare share ./public
/Applications/LocalShare.app/Contents/MacOS/LocalShare share http://localhost:3000JSON 成功格式是 {"ok":true,"data":{…}};錯誤格式是 {"ok":false,"error":{"code":"…","message":"…"}},失敗時會傳回非零結束碼。
需要 Xcode Command Line Tools 與網路連線。執行:
make fetch-cloudflared
make app
make test
make dmgmake fetch-cloudflared 會下載固定的 2026.7.2 官方 ARM/Intel 資產並驗證 SHA-256。make app、make test 與 make dmg 也會在封裝前重新核對固定雜湊;若透過 CLOUDFLARED_ARM64 或 CLOUDFLARED_AMD64 指定其他檔案,雜湊不同就會中止建置。
一般建置使用 ad-hoc 簽章,適合本機測試。正式對外發布前,請準備 Apple Developer Program 的 Developer ID Application 憑證與 notarytool keychain profile:
make SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" dmg
make SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
NOTARY_PROFILE="LocalShare-Notary" notarizenotarize 會啟用 Hardened Runtime 與安全時間戳、提交 DMG 給 Apple、公證成功後 staple 並驗證票證。
送交 App Store Connect 或其他商店前,發行負責人仍應依當時 Cloudflare 的資料處理條款確認商店隱私問卷;內附的 Privacy Manifest 已採保守揭露。
本 App 內含 Cloudflare 的 cloudflared 2026.7.2 執行檔。使用該軟體及 Quick Tunnel 代表你同意 Cloudflare 的授權條款、服務條款與隱私權政策。詳見 THIRD_PARTY_NOTICES.md 與 THIRD_PARTY_LICENSES/cloudflared-LICENSE.txt。
LocalShare 本身不含分析、廣告或追蹤程式碼。建立分享時,公開流量會透過 Cloudflare Quick Tunnel 中繼;詳見 PRIVACY.md。
歡迎提交 Issue、Discussion 與 Pull Request。開始前請閱讀 CONTRIBUTING.md;安全問題請依 SECURITY.md 私下回報。
LocalShare 原始碼採 MIT License 授權。內含的 cloudflared 仍依 Cloudflare 的 Apache License 2.0 授權,詳見第三方授權文件。
