Syncthing 系列目錄
- Syncthing 怎麼用?從裝置配對到檔案同步的實用筆記
- 用 Docker 部署 Syncthing:Compose、連接埠和目錄映射避坑
- Syncthing 多裝置怎麼配?對等網路、星型拓撲和引入者
- Android 上怎麼用 Syncthing?Syncthing-Fork 設定與照片備份
- Syncthing 多裝置多資料夾怎麼管理?拓撲、命名和版本控制
- Syncthing 如何同步 iPhone 照片到電腦或 NAS
Syncthing 適合用來做多裝置之間的點對點檔案同步。它不是傳統網路硬碟,也不是把所有資料先上傳到某個中心伺服器再下載回來,而是讓已授權的裝置直接交換檔案。
如果你正在考慮用它同步 Markdown 筆記、照片備份、設定檔或家庭 NAS 目錄,重點不只是「能不能同步」,而是先理解幾個基本概念:裝置、資料夾、裝置 ID、同步方向、發現方式和衝突處理。
Syncthing 解決什麼問題
Syncthing 的核心場景是:你有兩台或多台裝置,希望它們之間保持某個目錄一致。
典型例子:
- Windows 桌機和筆電之間同步工作資料。
- 手機和 NAS 之間同步照片或文件。
- 多台 Linux 伺服器之間同步設定範例、腳本或小型資料目錄。
- Obsidian、Joplin 外部附件、Markdown 筆記目錄在多裝置間同步。
它更適合「自己控制裝置和資料」的同步場景。如果你需要多人權限管理、線上預覽、分享連結或協作編輯,傳統網路硬碟或文件協作平台會更合適。
第一次啟動後會發生什麼
官方入門文件建議把兩台機器並行設定。Syncthing 裡,一台機器叫一個 device。你正在設定的機器是 local device,另一台要同步的機器是 remote device。
第一次啟動 Syncthing 時,它會產生設定檔、加密金鑰和裝置 ID,並預設在本機開啟 Web GUI:
|
|
這個 Web GUI 是日常設定入口。官方文件也提到,預設可能會建立一個 Default Folder,通常對應使用者目錄下的 Sync 資料夾。你可以先用它測試,也可以後面刪除並新增自己的目錄。
裝置 ID 是配對基礎
Syncthing 的裝置配對靠 device ID。
每台裝置首次啟動時都會產生自己的金鑰,裝置 ID 可以理解為這個裝置憑證的可讀指紋。兩台裝置只有互相加入對方的裝置 ID,才會建立連線並同步。
實際操作順序通常是:
- 在兩台裝置上都啟動 Syncthing。
- 分別開啟 Web GUI。
- 在 A 上加入 B 的 device ID。
- 在 B 上加入 A 的 device ID。
- 選擇要共享的資料夾。
- 儲存後等待兩邊連線。
裝置 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 等機制讓裝置互相找到,但網路越清楚,連線越穩定。
官方防火牆文件列出的關鍵連接埠是:
|
|
其中:
22000/TCP用於 TCP 同步流量。22000/UDP用於 QUIC 同步流量。21027/UDP用於本地發現廣播或多播。
如果裝置在同一個區域網路內,但一直發現不了,優先檢查本機防火牆、路由器隔離、Wi-Fi 和 LAN 是否被分到不同網段。
如果裝置跨公網或跨 NAT,能做連接埠轉發時,直接連線通常比 relay 更好。沒有連接埠轉發時,relay 也可能讓裝置連上,但效能會比直連差。
Linux 上如果使用 ufw 並安裝了對應套件,可以用:
|
|
Web GUI 預設只監聽本機的 127.0.0.1:8384。如果要遠端存取 GUI,可以改成 0.0.0.0:8384,但這代表管理介面對外暴露,必須同時考慮密碼、HTTPS、反向代理或 SSH 隧道。普通家庭場景下,更推薦用 SSH 隧道存取遠端 GUI。
.stignore 要放在同步根目錄
如果有些檔案不想同步,可以在同步資料夾根目錄建立 .stignore。
注意幾個細節:
.stignore必須放在同步資料夾的根目錄。- 規則相對於同步根目錄生效。
.stignore本身不會同步到其他裝置。- 檔案內容應使用 UTF-8 編碼。
一個簡單例子:
|
|
(?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 會識別衝突。兩台裝置同時修改同一個檔案,而且內容不同,就可能產生類似這樣的衝突檔案:
|
|
這比靜默覆蓋安全,但也代表你要定期清理衝突檔案。
容易產生衝突的場景:
- 多裝置同時開啟同一份 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 長期同步筆記或文件,可以按這個思路設定:
- 每類資料單獨建資料夾,不要混在一個超大目錄裡。
- 主力電腦使用
Send & Receive。 - NAS 或備份機可以考慮
Receive Only,並開啟檔案版本。 - 手機端只同步必要目錄,不要同步應用快取目錄。
- 用
.stignore排除快取、臨時檔、工作區狀態檔。 - 區域網路內優先保證
22000/TCP、22000/UDP、21027/UDP可用。 - Web GUI 盡量保持本機監聽,需要遠端管理時優先用 SSH 隧道。
- 重要資料不要只依賴同步,仍然需要獨立備份。
在群暉 DSM 上部署 Syncthing
準備工作
先透過 SSH 登入群暉,查詢用於運行 Syncthing 的使用者 ID:
|
|
記下回傳結果裡的 uid 和 gid。常見情況是 uid 在 1026 左右,gid 為 100。後面會把它們分別填到 PUID 和 PGID。
然後在 File Station 中進入 docker 共享資料夾,新建目錄:
|
|
這個目錄用於保存 Syncthing 的設定檔、資料庫和運行狀態。後續重建容器時,只要這個目錄還在,設定就能保留下來。
下載 Syncthing 映像
打開群暉的 Container Manager,進入左側「登錄檔」,搜尋:
|
|
選擇官方映像 syncthing/syncthing,標籤使用 latest,下載完成後進入「映像」,選中 syncthing/syncthing 並點擊「運行」。
建立容器
容器名稱可以直接填寫:
|
|
建議勾選「啟用自動重新啟動」,這樣群暉重啟後 Syncthing 會自動恢復運行。
設定環境變數
在進階設定裡的環境變數區域新增或修改:
|
|
其中 PUID 和 PGID 要替換成前面透過 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 網頁端新增資料夾時,填寫的是容器內路徑,例如:
|
|
不要填寫群暉主機路徑 /volume1/NasData。Syncthing 運行在容器裡,只能看到你映射進去的容器內路徑。
如果要同步多個共享資料夾,可以繼續新增多條映射,例如:
|
|
啟動並存取
確認環境變數、連接埠和目錄映射無誤後,點擊「完成」啟動容器。
然後在瀏覽器打開:
|
|
進入 Syncthing 管理介面後,第一件事是設定 Web 管理介面的使用者名稱和密碼。路徑為:
|
|
不要讓未設定密碼的 Syncthing 管理介面長期暴露在區域網路裡。
新增同步資料夾
點擊「新增資料夾」,在「資料夾路徑」中填寫前面設定的容器內路徑,例如:
|
|
如果權限設定正確,Syncthing 就可以讀寫這個共享資料夾。之後再新增遠端裝置,並選擇要共享的資料夾,就可以開始同步。
將 iPhone 照片同步到電腦或 NAS
先理解 iOS 上的限制
在 Android 上,Syncthing-Fork 可以透過背景服務、執行條件、電池白名單等方式長期執行。但 iOS 不允許第三方同步工具無限制背景常駐。
這意味著:
- 不能期待它像 NAS 一樣 24 小時同步。
- App 進入背景後,同步時間可能很短。
- 大量照片最好主動打開 App 讓它同步完。
- iCloud 最佳化儲存可能影響原圖讀取。
所以,iPhone 端更適合「定期打開 App 同步照片」,而不是完全無感的背景即時同步。
第一步:安裝客戶端並授予權限
在 App Store 安裝 Mobius Sync 後,第一次打開時要重點處理幾個權限。
通知權限
建議允許通知。它可以提示同步狀態、連線狀態或錯誤資訊。
本機網路權限
這個權限非常重要。
iOS 會單獨詢問 App 是否允許存取本機網路。如果不允許,iPhone 可能無法在區域網路內發現你的電腦、NAS 或 Syncthing 節點。
如果之前誤點了拒絕,可以到系統設定中重新開啟。
相簿存取權限
如果要同步照片,必須允許存取相簿。
建議選擇:
|
|
如果只給有限照片存取權限,Mobius Sync 可能只能看到你選擇的那部分照片,後續新增照片也可能不同步。
第二步:iPhone 和電腦/NAS 配對
Syncthing 的配對邏輯仍然是互相加入裝置 ID。
在 iPhone 上:
- 打開
Mobius Sync。 - 進入
Settings。 - 打開
Device ID。 - 保持 QR code 畫面。
在電腦或 NAS 上:
- 打開 Syncthing Web UI。
- 點擊
新增遠端裝置。 - 掃描 iPhone 上的 QR code,或手動輸入裝置 ID。
- 給裝置起名,例如
My-iPhone。 - 儲存。
回到 iPhone,等待連線請求提示,然後點擊 Accept。
到這裡,iPhone 和電腦/NAS 已經互相信任,但還沒有共享相簿。
第三步:在 iPhone 上建立相簿同步資料夾
iOS 不像 Android 那樣直接讓你選擇 /DCIM/Camera 路徑。Mobius Sync 對系統相簿做了專門支援,配置時要選擇相簿類型。
在 Mobius Sync 中:
- 切換到
Folders。 - 點擊右上角
+。 - 新建資料夾。
關鍵欄位:
Folder Type:選擇Camera Roll。Folder Label:填寫容易識別的名字,例如iPhone_Photos。Folder ID:可以保留自動產生,也可以用穩定英文 ID。Folder Path:保持預設,讓客戶端關聯 iOS 系統相簿。
然後在 Sharing 區域勾選剛剛配對的電腦或 NAS。
第四步:iPhone 端設為 Send Only
相簿同步通常是「手機發給 NAS」,不是雙向編輯。
因此,在 iPhone 端把資料夾類型設為:
|
|
這樣 iPhone 負責把照片傳送出去,不接收電腦或 NAS 的反向修改。
這個設定可以降低誤操作風險。比如你在電腦端整理備份目錄時,不希望這些改動影響 iPhone 相簿。
但仍然要記住:Syncthing 是同步工具,不是完整備份系統。真正的長期照片安全,還需要 NAS 端快照、檔案版本或獨立備份。
第五步:在電腦或 NAS 端接收照片
iPhone 端儲存後,電腦或 NAS 的 Syncthing Web UI 會出現提示:
|
|
點擊新增。
設定儲存路徑。
Windows 可以類似:
|
|
Linux 或 NAS 可以類似:
|
|
如果 Syncthing 跑在 Docker 中,要填寫容器內路徑。例如宿主機掛載:
|
|
Web UI 中應填寫:
|
|
接收端建議設為 Receive Only
在電腦或 NAS 端,也建議把這個資料夾類型設為:
|
|
這樣接收端只接收 iPhone 傳來的照片,不把本地變化同步回 iPhone。
這是第二層保險:
- iPhone 端:
Send Only - NAS 端:
Receive Only
兩邊都按單向備份思路配置,更符合照片歸檔場景。
iOS 背景同步的現實限制
iOS 對背景執行限制很嚴格。即使配置正確,也不要期待 Mobius Sync 一直在背景默默跑。
常見情況是:
- App 打開時同步速度正常。
- 切到背景後還能同步一小段時間。
- 過一會兒系統會暫停或限制它。
- 位置變化、系統排程或短暫背景視窗可能再次喚醒。
最可靠的實踐很樸素:
- 拍了大量照片後,主動打開
Mobius Sync。 - 讓手機保持亮螢幕或不要太快鎖定。
- 等待它把新照片同步完。
- 再關閉 App 或鎖定螢幕。
如果你習慣每隔幾天做一次相簿備份,這個方式比較可靠。
避免 iCloud 最佳化儲存影響同步
如果 iPhone 開啟了:
|
|
系統可能只在本地保留縮圖,原圖留在 iCloud。第三方同步客戶端讀取照片時,可能拿不到完整原圖,導致同步失敗、跳過或需要等待系統下載。
更適合同步備份的設定是:
|
|
路徑通常在:
|
|
如果手機空間不夠,必須開啟最佳化儲存,那麼同步前可能需要先在系統相簿裡打開相關照片,讓 iPhone 把原圖從 iCloud 下載回來,再啟動 Mobius Sync 同步。
大量照片首次同步建議
第一次同步 iPhone 相簿時,可能有幾千張甚至幾萬張照片。建議不要急著一次做完。
可以這樣處理:
- 先同步少量照片測試。
- 確認 NAS 路徑正確。
- 確認資料夾類型是 Send Only / Receive Only。
- 確認接收端不會反向影響 iPhone。
- 再開始完整同步。
首次同步時最好:
- iPhone 接入電源。
- 保持 Wi-Fi 穩定。
- 打開
Mobius Sync前景執行。 - NAS 或電腦保持在線。
照片數量很大時,同步時間可能比較長,這是正常的。
推薦配置
一個比較穩的 iPhone 照片同步方案:
- iPhone 安裝
Mobius Sync。 - 允許通知、本機網路和完整相簿存取。
- iPhone 與 NAS 互加裝置 ID。
- 在 iPhone 新建
Camera Roll資料夾。 - 資料夾標籤設為
iPhone_Photos。 - iPhone 端資料夾類型設為
Send Only。 - NAS 端接收路徑設為
/volume1/photos/iphone。 - NAS 端資料夾類型設為
Receive Only。 - NAS 端開啟檔案版本或快照。
- 每隔幾天主動打開
Mobius Sync完成同步。
如果你非常依賴自動背景照片備份,iOS 會比 Android 麻煩一些。iOS 的限制決定了第三方同步工具很難做到完全無感背景常駐。
多資料夾治理與版本控制
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 裡填寫的是容器內路徑,不是宿主機路徑。
區分備份和雙向同步
多資料夾管理裡,最重要的一件事是:不要所有目錄都用 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 開始。
版本控制不是完整備份,但它是多設備同步裡的後悔藥。
多資料夾命名範例
可以建立一套固定命名方式。
手機照片:
|
|
iPhone 照片:
|
|
主筆記庫:
|
|
工作文件:
|
|
電子書:
|
|
只要 ID、標籤、路徑都有規律,多設備之後也不會失控。
推薦整體方案
如果你已經有 Docker 版 Syncthing 跑在 NAS 上,可以這樣設計:
- NAS 作為中心節點。
- NAS 設為引入者。
- 所有設備只和 NAS 配對。
- 所有同步目錄放在
/volume1/Syncthing/下面。 - 手機照片目錄使用手機
Send Only、NASReceive Only。 - 工作文件和筆記使用
Send & Receive。 - 資料分發目錄使用 NAS
Send Only、其他設備Receive Only。 - NAS 上對重要資料夾開啟版本控制。
- 程式碼和快取目錄設定忽略規則。
- NAS 本身再做快照或異地備份。
這套結構建立起來後,再新增新設備或新資料夾,只需要按規則放進去,不需要每次重新思考同步關係。
多裝置拓撲與配對
先理解「對等」和「偽伺服器」
Syncthing 裡的每台設備都有自己的 device ID。只要兩台設備互相加入對方 ID,並且共享同一個資料夾,它們就能同步。
所以,Syncthing 本身沒有「伺服器端必須保存所有資料」這個概念。你看到的「伺服器」,往往只是人為指定的一台常開設備。
例如:
- NAS 長期開機、空間大,適合作為中心節點。
- 手機和筆電經常離線,適合作為邊緣設備。
- 桌機效能強,但不一定 24 小時開機,可以作為普通同步節點。
這個「中心節點」不是協議上的伺服器,而是你在拓撲設計中讓它承擔管理和中轉角色。
模式一:純對等 Mesh 網路
純對等模式下,每台設備都和其他所有設備配對。
例如你有四台設備:
- NAS
- 桌機
- 筆電
- 手機
那麼每台設備都要和另外三台設備建立連線。這樣任何兩台在線設備之間都可以直接同步。
優點:
- 傳輸路徑更直接。
- 某台設備離線時,其他在線設備仍然可以互相同步。
- 不依賴某一個中心節點。
缺點:
- 設備越多,配對關係越複雜。
- 新增設備時,需要在多台舊設備上確認和配置。
- 資料夾共享關係容易分散。
設備數量少時,純對等模式很舒服。比如只有一台電腦和一支手機,或者兩台電腦互相同步筆記,就不需要想太複雜。
但當設備數量變成五六台以上,手動維護全連線關係會越來越麻煩。
模式二:以 NAS 為中心的星型拓撲
星型模式更適合家庭和個人生產力場景。
做法是:選一台長期開機、空間足夠、網路穩定的設備作為中心節點,例如:
- NAS
- 群暉
- 軟路由
- 迷你主機
- 家用 Linux 伺服器
然後其他設備只和它配對:
|
|
手機不需要直接配對筆電,筆電也不需要直接配對桌機。它們都透過 NAS 間接同步資料。
優點:
- 管理簡單。
- 新增設備只需要和 NAS 配對。
- NAS 可以承擔版本保留和備份緩衝。
- 適合 24 小時在線同步。
缺點:
- NAS 離線時,其他設備之間不一定能繼續同步。
- 如果所有流量都經過 NAS,NAS 的網路和磁碟效能會影響體驗。
- 中心節點權限要管理好。
如果你已經有 NAS 或常開小主機,優先推薦星型拓撲。它保留了 Syncthing 的 P2P 能力,又讓日常管理更接近「中心化同步」。
多設備配置的基本順序
不管用哪種拓撲,Syncthing 的配置順序都是:
- 先配對設備。
- 再共享資料夾。
- 最後在接收端確認路徑。
不要反過來一開始就到處建立資料夾。先把設備關係理清楚,後面才不容易亂。
第一步:設備互聯
假設要連接設備 A 和設備 B。
設備 A 可以是手機,設備 B 可以是 NAS 或電腦。
在設備 A 上:
- 打開 Syncthing Web UI。
- 點擊右上角
操作。 - 選擇
顯示 ID。 - 複製設備 ID,或者顯示 QR code。
在設備 B 上:
- 打開 Syncthing Web UI。
- 點擊
新增遠端設備。 - 填入設備 A 的 ID。
- 給設備起一個容易識別的名稱,例如
My-Phone。 - 儲存。
然後回到設備 A。它通常會彈出提示:設備 B 想要連接。點擊接受。
到這一步,兩台設備已經建立了對等關係,但還沒有開始同步任何資料夾。
第二步:建立並共享資料夾
在設備 A 上點擊 新增資料夾。
常用欄位:
- 資料夾標籤:給自己看的名字,例如
Notes。 - 資料夾 ID:跨設備識別用,建議用穩定英文,例如
notes。 - 資料夾路徑:這台設備上的真實路徑。
然後切換到 共享 分頁,勾選剛剛配對成功的設備 B。
儲存後,設備 A 會把這個資料夾共享邀請發給設備 B。
第三步:接收共享
打開設備 B 的 Web UI,等待幾秒鐘,通常會看到提示:
|
|
點擊新增,然後在設備 B 上指定本地儲存路徑。
例如:
|
|
或者 Docker 部署場景下的容器內路徑:
|
|
儲存後,同步正式開始。
這裡要注意:不同設備上的路徑可以不一樣。Syncthing 透過資料夾 ID 識別同步關係,不要求每台設備使用相同的本地路徑。
星型拓撲怎麼配置
如果你採用 NAS 中心模式,建議這樣做:
- 先在 NAS 上部署 Syncthing。
- 所有手機、電腦、伺服器都只和 NAS 配對。
- 在 NAS 上建立或接收主要同步資料夾。
- 每台新設備只加入 NAS 的 device ID。
- 需要同步哪個資料夾,就在 NAS 和對應設備之間共享。
例如:
|
|
這樣結構非常清楚。你可以把 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 或常開伺服器,推薦直接使用星型拓撲:
- NAS 作為中心節點。
- NAS 和所有設備配對。
- 普通設備只和 NAS 配對。
- NAS 可以設為引入者。
- 不同資料夾按用途選擇 Send & Receive、Send Only 或 Receive Only。
- 重要資料夾在 NAS 上開啟檔案版本。
- 新設備加入後,先共享一個測試資料夾確認路徑和權限。
如果你只有兩三台設備,而且都經常在線,可以用純對等模式。它更直接,速度也可能更好。
適合和不適合
Syncthing 適合:
- 你希望資料主要留在自己的裝置上。
- 你願意理解裝置配對、同步目錄和衝突處理。
- 你有 NAS、家用伺服器或多台個人裝置。
- 你想同步 Markdown、照片中轉、腳本、輕量文件。
Syncthing 不太適合:
- 需要多人線上協作編輯。
- 需要網頁端檔案預覽和分享連結。
- 需要細粒度團隊權限。
- 不想處理任何網路、防火牆和衝突問題。
它更像一個可靠的「裝置間同步層」,而不是完整的雲端硬碟產品。用得好,Syncthing 可以把 NAS、電腦、手機連成一個可控的資料網路;用得太隨意,也可能因為衝突、誤刪、忽略規則和網路設定變成維護負擔。