Syncthing:同步是衝突問題,不是複製問題
摘要
Syncthing 讓好幾台機器上的資料夾保持一致,靠的是彼此直接對話,中間沒有伺服器。免費開源、以裝置 ID 配對、用瀏覽器頁面管理 —— 而且它對「同步不等於備份」這件事相當誠實。
推薦- 軟體名稱
- Syncthing
- 版本
- 2.1.5
- 收費
- 免費
- 開源
- 開源
- 作業系統
- WindowsmacOSLinuxAndroid
- 更新時間
- 2026-10-09 22:00
複製很簡單,取得共識才難
把一個資料夾從這台機器複製到另一台,是件小事;讓兩台機器對同一個資料夾在幾個月裡持續保持一致的看法,是件大事。複製是一次性的動作,結果明確。共識是一個連續的過程:兩邊的每一個變動都要被傳達、被排序、被套用,而其中真正有意思的情況不是「複製成功」,而是「兩個修改同時到達」。
Syncthing 就是繞著第二個問題造的,所以它看起來不像備份,也不像雲端硬碟。它沒有一份說了算的中央副本,也沒有一台大家都要去講話的伺服器。每一台機器跑這個程式,每一台機器用一組識別碼認識其他機器,變動直接在它們之間移動。它免費、原始碼公開,除了桌上型平台,手機上也能跑。

「沒有伺服器」意味著什麼
沒有中間人就是整個設計,而它在兩個方向上都有後果。沒有任何東西被上傳到別人的機房 —— 對未發表的工作、客戶材料或私人檔案庫來說,這正是選它而不選託管硬碟的理由。頻寬則是兩台機器之間能談出多少就是多少,在同一個區域網路裡,那遠比任何線上服務做得到的都好。
代價是:沒有中間人可以幫你解決問題。兩台永遠不在同一時間醒著的機器不會同步;一台一輩子待在限制重重網路後面的筆電,會需要中繼幫忙。這不是該爭辯的缺陷,這是去中心化設計誠實的形狀,也是為什麼它在家用網路裡很合適、對一個永遠在路上的人只是勉強合適。
配對,以及那組識別碼為什麼要緊
一台機器靠它的識別碼被介紹給另一台,而對方必須接受它。這道兩步驟的接受值得被弄懂,而不是一路按過去,因為它才是真正的安全邊界:誰握著一個已被接受裝置的識別碼,誰就能對共用的資料夾提出變更。這跟金鑰指紋是同一個概念,也該用同樣的認真對待 ——第一次要在另一條通道上核對,不再控制的裝置要從清單裡移除,而不是留著。
之後的一切都在程式自己提供的網頁上設定:哪些資料夾要共用、跟誰共用、照什麼規則。這是個不漂亮的介面,卻是個好決定 —— 它意味著同一套管理可以從網路上任何一台機器操作,不必綁在某個桌面工具上。

衝突,以及程式怎麼處理它
當兩台機器各自改了同一個檔案,總有一邊要退讓。Syncthing 的答案是兩邊都留:其中一個版本保住原本的檔名,另一個被保存在旁邊,並在名字裡加上標記,於是「哪一個才是對的」這個決定留給人,而不是被默默做掉。這是對的選擇,同時也是個不方便的選擇 ——它意味著衝突會以「一堆雜物」的樣子出現,而不是以「魔法般解決」的樣子消失。
衝突的頻率,取決於資料夾怎麼被使用。兩個人在兩台機器上編輯同一份檔案,會不斷產生衝突,而這不是任何同步工具修得好的 —— 問題在共用的檔案,不在同步。一個人在桌機與筆電之間移動、很少同時在兩邊改同一個檔案,則幾乎不會遇到。判斷自己屬於哪一種,就決定了這個工具對你而言是「不存在」還是「很吵」。
版本保留,以及那句關鍵的話
保留被改動檔案的歷史版本,是讓一個同步工具變成「能救你」的功能,因為它蓋住了最痛的兩種失敗:檔案被誤刪,以及檔案被錯誤的內容覆蓋。能在事後回頭把犯錯之前的那一版撈出來,實務上就是「麻煩」與「損失」之間的差別。
但這不會讓它變成備份。版本活在同樣的資料夾結構、同樣的機器上,所以它與它們同生共死:機器丟了、或整個資料夾被移除了,版本也跟著走。同步在設計上就會把刪除傳播出去 —— 這正是你希望它做的事,也正是不希望你唯一的副本做的事。正確的配置是:同步負責方便,另一套備份負責保險;把兩者搞混,是這整個類別都在招引的錯誤。

它適合放在哪裡
三種用途,而它們靠「那些機器是拿來做什麼的」來區分。家用網路裡的個人備份:桌機、筆電與手機握著同一批檔案,任何一台丟了都還過得去。小團體內的團隊共用:不願意把材料繞過別人的服務。以及多裝置工作:重點是你在這台機器上讀到的檔案,就是你下一台機器上接著讀的那一個。
它不適合大型團隊、不適合「需要從任何地方取得檔案但原本那台機器不在」的人,也不適合想交出一個能給非技術同事用的網頁介面的人。那些是需要託管服務的工作,而誠實的比較不是「哪個比較好」,是「你比較想要哪一種失敗」。
結論
Syncthing 解決的是它名字指的那個問題,用的也是名字暗示的方式:在你控制的機器之間、直接地同步,不問誰的許可,也不付誰的訂閱費。它免費、開源、不漂亮,介面不會得獎。它會做的事,是讓兩個資料夾在沒有機房介入的情況下保持一致好幾年 —— 前提是你把配對當成一個安全決定、預期衝突是可見的而不是被藏起來的,並且在一個不參與同步的地方留一份真正的備份。