Syncthing 多設備多資料夾怎麼管理?拓撲、命名和版本控制

整理 Syncthing 多設備、多資料夾管理方法:用 NAS 建立星型拓撲,統一 Folder ID 和目錄規範,使用引入者降低配對成本,並透過資料夾類型、版本控制和忽略規則降低誤刪、衝突和快取同步風險。

Syncthing 系列目錄

Syncthing 設備一多,資料夾一多,如果不提前規劃,很快就會變亂。 典型情況是:手機、平板、筆電、桌機、NAS 都在同步;資料夾裡又有照片、工作文件、程式碼專案、微信備份、電子書。每一台設備都可能修改,每一個目錄都可能共享,最後你很難判斷「這個檔案到底從哪裡來,又會同步到哪裡去」。

要把 Syncthing 用穩,核心不是多裝幾個客戶端,而是建立一套管理規則:

  • 拓撲上使用星型結構。
  • 資料夾上統一 ID 和路徑。
  • 設備關係上使用引入者。
  • 資料方向上區分備份和雙向同步。
  • 中心節點上開啟版本控制。
  • 暫存檔案用忽略規則過濾。

拓撲:放棄全連接,優先星型

Syncthing 是 P2P 對等架構,但不代表所有設備都要兩兩配對。

如果 5 台設備互相全連接,需要維護 10 組設備關係。新增一個資料夾時,還要在多台設備上接收、設定路徑、確認共享。設備越多,管理成本越高。

更推薦的方式是星型拓撲。

選一台長期在線、空間大、網路穩定的設備作為中心節點:

  • NAS
  • 群暉
  • 軟路由
  • 迷你主機
  • 24 小時開機的電腦

其他設備只和中心節點配對:

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

手機不直接加入筆電,筆電也不直接加入桌機。手機要把照片同步給電腦,先同步到 NAS,再由 NAS 同步給電腦。

這樣做的好處是:

  • 新設備只需要和 NAS 配對。
  • 資料夾關係集中在 NAS 上管理。
  • NAS 可以統一做版本保留。
  • 設備離線時,NAS 仍然能作為緩衝點。

缺點是 NAS 變得更重要了。它應該穩定運作,並且需要單獨備份。

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 裡填寫的是容器內路徑,不是宿主機路徑。

引入者:減少多設備配對成本

Syncthing 的 Introducer,中文介面通常稱為「引入者」。

它適合星型拓撲。

做法是:把 NAS 設為引入者。之後新設備只要和 NAS 配對,NAS 就可以把已知設備和共享關係介紹給新設備,減少你在各個設備之間重複掃碼、重複新增的工作。

適合:

  • 家裡有多台電腦和手機。
  • NAS 是長期中心節點。
  • 經常新增設備。
  • 希望減少設備配對操作。

但不要亂用。

建議:

  • 只把 NAS 或主伺服器設為引入者。
  • 普通手機、平板、臨時電腦不要設為引入者。
  • 新設備加入後,檢查它被自動新增了哪些設備和資料夾。
  • 不信任的設備不要進入引入者管理範圍。

引入者能提高效率,也會擴大自動關聯範圍。它適合有清晰中心節點的網路,不適合混亂的臨時設備環境。

區分備份和雙向同步

多資料夾管理裡,最重要的一件事是:不要所有目錄都用 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 開始。

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

用忽略規則過濾暫存檔案

多設備同步程式碼專案、文件目錄或聊天備份時,暫存檔案和快取很容易製造麻煩。

常見問題:

  • 佔用大量頻寬。
  • 產生無意義衝突。
  • 不同系統產生不同快取檔案。
  • 刪除目錄時被忽略檔案阻擋。

可以在資料夾設定的 Ignore Patterns 中新增規則。

通用暫存檔案:

1
2
3
(?d).DS_Store
(?d)Thumbs.db
(?d)*~

Node / Python / Java 專案:

1
2
3
4
(?d)node_modules/
(?d)__pycache__/
(?d).pytest_cache/
(?d)target/

如果程式碼專案本身已經用 Git 管理,通常不建議用 Syncthing 同步 .git 目錄。可以忽略:

1
(?d).git/

(?d) 的意思是:如果整個目錄準備被刪除,Syncthing 可以刪除這些本地產生的忽略檔案,不會因為殘留快取而阻止目錄刪除。

忽略規則不要一次寫太複雜。先覆蓋最明顯的快取和暫存檔案,再根據實際衝突慢慢調整。

多資料夾命名範例

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

手機照片:

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 的自由度很高,但自由度越高,越需要規則。

多設備、多資料夾場景下,不建議做全連接網狀同步。更穩的方式是讓 NAS 或常開電腦做中心節點,統一 Folder ID、統一路徑、統一版本控制,再用資料夾類型區分備份、雙向同步和資料分發。

這樣既保留了 Syncthing 的 P2P 能力,又把日常管理收束到一台中心設備上。設備再多,資料夾再多,也不會變成一團亂線。

记录并分享
使用 Hugo 建立
主題 StackJimmy 設計