Syncthing 怎麼用?從裝置配對到檔案同步的實用筆記

整理 Syncthing 官方文件裡的關鍵使用點:裝置 ID、資料夾共享、同步模式、防火牆連接埠、忽略規則、檔案版本、安全邊界,以及在 NAS、Windows、Android 多裝置同步時需要注意的地方。

Syncthing 系列目錄

Syncthing 適合用來做多裝置之間的點對點檔案同步。它不是傳統網路硬碟,也不是把所有資料先上傳到某個中心伺服器再下載回來,而是讓已授權的裝置直接交換檔案。

如果你正在考慮用它同步 Markdown 筆記、照片備份、設定檔或家庭 NAS 目錄,重點不只是「能不能同步」,而是先理解幾個基本概念:裝置、資料夾、裝置 ID、同步方向、發現方式和衝突處理。

Syncthing 解決什麼問題

Syncthing 的核心場景是:你有兩台或多台裝置,希望它們之間保持某個目錄一致。

典型例子:

  • Windows 桌機和筆電之間同步工作資料。
  • 手機和 NAS 之間同步照片或文件。
  • 多台 Linux 伺服器之間同步設定範例、腳本或小型資料目錄。
  • Obsidian、Joplin 外部附件、Markdown 筆記目錄在多裝置間同步。

它更適合「自己控制裝置和資料」的同步場景。如果你需要多人權限管理、線上預覽、分享連結或協作編輯,傳統網路硬碟或文件協作平台會更合適。

第一次啟動後會發生什麼

官方入門文件建議把兩台機器並行設定。Syncthing 裡,一台機器叫一個 device。你正在設定的機器是 local device,另一台要同步的機器是 remote device。

第一次啟動 Syncthing 時,它會產生設定檔、加密金鑰和裝置 ID,並預設在本機開啟 Web GUI:

1
http://127.0.0.1:8384/

這個 Web GUI 是日常設定入口。官方文件也提到,預設可能會建立一個 Default Folder,通常對應使用者目錄下的 Sync 資料夾。你可以先用它測試,也可以後面刪除並新增自己的目錄。

裝置 ID 是配對基礎

Syncthing 的裝置配對靠 device ID。

每台裝置首次啟動時都會產生自己的金鑰,裝置 ID 可以理解為這個裝置憑證的可讀指紋。兩台裝置只有互相加入對方的裝置 ID,才會建立連線並同步。

實際操作順序通常是:

  1. 在兩台裝置上都啟動 Syncthing。
  2. 分別開啟 Web GUI。
  3. 在 A 上加入 B 的 device ID。
  4. 在 B 上加入 A 的 device ID。
  5. 選擇要共享的資料夾。
  6. 儲存後等待兩邊連線。

裝置 ID 不需要像密碼一樣保密,但也不要隨便把自己的同步拓撲公開到不必要的地方。真正需要保護的是裝置私鑰、Web GUI 管理權限和同步目錄本身。

資料夾不是自動全機同步

Syncthing 同步的是你明確新增的 folder,不會預設同步整台機器。

每個資料夾都有自己的路徑、ID、共享裝置和同步類型。常見做法是按用途拆分:

  • notes/:Markdown 筆記。
  • photos-inbox/:手機照片中轉。
  • docs/:多裝置文件目錄。
  • scripts/:小腳本和設定範例。

不要一開始就同步過大的系統目錄、下載目錄或混雜目錄。目錄越複雜,衝突、忽略規則、權限差異和掃描成本越容易變成長期維護問題。

三種常見資料夾類型

官方文件裡把資料夾類型分得很清楚。實際使用時,先理解這三種就夠了。

Send & Receive

這是預設模式。這個資料夾既傳送本機變更,也接收其他裝置變更。

適合:

  • 多台電腦共同編輯筆記。
  • 多裝置共同維護文件。
  • 普通雙向同步目錄。

如果兩台裝置同時改了同一個檔案,Syncthing 會產生衝突檔案,而不是直接靜默覆蓋。

Send Only

這個模式下,本機像「參考副本」。它會向其他裝置傳送變化,但不會套用其他裝置傳來的變化。

適合:

  • 主裝置向備份裝置分發檔案。
  • 希望某台機器上的目錄狀態作為基準。
  • 不希望遠端修改反向影響本機。

如果遠端發生變化,本機可能顯示 out of sync。此時 Web GUI 會提供 Override Changes,用本機狀態覆蓋叢集裡的其他狀態。這個按鈕要謹慎使用。

Receive Only

這個模式和 Send Only 相反。它接收叢集裡的變更,但本地改動不會再傳給其他裝置。

適合:

  • 備份目標。
  • 唯讀鏡像。
  • 不希望本地誤操作污染主同步目錄的裝置。

如果本地出現修改,Web GUI 會提示 Revert Local Changes,可以把本地變更撤回到叢集版本。

防火牆和連接埠要先看

Syncthing 能透過發現服務、NAT、relay 等機制讓裝置互相找到,但網路越清楚,連線越穩定。

官方防火牆文件列出的關鍵連接埠是:

1
2
3
22000/TCP
22000/UDP
21027/UDP

其中:

  • 22000/TCP 用於 TCP 同步流量。
  • 22000/UDP 用於 QUIC 同步流量。
  • 21027/UDP 用於本地發現廣播或多播。

如果裝置在同一個區域網路內,但一直發現不了,優先檢查本機防火牆、路由器隔離、Wi-Fi 和 LAN 是否被分到不同網段。

如果裝置跨公網或跨 NAT,能做連接埠轉發時,直接連線通常比 relay 更好。沒有連接埠轉發時,relay 也可能讓裝置連上,但效能會比直連差。

Linux 上如果使用 ufw 並安裝了對應套件,可以用:

1
2
sudo ufw allow syncthing
sudo ufw status verbose

Web GUI 預設只監聽本機的 127.0.0.1:8384。如果要遠端存取 GUI,可以改成 0.0.0.0:8384,但這代表管理介面對外暴露,必須同時考慮密碼、HTTPS、反向代理或 SSH 隧道。普通家庭場景下,更推薦用 SSH 隧道存取遠端 GUI。

.stignore 要放在同步根目錄

如果有些檔案不想同步,可以在同步資料夾根目錄建立 .stignore

注意幾個細節:

  • .stignore 必須放在同步資料夾的根目錄。
  • 規則相對於同步根目錄生效。
  • .stignore 本身不會同步到其他裝置。
  • 檔案內容應使用 UTF-8 編碼。

一個簡單例子:

1
2
3
4
5
(?d).DS_Store
node_modules
*.tmp
cache/**
!/cache/keep.txt

(?d) 的作用是:當這些被忽略檔案阻止目錄刪除時,允許 Syncthing 刪除它們。適合 .DS_Store 這類系統自動產生檔案。

驚嘆號 ! 是反向規則,用來把某些檔案重新納入同步。但反向規則可能導致 Syncthing 遍歷本來會忽略的目錄。規則很多時,最好先從簡單規則開始。

檔案版本不是本地復原

Syncthing 支援檔案版本保留,但它的語義容易誤解。

官方文件強調,版本保留是「接收遠端變更時,把舊版本歸檔」。也就是說,如果 A 開啟了版本保留,B 修改了檔案並同步到 A,A 會把被替換的舊檔案保存起來。但如果 A 自己本地修改了檔案,Syncthing 不能替 A 保存修改前的版本。

常見版本策略包括:

  • Trash Can File Versioning:類似回收桶,被遠端刪除或替換的檔案移到 .stversions
  • Simple File Versioning:保留固定數量的歷史版本。
  • Staggered File Versioning:按時間間隔保留版本,越舊越稀疏。
  • External File Versioning:交給外部腳本處理。

如果你用 Syncthing 同步重要文件,建議至少在備份目標裝置上開啟簡單版本或回收桶版本。它不能代替完整備份,但能減少誤刪和誤覆蓋的損失。

同步衝突如何產生

Syncthing 會識別衝突。兩台裝置同時修改同一個檔案,而且內容不同,就可能產生類似這樣的衝突檔案:

1
filename.sync-conflict-date-time-modifiedBy.ext

這比靜默覆蓋安全,但也代表你要定期清理衝突檔案。

容易產生衝突的場景:

  • 多裝置同時開啟同一份 Markdown 筆記。
  • 應用程式自動寫入同一個狀態檔。
  • 同步 .obsidian/workspace.json 這類裝置狀態檔。
  • Windows、macOS、Android 之間出現大小寫檔名差異。

如果同步筆記,建議把正文、附件和模板同步;工作區狀態、快取、外掛臨時檔要謹慎處理,必要時放進 .stignore

安全邊界

Syncthing 的安全目標之一是:未授權裝置不能加入同步叢集,傳輸中的檔案內容不能被旁路監聽者讀取。

官方安全文件說明,裝置間流量由 TLS 保護,連線建立時會檢查裝置憑證指紋是否在允許清單中。換句話說,只有雙方配置了彼此的裝置 ID,才會真正建立同步關係。

但這不等於「使用 Syncthing 這件事不可見」。例如:

  • 開啟全域發現時,裝置會向發現伺服器公告裝置 ID 和監聽位址。
  • 本地發現會在區域網路內發送廣播或多播。
  • relay 伺服器會知道連線裝置的 device ID,但不能解密同步內容。
  • Web GUI 如果對外開放,會暴露這台機器執行了 Syncthing。

所以安全建議很直接:

  • 不要把 Web GUI 暴露到公網,除非你明確做好認證和加密。
  • 只加入你信任的裝置。
  • 重要目錄配合系統磁碟加密或單獨備份。
  • 不需要全域發現、relay 或自動升級時,可以按場景關閉,但要接受連線便利性下降。

不受信任裝置加密

Syncthing 還支援 Untrusted / Encrypted Devices。這個功能可以讓某個不受信任裝置只保存加密後的資料。

一個典型場景是:你有一台雲端伺服器或外部機器,希望它參與同步、承擔中轉或備份角色,但不希望它看到明文檔案。可信裝置向它傳送資料時,會使用資料夾密碼加密;其他可信裝置拿到同樣密碼後,可以從這個不受信任裝置同步並解密。

但官方文件也提醒,這個功能仍應視為 beta / testing。它適合有明確需求的人謹慎使用,不建議一開始就作為主同步方案。

需要特別記住:

  • 檔案資料、檔名、時間、雜湊和目錄結構會被保護。
  • 資料夾 ID、標籤和大致檔案大小不屬於完整保護範圍。
  • 密碼和 folder ID 要可靠保存。
  • 不受信任裝置上的資料夾類型要設為 Receive Encrypted

如果只是家庭 NAS、自己的電腦和手機之間同步,通常先用普通可信裝置模式,把系統登入、磁碟加密和備份做好,會更容易維護。

實用設定建議

如果你準備用 Syncthing 長期同步筆記或文件,可以按這個思路設定:

  1. 每類資料單獨建資料夾,不要混在一個超大目錄裡。
  2. 主力電腦使用 Send & Receive
  3. NAS 或備份機可以考慮 Receive Only,並開啟檔案版本。
  4. 手機端只同步必要目錄,不要同步應用快取目錄。
  5. .stignore 排除快取、臨時檔、工作區狀態檔。
  6. 區域網路內優先保證 22000/TCP22000/UDP21027/UDP 可用。
  7. Web GUI 盡量保持本機監聽,需要遠端管理時優先用 SSH 隧道。
  8. 重要資料不要只依賴同步,仍然需要獨立備份。

在群暉 DSM 上部署 Syncthing

準備工作

先透過 SSH 登入群暉,查詢用於運行 Syncthing 的使用者 ID:

1
id 你的管理員使用者名稱

記下回傳結果裡的 uidgid。常見情況是 uid1026 左右,gid100。後面會把它們分別填到 PUIDPGID

然後在 File Station 中進入 docker 共享資料夾,新建目錄:

1
/docker/syncthing

這個目錄用於保存 Syncthing 的設定檔、資料庫和運行狀態。後續重建容器時,只要這個目錄還在,設定就能保留下來。

下載 Syncthing 映像

打開群暉的 Container Manager,進入左側「登錄檔」,搜尋:

1
syncthing

選擇官方映像 syncthing/syncthing,標籤使用 latest,下載完成後進入「映像」,選中 syncthing/syncthing 並點擊「運行」。

建立容器

容器名稱可以直接填寫:

1
syncthing

建議勾選「啟用自動重新啟動」,這樣群暉重啟後 Syncthing 會自動恢復運行。

設定環境變數

在進階設定裡的環境變數區域新增或修改:

1
2
3
PUID=1026
PGID=100
TZ=Asia/Shanghai

其中 PUIDPGID 要替換成前面透過 id 使用者名稱 查到的真實值。Syncthing 後續讀寫共享資料夾時,會以這個使用者身分存取群暉檔案系統。

固定連接埠

為了後續存取和排錯方便,建議手動固定連接埠映射:

容器連接埠 本機連接埠 協定 用途
8384 8384 TCP Web 管理介面
22000 22000 TCP 資料同步傳輸
22000 22000 UDP QUIC 資料傳輸
21027 21027 UDP 區域網路探索

如果群暉防火牆已開啟,也要放行這些連接埠。只在區域網路內使用時,至少要確保 8384 能從你的電腦存取。

設定目錄映射

目錄映射分兩類:一類是 Syncthing 自己的設定目錄,另一類是你希望同步的群暉共享資料夾。

設定目錄必須這樣映射:

群暉主機路徑 容器內掛載路徑
/docker/syncthing /var/syncthing

然後繼續新增需要同步的資料目錄。例如你想同步群暉上的 /volume1/NasData,可以這樣映射:

群暉主機路徑 容器內掛載路徑
/volume1/NasData /NasData

這裡要特別注意:之後在 Syncthing 網頁端新增資料夾時,填寫的是容器內路徑,例如:

1
/NasData

不要填寫群暉主機路徑 /volume1/NasData。Syncthing 運行在容器裡,只能看到你映射進去的容器內路徑。

如果要同步多個共享資料夾,可以繼續新增多條映射,例如:

1
2
3
/volume1/Photos  ->  /Photos
/volume1/Backup  ->  /Backup
/volume1/NasData ->  /NasData

啟動並存取

確認環境變數、連接埠和目錄映射無誤後,點擊「完成」啟動容器。

然後在瀏覽器打開:

1
http://你的群暉IP:8384

進入 Syncthing 管理介面後,第一件事是設定 Web 管理介面的使用者名稱和密碼。路徑為:

1
操作 -> 設定 -> 圖形使用者介面

不要讓未設定密碼的 Syncthing 管理介面長期暴露在區域網路裡。

新增同步資料夾

點擊「新增資料夾」,在「資料夾路徑」中填寫前面設定的容器內路徑,例如:

1
/NasData

如果權限設定正確,Syncthing 就可以讀寫這個共享資料夾。之後再新增遠端裝置,並選擇要共享的資料夾,就可以開始同步。

將 iPhone 照片同步到電腦或 NAS

先理解 iOS 上的限制

在 Android 上,Syncthing-Fork 可以透過背景服務、執行條件、電池白名單等方式長期執行。但 iOS 不允許第三方同步工具無限制背景常駐。

這意味著:

  • 不能期待它像 NAS 一樣 24 小時同步。
  • App 進入背景後,同步時間可能很短。
  • 大量照片最好主動打開 App 讓它同步完。
  • iCloud 最佳化儲存可能影響原圖讀取。

所以,iPhone 端更適合「定期打開 App 同步照片」,而不是完全無感的背景即時同步。

第一步:安裝客戶端並授予權限

在 App Store 安裝 Mobius Sync 後,第一次打開時要重點處理幾個權限。

通知權限

建議允許通知。它可以提示同步狀態、連線狀態或錯誤資訊。

本機網路權限

這個權限非常重要。

iOS 會單獨詢問 App 是否允許存取本機網路。如果不允許,iPhone 可能無法在區域網路內發現你的電腦、NAS 或 Syncthing 節點。

如果之前誤點了拒絕,可以到系統設定中重新開啟。

相簿存取權限

如果要同步照片,必須允許存取相簿。

建議選擇:

1
Full Access to Photos

如果只給有限照片存取權限,Mobius Sync 可能只能看到你選擇的那部分照片,後續新增照片也可能不同步。

第二步:iPhone 和電腦/NAS 配對

Syncthing 的配對邏輯仍然是互相加入裝置 ID。

在 iPhone 上:

  1. 打開 Mobius Sync
  2. 進入 Settings
  3. 打開 Device ID
  4. 保持 QR code 畫面。

在電腦或 NAS 上:

  1. 打開 Syncthing Web UI。
  2. 點擊 新增遠端裝置
  3. 掃描 iPhone 上的 QR code,或手動輸入裝置 ID。
  4. 給裝置起名,例如 My-iPhone
  5. 儲存。

回到 iPhone,等待連線請求提示,然後點擊 Accept

到這裡,iPhone 和電腦/NAS 已經互相信任,但還沒有共享相簿。

第三步:在 iPhone 上建立相簿同步資料夾

iOS 不像 Android 那樣直接讓你選擇 /DCIM/Camera 路徑。Mobius Sync 對系統相簿做了專門支援,配置時要選擇相簿類型。

Mobius Sync 中:

  1. 切換到 Folders
  2. 點擊右上角 +
  3. 新建資料夾。

關鍵欄位:

  • Folder Type:選擇 Camera Roll
  • Folder Label:填寫容易識別的名字,例如 iPhone_Photos
  • Folder ID:可以保留自動產生,也可以用穩定英文 ID。
  • Folder Path:保持預設,讓客戶端關聯 iOS 系統相簿。

然後在 Sharing 區域勾選剛剛配對的電腦或 NAS。

第四步:iPhone 端設為 Send Only

相簿同步通常是「手機發給 NAS」,不是雙向編輯。

因此,在 iPhone 端把資料夾類型設為:

1
Send Only

這樣 iPhone 負責把照片傳送出去,不接收電腦或 NAS 的反向修改。

這個設定可以降低誤操作風險。比如你在電腦端整理備份目錄時,不希望這些改動影響 iPhone 相簿。

但仍然要記住:Syncthing 是同步工具,不是完整備份系統。真正的長期照片安全,還需要 NAS 端快照、檔案版本或獨立備份。

第五步:在電腦或 NAS 端接收照片

iPhone 端儲存後,電腦或 NAS 的 Syncthing Web UI 會出現提示:

1
Device My-iPhone wants to share folder iPhone_Photos

點擊新增。

設定儲存路徑。

Windows 可以類似:

1
D:\Backups\iPhone_Photos

Linux 或 NAS 可以類似:

1
/volume1/photos/iphone

如果 Syncthing 跑在 Docker 中,要填寫容器內路徑。例如宿主機掛載:

1
- /volume1/photos:/var/syncthing/photos

Web UI 中應填寫:

1
/var/syncthing/photos/iphone

接收端建議設為 Receive Only

在電腦或 NAS 端,也建議把這個資料夾類型設為:

1
Receive Only

這樣接收端只接收 iPhone 傳來的照片,不把本地變化同步回 iPhone。

這是第二層保險:

  • iPhone 端:Send Only
  • NAS 端:Receive Only

兩邊都按單向備份思路配置,更符合照片歸檔場景。

iOS 背景同步的現實限制

iOS 對背景執行限制很嚴格。即使配置正確,也不要期待 Mobius Sync 一直在背景默默跑。

常見情況是:

  • App 打開時同步速度正常。
  • 切到背景後還能同步一小段時間。
  • 過一會兒系統會暫停或限制它。
  • 位置變化、系統排程或短暫背景視窗可能再次喚醒。

最可靠的實踐很樸素:

  1. 拍了大量照片後,主動打開 Mobius Sync
  2. 讓手機保持亮螢幕或不要太快鎖定。
  3. 等待它把新照片同步完。
  4. 再關閉 App 或鎖定螢幕。

如果你習慣每隔幾天做一次相簿備份,這個方式比較可靠。

避免 iCloud 最佳化儲存影響同步

如果 iPhone 開啟了:

1
最佳化 iPhone 儲存空間

系統可能只在本地保留縮圖,原圖留在 iCloud。第三方同步客戶端讀取照片時,可能拿不到完整原圖,導致同步失敗、跳過或需要等待系統下載。

更適合同步備份的設定是:

1
下載並保留原始檔

路徑通常在:

1
設定 -> Apple ID -> iCloud -> 照片

如果手機空間不夠,必須開啟最佳化儲存,那麼同步前可能需要先在系統相簿裡打開相關照片,讓 iPhone 把原圖從 iCloud 下載回來,再啟動 Mobius Sync 同步。

大量照片首次同步建議

第一次同步 iPhone 相簿時,可能有幾千張甚至幾萬張照片。建議不要急著一次做完。

可以這樣處理:

  1. 先同步少量照片測試。
  2. 確認 NAS 路徑正確。
  3. 確認資料夾類型是 Send Only / Receive Only。
  4. 確認接收端不會反向影響 iPhone。
  5. 再開始完整同步。

首次同步時最好:

  • iPhone 接入電源。
  • 保持 Wi-Fi 穩定。
  • 打開 Mobius Sync 前景執行。
  • NAS 或電腦保持在線。

照片數量很大時,同步時間可能比較長,這是正常的。

推薦配置

一個比較穩的 iPhone 照片同步方案:

  1. iPhone 安裝 Mobius Sync
  2. 允許通知、本機網路和完整相簿存取。
  3. iPhone 與 NAS 互加裝置 ID。
  4. 在 iPhone 新建 Camera Roll 資料夾。
  5. 資料夾標籤設為 iPhone_Photos
  6. iPhone 端資料夾類型設為 Send Only
  7. NAS 端接收路徑設為 /volume1/photos/iphone
  8. NAS 端資料夾類型設為 Receive Only
  9. NAS 端開啟檔案版本或快照。
  10. 每隔幾天主動打開 Mobius Sync 完成同步。

如果你非常依賴自動背景照片備份,iOS 會比 Android 麻煩一些。iOS 的限制決定了第三方同步工具很難做到完全無感背景常駐。

多資料夾治理與版本控制

Folder ID 比資料夾標籤更重要

在 Syncthing 中,真正識別一個同步資料夾的是 Folder ID,不是你看到的標籤名稱。

標籤只是顯示名稱,可以在不同設備上不一樣。Folder ID 才是判斷「這些設備上的資料夾是否屬於同一個同步組」的關鍵。

所以,在第一台設備建立資料夾時,建議手動指定規範 ID。

例如:

1
2
3
4
5
6
notes-main
work-docs
backup-pixel-photos
backup-iphone-photos
media-ebooks
code-projects

不要使用隨手產生的隨機 ID,也不要只寫 testsyncnew-folder 這類無法長期維護的名字。

命名規則可以簡單一些:

  • 雙向同步:notes-mainwork-docs
  • 手機備份:backup-pixel-photosbackup-iphone-photos
  • 資料分發:media-ebooksmedia-music
  • 程式碼目錄:code-projects

以後在其他設備接收共享時,只要看到 Folder ID,就能判斷它是什麼用途。

中心節點路徑要規範

在 NAS 或中心電腦上,建議建立一個統一的 Syncthing 根目錄。

例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
/volume1/Syncthing/
├── Phone_Backup/
│   ├── iPhone15_DCIM/
│   └── Pixel7_DCIM/
├── Work/
│   ├── Office_Docs/
│   └── Coding_Projects/
├── Notes/
│   └── Main_Notes/
└── Media/
    └── eBooks/

不要把同步目錄散落在系統各處。散落的目錄短期方便,長期一定難維護。

推薦原則:

  • 所有 Syncthing 管理的目錄放在統一根目錄下。
  • 手機備份、工作文件、媒體資料分區存放。
  • 資料夾名稱體現用途,不體現臨時設備狀態。
  • 不把系統目錄、下載快取目錄直接作為長期同步目錄。

如果 Syncthing 跑在 Docker 中,還要注意容器內路徑和宿主機路徑的對應關係。

例如宿主機目錄:

1
/volume1/Syncthing/Phone_Backup/iPhone15_DCIM

映射到容器內:

1
/var/syncthing/Phone_Backup/iPhone15_DCIM

Web UI 裡填寫的是容器內路徑,不是宿主機路徑。

區分備份和雙向同步

多資料夾管理裡,最重要的一件事是:不要所有目錄都用 Send & Receive

不同目錄的資料方向不一樣。

手機照片備份

手機端:

1
Send Only

NAS 端:

1
Receive Only

這樣手機負責發送照片,NAS 負責接收保存。手機清理空間、NAS 整理目錄時,都不容易互相影響。

多端文件和筆記

電腦端:

1
Send & Receive

NAS 端:

1
Send & Receive

手機端是否加入雙向同步,要看你是否真的在手機上編輯這些檔案。如果手機只查看資料,可以考慮 Receive Only

資料分發

NAS 端:

1
Send Only

其他設備:

1
Receive Only

適合電子書、安裝包、參考資料這類中心分發目錄。

備份目錄

主設備:

1
Send Only

備份機:

1
Receive Only

再配合備份機端版本控制或快照。

NAS 上開啟檔案版本控制

多設備同步最怕誤刪和誤覆蓋。

例如:

  • 某台電腦誤刪了工作文件。
  • 手機清理工具刪了相簿目錄。
  • 兩台設備同時改了同一份筆記。
  • 某個同步規則寫錯,把空目錄同步過去。

因此,中心節點最好開啟檔案版本控制。

在 NAS 的 Syncthing Web UI 中:

  1. 打開對應資料夾設定。
  2. 進入檔案版本控制。
  3. 選擇合適的版本策略。

常用選擇是 Staggered File Versioning,也就是階段版本控制。它會按時間間隔保留歷史版本,越舊保留得越稀疏。

也可以用更簡單的策略:

  • Trash Can File Versioning:類似回收站。
  • Simple File Versioning:保留固定數量版本。
  • Staggered File Versioning:按時間階段保留。

如果不知道選什麼,普通家庭 NAS 可以先從 Trash Can 或 Staggered 開始。

版本控制不是完整備份,但它是多設備同步裡的後悔藥。

多資料夾命名範例

可以建立一套固定命名方式。

手機照片:

1
2
3
Folder ID: backup-pixel-photos
Label: Pixel Photos
NAS Path: /volume1/Syncthing/Phone_Backup/Pixel7_DCIM

iPhone 照片:

1
2
3
Folder ID: backup-iphone-photos
Label: iPhone Photos
NAS Path: /volume1/Syncthing/Phone_Backup/iPhone15_DCIM

主筆記庫:

1
2
3
Folder ID: notes-main
Label: Main Notes
NAS Path: /volume1/Syncthing/Notes/Main_Notes

工作文件:

1
2
3
Folder ID: work-docs
Label: Work Docs
NAS Path: /volume1/Syncthing/Work/Office_Docs

電子書:

1
2
3
Folder ID: media-ebooks
Label: eBooks
NAS Path: /volume1/Syncthing/Media/eBooks

只要 ID、標籤、路徑都有規律,多設備之後也不會失控。

推薦整體方案

如果你已經有 Docker 版 Syncthing 跑在 NAS 上,可以這樣設計:

  1. NAS 作為中心節點。
  2. NAS 設為引入者。
  3. 所有設備只和 NAS 配對。
  4. 所有同步目錄放在 /volume1/Syncthing/ 下面。
  5. 手機照片目錄使用手機 Send Only、NAS Receive Only
  6. 工作文件和筆記使用 Send & Receive
  7. 資料分發目錄使用 NAS Send Only、其他設備 Receive Only
  8. NAS 上對重要資料夾開啟版本控制。
  9. 程式碼和快取目錄設定忽略規則。
  10. NAS 本身再做快照或異地備份。

這套結構建立起來後,再新增新設備或新資料夾,只需要按規則放進去,不需要每次重新思考同步關係。

多裝置拓撲與配對

先理解「對等」和「偽伺服器」

Syncthing 裡的每台設備都有自己的 device ID。只要兩台設備互相加入對方 ID,並且共享同一個資料夾,它們就能同步。

所以,Syncthing 本身沒有「伺服器端必須保存所有資料」這個概念。你看到的「伺服器」,往往只是人為指定的一台常開設備。

例如:

  • NAS 長期開機、空間大,適合作為中心節點。
  • 手機和筆電經常離線,適合作為邊緣設備。
  • 桌機效能強,但不一定 24 小時開機,可以作為普通同步節點。

這個「中心節點」不是協議上的伺服器,而是你在拓撲設計中讓它承擔管理和中轉角色。

模式一:純對等 Mesh 網路

純對等模式下,每台設備都和其他所有設備配對。

例如你有四台設備:

  • NAS
  • 桌機
  • 筆電
  • 手機

那麼每台設備都要和另外三台設備建立連線。這樣任何兩台在線設備之間都可以直接同步。

優點:

  • 傳輸路徑更直接。
  • 某台設備離線時,其他在線設備仍然可以互相同步。
  • 不依賴某一個中心節點。

缺點:

  • 設備越多,配對關係越複雜。
  • 新增設備時,需要在多台舊設備上確認和配置。
  • 資料夾共享關係容易分散。

設備數量少時,純對等模式很舒服。比如只有一台電腦和一支手機,或者兩台電腦互相同步筆記,就不需要想太複雜。

但當設備數量變成五六台以上,手動維護全連線關係會越來越麻煩。

模式二:以 NAS 為中心的星型拓撲

星型模式更適合家庭和個人生產力場景。

做法是:選一台長期開機、空間足夠、網路穩定的設備作為中心節點,例如:

  • NAS
  • 群暉
  • 軟路由
  • 迷你主機
  • 家用 Linux 伺服器

然後其他設備只和它配對:

1
2
3
手機 ----\
筆電 ---- NAS
桌機 ----/

手機不需要直接配對筆電,筆電也不需要直接配對桌機。它們都透過 NAS 間接同步資料。

優點:

  • 管理簡單。
  • 新增設備只需要和 NAS 配對。
  • NAS 可以承擔版本保留和備份緩衝。
  • 適合 24 小時在線同步。

缺點:

  • NAS 離線時,其他設備之間不一定能繼續同步。
  • 如果所有流量都經過 NAS,NAS 的網路和磁碟效能會影響體驗。
  • 中心節點權限要管理好。

如果你已經有 NAS 或常開小主機,優先推薦星型拓撲。它保留了 Syncthing 的 P2P 能力,又讓日常管理更接近「中心化同步」。

多設備配置的基本順序

不管用哪種拓撲,Syncthing 的配置順序都是:

  1. 先配對設備。
  2. 再共享資料夾。
  3. 最後在接收端確認路徑。

不要反過來一開始就到處建立資料夾。先把設備關係理清楚,後面才不容易亂。

第一步:設備互聯

假設要連接設備 A 和設備 B。

設備 A 可以是手機,設備 B 可以是 NAS 或電腦。

在設備 A 上:

  1. 打開 Syncthing Web UI。
  2. 點擊右上角 操作
  3. 選擇 顯示 ID
  4. 複製設備 ID,或者顯示 QR code。

在設備 B 上:

  1. 打開 Syncthing Web UI。
  2. 點擊 新增遠端設備
  3. 填入設備 A 的 ID。
  4. 給設備起一個容易識別的名稱,例如 My-Phone
  5. 儲存。

然後回到設備 A。它通常會彈出提示:設備 B 想要連接。點擊接受。

到這一步,兩台設備已經建立了對等關係,但還沒有開始同步任何資料夾。

第二步:建立並共享資料夾

在設備 A 上點擊 新增資料夾

常用欄位:

  • 資料夾標籤:給自己看的名字,例如 Notes
  • 資料夾 ID:跨設備識別用,建議用穩定英文,例如 notes
  • 資料夾路徑:這台設備上的真實路徑。

然後切換到 共享 分頁,勾選剛剛配對成功的設備 B。

儲存後,設備 A 會把這個資料夾共享邀請發給設備 B。

第三步:接收共享

打開設備 B 的 Web UI,等待幾秒鐘,通常會看到提示:

1
設備 A 想共享一個資料夾

點擊新增,然後在設備 B 上指定本地儲存路徑。

例如:

1
/volume1/notes

或者 Docker 部署場景下的容器內路徑:

1
/var/syncthing/notes

儲存後,同步正式開始。

這裡要注意:不同設備上的路徑可以不一樣。Syncthing 透過資料夾 ID 識別同步關係,不要求每台設備使用相同的本地路徑。

星型拓撲怎麼配置

如果你採用 NAS 中心模式,建議這樣做:

  1. 先在 NAS 上部署 Syncthing。
  2. 所有手機、電腦、伺服器都只和 NAS 配對。
  3. 在 NAS 上建立或接收主要同步資料夾。
  4. 每台新設備只加入 NAS 的 device ID。
  5. 需要同步哪個資料夾,就在 NAS 和對應設備之間共享。

例如:

1
2
3
4
5
NAS
├── notes       -> 桌機、筆電、手機
├── photos      -> 手機、備份碟
├── downloads   -> 桌機、NAS
└── scripts     -> 桌機、筆電

這樣結構非常清楚。你可以把 NAS 當作同步關係的控制面板。

引入者是什麼?

Syncthing 有一個很實用的功能:Introducer,中文介面裡通常叫「引入者」。

它適合多設備場景。

假設你把 NAS 設為引入者。之後新設備只要和 NAS 配對,NAS 就可以把它知道的其他設備介紹給新設備,也可以幫助同步已有的共享關係。

這樣可以減少重複點擊和重複配對。

適合:

  • 家裡有多台電腦和手機。
  • NAS 作為長期中心節點。
  • 經常新增設備。
  • 希望減少手動維護設備關係。

但也要注意,引入者會擴大自動建立關係的範圍。不要把不完全信任的設備設為引入者,也不要在不清楚拓撲的情況下隨手勾選。

更穩妥的做法是:

  • 只把 NAS 或主伺服器設為引入者。
  • 普通手機、筆電不要設為引入者。
  • 新設備加入後,檢查它被自動加入了哪些設備和資料夾。

不同目錄可以用不同拓撲

Syncthing 的拓撲不一定要全站統一。你可以按資料夾設計。

例如:

  • notes:桌機、筆電、手機、NAS 都使用 Send & Receive。
  • photos:手機發送,NAS 接收並保留版本。
  • downloads:NAS 和桌機同步,手機不參與。
  • backup:主電腦 Send Only,NAS Receive Only。

不要把所有目錄都套進同一種規則。多設備同步真正重要的是資料方向,而不是設備數量。

衝突和誤刪要提前想

多設備同步最常見的問題不是配置失敗,而是同步成功之後發生誤刪或衝突。

容易出問題的場景:

  • 兩台設備同時編輯同一個檔案。
  • 手機端應用自動清理目錄。
  • 一台設備路徑填錯,建立了空目錄並同步過去。
  • 把快取、暫存檔、工作區狀態檔案一起同步。
  • NAS 端沒有開啟版本保留。

建議:

  • 重要目錄在 NAS 上開啟檔案版本。
  • 使用 .stignore 排除快取和暫存檔。
  • 新資料夾第一次同步前,先用少量測試檔案驗證。
  • 不確定刪除策略時,不要把所有設備都設為 Send & Receive。

推薦配置

如果你有 NAS 或常開伺服器,推薦直接使用星型拓撲:

  1. NAS 作為中心節點。
  2. NAS 和所有設備配對。
  3. 普通設備只和 NAS 配對。
  4. NAS 可以設為引入者。
  5. 不同資料夾按用途選擇 Send & Receive、Send Only 或 Receive Only。
  6. 重要資料夾在 NAS 上開啟檔案版本。
  7. 新設備加入後,先共享一個測試資料夾確認路徑和權限。

如果你只有兩三台設備,而且都經常在線,可以用純對等模式。它更直接,速度也可能更好。

適合和不適合

Syncthing 適合:

  • 你希望資料主要留在自己的裝置上。
  • 你願意理解裝置配對、同步目錄和衝突處理。
  • 你有 NAS、家用伺服器或多台個人裝置。
  • 你想同步 Markdown、照片中轉、腳本、輕量文件。

Syncthing 不太適合:

  • 需要多人線上協作編輯。
  • 需要網頁端檔案預覽和分享連結。
  • 需要細粒度團隊權限。
  • 不想處理任何網路、防火牆和衝突問題。

它更像一個可靠的「裝置間同步層」,而不是完整的雲端硬碟產品。用得好,Syncthing 可以把 NAS、電腦、手機連成一個可控的資料網路;用得太隨意,也可能因為衝突、誤刪、忽略規則和網路設定變成維護負擔。

參考資料