Syncthing 系列目錄
- Syncthing 怎麼用?從設備配對到檔案同步的實用筆記
- 用 Docker 部署 Syncthing:Compose、連接埠和目錄映射避坑
- Syncthing 多設備怎麼設定?對等網路、星型拓撲和引入者
- Android 上怎麼用 Syncthing?Syncthing-Fork 設定與照片備份
- Syncthing 多設備多資料夾怎麼管理?拓撲、命名和版本控制
- Syncthing 如何同步 iPhone 照片到電腦或 NAS
Syncthing 設備一多,資料夾一多,如果不提前規劃,很快就會變亂。 典型情況是:手機、平板、筆電、桌機、NAS 都在同步;資料夾裡又有照片、工作文件、程式碼專案、微信備份、電子書。每一台設備都可能修改,每一個目錄都可能共享,最後你很難判斷「這個檔案到底從哪裡來,又會同步到哪裡去」。
要把 Syncthing 用穩,核心不是多裝幾個客戶端,而是建立一套管理規則:
- 拓撲上使用星型結構。
- 資料夾上統一 ID 和路徑。
- 設備關係上使用引入者。
- 資料方向上區分備份和雙向同步。
- 中心節點上開啟版本控制。
- 暫存檔案用忽略規則過濾。
拓撲:放棄全連接,優先星型
Syncthing 是 P2P 對等架構,但不代表所有設備都要兩兩配對。
如果 5 台設備互相全連接,需要維護 10 組設備關係。新增一個資料夾時,還要在多台設備上接收、設定路徑、確認共享。設備越多,管理成本越高。
更推薦的方式是星型拓撲。
選一台長期在線、空間大、網路穩定的設備作為中心節點:
- NAS
- 群暉
- 軟路由
- 迷你主機
- 24 小時開機的電腦
其他設備只和中心節點配對:
|
|
手機不直接加入筆電,筆電也不直接加入桌機。手機要把照片同步給電腦,先同步到 NAS,再由 NAS 同步給電腦。
這樣做的好處是:
- 新設備只需要和 NAS 配對。
- 資料夾關係集中在 NAS 上管理。
- NAS 可以統一做版本保留。
- 設備離線時,NAS 仍然能作為緩衝點。
缺點是 NAS 變得更重要了。它應該穩定運作,並且需要單獨備份。
Folder ID 比資料夾標籤更重要
在 Syncthing 中,真正識別一個同步資料夾的是 Folder ID,不是你看到的標籤名稱。
標籤只是顯示名稱,可以在不同設備上不一樣。Folder ID 才是判斷「這些設備上的資料夾是否屬於同一個同步組」的關鍵。
所以,在第一台設備建立資料夾時,建議手動指定規範 ID。
例如:
|
|
不要使用隨手產生的隨機 ID,也不要只寫 test、sync、new-folder 這類無法長期維護的名字。
命名規則可以簡單一些:
- 雙向同步:
notes-main、work-docs - 手機備份:
backup-pixel-photos、backup-iphone-photos - 資料分發:
media-ebooks、media-music - 程式碼目錄:
code-projects
以後在其他設備接收共享時,只要看到 Folder ID,就能判斷它是什麼用途。
中心節點路徑要規範
在 NAS 或中心電腦上,建議建立一個統一的 Syncthing 根目錄。
例如:
|
|
不要把同步目錄散落在系統各處。散落的目錄短期方便,長期一定難維護。
推薦原則:
- 所有 Syncthing 管理的目錄放在統一根目錄下。
- 手機備份、工作文件、媒體資料分區存放。
- 資料夾名稱體現用途,不體現臨時設備狀態。
- 不把系統目錄、下載快取目錄直接作為長期同步目錄。
如果 Syncthing 跑在 Docker 中,還要注意容器內路徑和宿主機路徑的對應關係。
例如宿主機目錄:
|
|
映射到容器內:
|
|
Web UI 裡填寫的是容器內路徑,不是宿主機路徑。
引入者:減少多設備配對成本
Syncthing 的 Introducer,中文介面通常稱為「引入者」。
它適合星型拓撲。
做法是:把 NAS 設為引入者。之後新設備只要和 NAS 配對,NAS 就可以把已知設備和共享關係介紹給新設備,減少你在各個設備之間重複掃碼、重複新增的工作。
適合:
- 家裡有多台電腦和手機。
- NAS 是長期中心節點。
- 經常新增設備。
- 希望減少設備配對操作。
但不要亂用。
建議:
- 只把 NAS 或主伺服器設為引入者。
- 普通手機、平板、臨時電腦不要設為引入者。
- 新設備加入後,檢查它被自動新增了哪些設備和資料夾。
- 不信任的設備不要進入引入者管理範圍。
引入者能提高效率,也會擴大自動關聯範圍。它適合有清晰中心節點的網路,不適合混亂的臨時設備環境。
區分備份和雙向同步
多資料夾管理裡,最重要的一件事是:不要所有目錄都用 Send & Receive。
不同目錄的資料方向不一樣。
手機照片備份
手機端:
|
|
NAS 端:
|
|
這樣手機負責發送照片,NAS 負責接收保存。手機清理空間、NAS 整理目錄時,都不容易互相影響。
多端文件和筆記
電腦端:
|
|
NAS 端:
|
|
手機端是否加入雙向同步,要看你是否真的在手機上編輯這些檔案。如果手機只查看資料,可以考慮 Receive Only。
資料分發
NAS 端:
|
|
其他設備:
|
|
適合電子書、安裝包、參考資料這類中心分發目錄。
備份目錄
主設備:
|
|
備份機:
|
|
再配合備份機端版本控制或快照。
NAS 上開啟檔案版本控制
多設備同步最怕誤刪和誤覆蓋。
例如:
- 某台電腦誤刪了工作文件。
- 手機清理工具刪了相簿目錄。
- 兩台設備同時改了同一份筆記。
- 某個同步規則寫錯,把空目錄同步過去。
因此,中心節點最好開啟檔案版本控制。
在 NAS 的 Syncthing Web UI 中:
- 打開對應資料夾設定。
- 進入檔案版本控制。
- 選擇合適的版本策略。
常用選擇是 Staggered File Versioning,也就是階段版本控制。它會按時間間隔保留歷史版本,越舊保留得越稀疏。
也可以用更簡單的策略:
- Trash Can File Versioning:類似回收站。
- Simple File Versioning:保留固定數量版本。
- Staggered File Versioning:按時間階段保留。
如果不知道選什麼,普通家庭 NAS 可以先從 Trash Can 或 Staggered 開始。
版本控制不是完整備份,但它是多設備同步裡的後悔藥。
用忽略規則過濾暫存檔案
多設備同步程式碼專案、文件目錄或聊天備份時,暫存檔案和快取很容易製造麻煩。
常見問題:
- 佔用大量頻寬。
- 產生無意義衝突。
- 不同系統產生不同快取檔案。
- 刪除目錄時被忽略檔案阻擋。
可以在資料夾設定的 Ignore Patterns 中新增規則。
通用暫存檔案:
|
|
Node / Python / Java 專案:
|
|
如果程式碼專案本身已經用 Git 管理,通常不建議用 Syncthing 同步 .git 目錄。可以忽略:
|
|
(?d) 的意思是:如果整個目錄準備被刪除,Syncthing 可以刪除這些本地產生的忽略檔案,不會因為殘留快取而阻止目錄刪除。
忽略規則不要一次寫太複雜。先覆蓋最明顯的快取和暫存檔案,再根據實際衝突慢慢調整。
多資料夾命名範例
可以建立一套固定命名方式。
手機照片:
|
|
iPhone 照片:
|
|
主筆記庫:
|
|
工作文件:
|
|
電子書:
|
|
只要 ID、標籤、路徑都有規律,多設備之後也不會失控。
推薦整體方案
如果你已經有 Docker 版 Syncthing 跑在 NAS 上,可以這樣設計:
- NAS 作為中心節點。
- NAS 設為引入者。
- 所有設備只和 NAS 配對。
- 所有同步目錄放在
/volume1/Syncthing/下面。 - 手機照片目錄使用手機
Send Only、NASReceive Only。 - 工作文件和筆記使用
Send & Receive。 - 資料分發目錄使用 NAS
Send Only、其他設備Receive Only。 - NAS 上對重要資料夾開啟版本控制。
- 程式碼和快取目錄設定忽略規則。
- NAS 本身再做快照或異地備份。
這套結構建立起來後,再新增新設備或新資料夾,只需要按規則放進去,不需要每次重新思考同步關係。
總結
Syncthing 的自由度很高,但自由度越高,越需要規則。
多設備、多資料夾場景下,不建議做全連接網狀同步。更穩的方式是讓 NAS 或常開電腦做中心節點,統一 Folder ID、統一路徑、統一版本控制,再用資料夾類型區分備份、雙向同步和資料分發。
這樣既保留了 Syncthing 的 P2P 能力,又把日常管理收束到一台中心設備上。設備再多,資料夾再多,也不會變成一團亂線。