Syncthing 是一套以 Go 撰寫、MPL-2.0 授權的開源連續檔案同步程式:它讓兩台以上的電腦之間即時同步資料夾,不經過任何中央伺服器,資料全程加密、完全掌握在自己手中。GitHub 上約 8.9 萬顆星、2013 年 11 月開源至今仍活躍(2026 年 9 月 30 日還有 commit),是自架族取代 Dropbox、Resilio Sync 最常被點名的一套工具。
為什麼 2026 年還要學 Syncthing?
三個理由:
- 資料不外流:Dropbox、Google Drive 都把檔案放在別人的伺服器上,Syncthing 是「裝置對裝置」直接同步,檔案從不經過雲端。
- 容量無上限:你的儲存空間有多大,同步空間就有多大,不必按月付費買容量。
- 沒有單點故障:即使某一台機器掛了,其他裝置上的副本還在。
它和 Nextcloud 這類「私有雲」的差別在於:Nextcloud 是一台中央伺服器 + 客戶端的架構,Syncthing 則是去中心化的對等(P2P)同步,每一台裝置地位平等。
核心概念:先搞懂三個名詞
進入實作前,先理解 Syncthing 的幾個關鍵字,設定才不會卡關:
- 裝置(Device):每一台跑 Syncthing 的機器。兩台裝置要同步,必須互相交換設備 ID。
- 設備 ID(Device ID):由裝置在第一次啟動時用密鑰產生的加密識別碼(長度 56 字元、類似公鑰),兩台裝置都配好彼此的 ID 才會連線。因為必須「雙向確認」,ID 本身不需要保密。
- 資料夾(Folder):要同步的目錄。每個資料夾可各自指定要共享給哪幾台裝置,以及同步方向(雙向、僅傳送、僅接收)。
Syncthing 內建全域發現伺服器與中繼伺服器(relay):前者幫裝置在網路上找到彼此,後者在雙方都躲在 NAT 後面、無法直連時,充當加密轉送的中繼站。
安裝:Linux 與 Docker 兩條路
方法一:Linux(Debian/Ubuntu 用 apt 官方套件庫)
# 加入官方套件庫(Debian / Ubuntu)
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
# 啟動(會自動開啟 Web GUI)
syncthing
第一次啟動時,Syncthing 會產生設定檔、加密密鑰,並在瀏覽器開啟管理介面(預設 http://127.0.0.1:8384/),同時列印出你的設備 ID。
方法二:Docker(推薦給 NAS/伺服器)
version: "3"
services:
syncthing:
image: syncthing/syncthing
container_name: syncthing
hostname: my-syncthing
environment:
- PUID=1000
- PGID=1000
volumes:
- /wherever/st-sync:/var/syncthing
network_mode: host
restart: unless-stopped
healthcheck:
test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
interval: 1m
timeout: 10s
retries: 3
兩個 Docker 專屬陷阱:
- 務必用
network_mode: host:Docker 預設橋接網路下,Syncthing 只能看到容器的內網 IP(172.17.0.0/16),會讓區域網路內的裝置發現失敗、傳輸速度暴跌。 - 同步資料統一放
/var/syncthing掛載目錄:容器內 Syncthing 以 UID/GID 1000 執行,可用PUID/PGID調整,再新增的資料夾也建議 map 進這個 volume。
設定:Web GUI 設備配對
在兩台機器上都裝好 Syncthing 後:
- 在其中一台的 Web GUI 點右下角 Add Remote Device,貼上另一台裝置的設備 ID(在對方 GUI 的「Actions → Show ID」查看)。
- 勾選要共享的資料夾,按 Save。新裝置會出現在右側,約一分鐘內自動連線。
- 到另一台機器重複同樣步驟(貼回第一台的設備 ID)。兩邊都確認後,共享資料夾就會開始同步。
配對成功後,在任一裝置往共享資料夾丟檔案,另一側就會自動收到。
進階功能:檔案版本控制
Syncthing 支援在檔案被刪除或覆寫時,把舊版本存進 .stversions 資料夾,避免誤刪救不回來。有三種策略(按資料夾、按裝置個別設定):
| 策略 | 行為 | 適合情境 |
|---|---|---|
| Trash Can(垃圾桶) | 舊檔移進回收區,同名只保留最新一份,可設定 N 天後自動清除 | 最簡單的防呆 |
| Simple(簡單) | 保留最近 N 個時間戳版本 | 偶爾需要找回前幾版 |
| Staggered(交錯) | 按時間間隔分級保留(首小時每 30 秒一份、首日每小時、30 天內每天……) | 需要細緻的歷史回溯 |
注意:版本控制只對「從其他裝置收進來的變更」生效。本機自己改的檔案,Syncthing 不會(也無法)保留舊版——所以重要資料還是要另外做真正的備份。
防火牆與 NAT
- 預設監聽 TCP/QUIC 22000 埠,Web GUI 在 8384 埠。
- 連線失敗時,先檢查 官方 Firewall Setup 文件:兩端都要允許 22000 埠的 TCP 與 UDP(QUIC)。
- 若雙方都在 Symmetric NAT 後方無法直連,Syncthing 會自動走中繼伺服器,速度較慢但能通。
- 網頁介面只綁在
127.0.0.1最安全;若要從外網存取,請務必加上驗證與 TLS,或改走 VPN/Cloudflare Tunnel。
實際應用情境
- NAS 異地備份:Synology、QNAP 都內建或可裝 Syncthing,把家裡的 NAS 與另一台異地機器的資料夾持續同步,就是一套「私人版 Dropbox + 異地備份」。
- 跨裝置工作區:桌機、筆電、伺服器之間同步專案資料夾,改完自動同步,不用手動傳檔。
- 相片備援:手機照片(經社群 Android 版如 Syncthing-Fork)同步回自家 NAS,避開 Google 相簿的容量與隱私問題。
Syncthing vs Nextcloud vs Resilio Sync vs Dropbox
| 面向 | Syncthing | Nextcloud | Resilio Sync | Dropbox |
|---|---|---|---|---|
| 架構 | P2P(去中心化) | 中央伺服器 | P2P(部分閉源) | 中央雲端 |
| 開源 | ✅ MPL-2.0 | ✅ AGPL | ❌ 閉源 | ❌ |
| 價格 | 免費 | 免費(自架) | 付費(免費版有限) | 付費訂閱 |
| 檔案存哪 | 自己裝置 | 自己伺服器 | 自己裝置 | 別人伺服器 |
| 網頁介面/協作 | 僅管理介面 | ✅ 完整(檔案、行事曆、Office) | 介面較弱 | ✅ 完整 |
| 上手難度 | 中(要懂設備 ID) | 中高(要架 LAMP/Docker) | 低 | 極低 |
結論:要「純檔案同步 + 完全不假手雲端」,Syncthing 最輕量直接;要「多人協作 + 網頁存取 + 完整辦公室套件」,Nextcloud 更合適。兩者其實可以並存——用 Nextcloud 做協作入口、用 Syncthing 做異地備援。
延伸閱讀
- Nextcloud 完整教學 2026:自架私有雲硬碟取代 Google Drive
- Caddy 完整教學 2026:自動 HTTPS 網頁伺服器(給 Syncthing 外網入口用)
- Cloudflare Tunnel 完整教學 2026:不開防火牆 port 也能把自架服務搬上網
- Coolify 完整教學 2026:開源自架版 Vercel,統一管理你的容器
來源:Syncthing 官方 GitHub、Syncthing 文件:Getting Started、Syncthing 文件:File Versioning、Docker 官方 README
