- Syncthing 讓您可以使用加密的 P2P 連線在多個裝置之間同步資料夾,而無需中央伺服器。
- 此配置基於透過設備 ID 連結設備,並定義具有雙向或單向同步類型的共用資料夾。
- 演示者、僅發送/僅接收資料夾和版本控制等功能可讓您建立靈活的叢集並保護資料完整性。
- 它是商業雲端的私有多平台替代方案,非常適合個人使用、本地備份和小規模協作環境。

如果你曾經嘗試過先將一個大資料夾上傳到雲端再進行共享,你就知道那種感覺了。 文件上傳和下載需要等待數小時。……並祈禱你的帳戶裡還有剩餘空間。現在想像一下 在兩台電腦之間傳輸文件 直接連接,無需中間商,無需人為的配額限制,充分利用可用頻寬。這正是背後的理念。 配置 Syncthing 以實現 PC 間的 P2P 同步.
多年來,Syncthing 一直是免費軟體領域的隱藏的寶藏:它是一款輕量級、跨平台且高度靈活的工具,能夠… 無需中央伺服器即可在設備間同步資料夾。 工作於 Windows, Linux, 蘋果系統, Android 它甚至可以在遠端伺服器或NAS設備上運行。本文將一步一步地詳細介紹如何安裝它、如何在多台電腦之間連接它、如何建立共用資料夾,以及如何充分利用它進行個人使用和建立更高級的小型P2P叢集。
Syncthing是什麼? P2P同步是如何運作的?
Syncthing 是一個分散式檔案同步系統 它使用裝置之間的點對點 (P2P) 連接。無需將資料上傳到雲端伺服器,您的電腦、行動裝置或伺服器即可形成一個點對點網路。 簇 彼此之間直接通訊的設備。
每個設備都運行一個小型服務(守護程序),負責: 監控共用資料夾、偵測變更並傳輸文件 與其他叢集節點通訊。所有流量均使用 TLS 加密,每台機器都有自己的憑證和私鑰,這些憑證和私鑰在 Syncthing 首次啟動時會自動產生。
關鍵點是 每個設備都有一個唯一的識別碼或“設備ID”。該ID未關聯 硬件 具體來說,遷移的並非 Syncthing 憑證本身。因此,只要您不嘗試同時在兩台電腦上使用相同的身份,就可以透過複製設定資料夾將整個配置從一台電腦遷移到另一台電腦。
實際上,您可以自行決定共用哪些資料夾、與哪些裝置共用以及共用方式:您可以擁有 雙向發送和接收資料夾僅發送或僅接收。在同一個集群中,一些設備可以充當“呈現者”,負責 向其他人介紹新設備並宣傳它們。 建構比兩台電腦之間簡單連接更複雜的拓撲結構。
此外,Syncthing 的設計宗旨是 跨平台且易於管理它擁有非常完整的網頁介面,並且在某些系統上,還提供原生前端,例如 Windows 上的 SyncTrayzor 或 Linux 上的 syncthing-gtk,這些前端簡化了操作。 開機 自動通知。

在不同的系統上安裝 Syncthing
Syncthing 的一大優點是: 你可以混合 OS 沒問題Windows 與 Linux 系統、Linux 與 macOS 系統、PC 與安卓手機等等,程式的核心內容相同;只是安裝方法以及與系統的整合方式有所不同。
Windows:Syncthing + SyncTrayzor
在 Windows 系統上,官方的 Syncthing 二進位檔案可以透過命令列運行,並且預設情況下, 開著窗戶 終端 運行時,並將您的資料儲存在 AppData\Local 而且它與登入流程的整合並不完美。為了簡化流程,最方便的解決方案是使用 同步托盤一個負責以下功能的容器:
- 自動啟動 Syncthing 當您登入時。
- 最小化到系統托盤並顯示圖示和狀態指示器。
- 節目 關於變更和連接的通知 設備。
- 提供對整合式 Web 介面的直接存取。
SyncTrayzor 可從其 GitHub 程式碼庫下載,提供安裝版和便攜式版本兩種選擇,需要 .NET Framework。安裝完成後,建議檢查其首選項以確保… 它隨 Windows 啟動,最小化到系統托盤,並且不會向系統發送大量通知。 每次設備進入或退出時。
macOS:Syncthing 原生應用
macOS 上沒有與 SyncTrayzor 完全等效的軟體,但有… 一個打包成應用程式的 Syncthing 軟體包 它將二進位檔案整合到系統中。它可以從 macOS 官方 Syncthing 軟體倉庫下載,並像其他系統應用程式一樣安裝。
完成初始設定後,管理介面仍然是之前的網站,可以透過瀏覽器存取。您可以透過該網站進行以下操作: 配置自動啟動和其他選項 根據系統本身的偏好設定或使用第三方工具。
GNU/Linux:軟體套件、軟體倉庫和 systemd 服務
在 Linux 系統上,安裝方式取決於發行版。 Syncthing 專案維護… Debian及其衍生版本的自訂軟體倉庫而在 CentOS、Fedora 或類似系統中,通常可以透過 EPEL 或其他儲存庫取得。
軟體包安裝完成後,該服務通常由 systemd 管理。以特定使用者身分執行該服務的典型模式如下:
systemctl enable syncthing@usuario
systemctl start syncthing@usuario
雖然從技術上講,你可以這樣運行它: 根, 出於安全考慮,不建議這樣做。只有在高度管控的環境下,你是唯一的用戶,系統安全措施到位,這種做法才有意義。
它也存在於某些分佈中。 同步GTK,一個基於 GTK 的圖形介面,提供托盤圖示、便捷的守護程序控制以及對管理網站的直接存取。

Android:官方應用程式與行動裝置同步
在安卓系統上,你可以從以下位置安裝 Syncthing: Play Store 或從 F-的Droid此行動應用程式包含同步服務和觸控螢幕適配介面,用於管理裝置、資料夾和權限。
典型用途是 自動同步相機資料夾 將手機中的照片直接傳輸到電腦或伺服器,這樣你拍攝的每張照片都會自動複製到你的桌上型電腦上,無需經過任何步驟。 Google 照片、iCloud 或類似服務。
透過可存取的 Web 介面手動啟動
在任何系統上,您都可以透過指定 Web 介面位址來手動啟動 Syncthing。 選項 -gui-address。 例如:
syncthing -gui-address="0.0.0.0:8384"
這樣一來,圖形使用者介面 (GUI) 就會暴露在 8384 連接埠上,從而可以從任何 IP 位址存取。這對於初始配置或遠端管理非常有用,但是… 不建議在沒有保護措施的情況下將其敞開放置。通常的做法是將其限制在… 127.0.0.1:8384 如果您需要從外部進入,請使用 SSH 透過連接埠轉送或設定圖形使用者介面的使用者名稱和密碼。
首次接觸網頁介面
Syncthing 主要由以下方式處理: 一個非常清晰易用的網頁介面雖然可以透過 SyncTrayzor 或 syncthing-gtk 捷徑開啟它,但其內部始終相同:由守護程式本身在您配置的連接埠(預設情況下,localhost 上的連接埠為 8384)上提供的頁面。
此介面由以下部分組成: 各個部分:
- 菜單主要 (操作/設定、重啟等)。
- 通知區域 用於接收新設備、錯誤或統計資料的通知。
- 塊狀 文件夾 已同步。
- 控制板 ”這個裝置“包含來自本地節點的資訊。”
- 列表 其他設備 鏈接。
- 指向文件、社群和其他外部資源的連結。
- 的窗戶 新興對話 當你編輯資料夾、新增裝置等操作時,會在底部開啟該視窗。
首次登入時,Syncthing 很可能會詢問您是否要… 發送匿名統計數據 為了方便開發:節點數量、版本、作業系統…您可以接受或不接受,稍後可以在設定中更改。
設定圖形使用者介面的使用者名稱和密碼
如果你打算將 Web 介面公開到其他平台 localhost,這很關鍵 使用身份驗證保護它為此,請從主選單轉到 操作 > 設定 > 圖形使用者介面 並設定使用者名稱和密碼。您應該在網路上的所有裝置上重複此配置。
設備識別碼和節點連結
該系統的核心是 設備編號這個長長的字母數字代碼唯一標識了 Syncthing 的每個實例,並用於授權叢集節點之間的連接。
如何查看您的裝置 ID
若要查看您的身分證件,請在網頁介面中點選 操作 > 顯示 ID視窗將會打開,內容如下:
- 標識符的完整文字字串。
- Un QR碼當您想要透過另一台裝置掃描來新增手機時,這非常實用。
你需要這個身分證件。 私下發送 給另一個人或備註添加 這支球隊 對你的其他機器。
更改設備的顯示名稱
預設情況下,Syncthing 使用作業系統名稱作為人類可讀的裝置名稱,但您可以更改它以使其更清晰。 操作 > 設定 > 常規 您可以在這裡找到可以編輯此名稱的欄位。
建議選擇一個標識符 獨特且長期穩定 (例如,「PC-桌上型電腦」、「筆記型電腦-工作」、「伺服器-家庭」),以避免多個裝置連接到相同網路時產生混淆。
新增和接受遠端設備
設備之間的連接始終存在 相互的兩個節點要建立連接,必須互相加入對方的 ID,並且接受彼此的關係。
新增遠端設備: 請準備好您的設備 ID。.
- A隊繼續前進 添加設備 (或“新增遠端設備”)。
- 粘貼 B隊設備ID 在第一個字段中。
- 為該節點選擇一個易於理解的名稱,或讓它使用遠端節點傳回的名稱。
- (可選)在「共享」標籤上,選擇您今後要共享的資料夾。
- 保存更改。
Syncthing 可以 自動發現區域網路上的其他設備所以有時你甚至不需要複製 ID;只需選擇偵測到的節點並確認標識符是否匹配。
當 A 隊加入 B 隊時,A 將出現在 B 隊。 收到接受新設備的通知審核通過後,您將看到相同的對話框,其中 ID 和名稱已預先填寫,可直接儲存。從那時起,兩個節點將被鏈接,並能夠共享資料夾。
建立和共享同步資料夾
一旦兩個或多個設備連接起來,就該… 建立第一個共享資料夾基本流程非常簡單:在一台電腦上,建立一個資料夾,選擇其在檔案系統中的路徑,並選擇要共用該資料夾的裝置。在其他節點上,接受邀請並指定資料夾的本機儲存路徑。
在電腦上定義一個新資料夾
在任何裝置上,按下按鈕 “新增資料夾”您會看到一個包含多個選項卡的對話框,主選項卡是「常規」。您需要在其中輸入:
- 文件夾標籤:其他裝置將看到的名稱(例如,「Mobile-Photos」、「Projects」、「vm_share」…)。
- 資料夾路徑:檔案系統中的絕對路徑,與檔案總管中顯示的路徑完全相同(例如,
D:\Carpeta compartida在Windows上或~/syncthing/vm_share在 Linux 上)。
遵循以下建議是個好主意 邏輯且一致的結構 當你在 Windows 系統中工作時,請記住這一點。 透過網路共享單一資料夾例如,將所有 Syncthing 資料夾分組到一個公共目錄中(~/syncthing而不是將它們散落在各處。這樣可以簡化維護工作並減少錯誤。
接下來,切換到選項卡 “分享”在那裡你會看到所有已關聯設備的清單;選擇你想新增到此資料夾的裝置。點選「儲存」後, 資料夾將建立完成,邀請函將發送。 到這些節點。
接受其他裝置上的共用資料夾
在遠端電腦上,很快就會出現一條通知,表明 另一台設備想要共用一個資料夾 與您一起。接受後,將開啟相同的資料夾設定對話框,您可以在其中進行以下操作:
- 選擇 本地路線 儲存位置(不必與來源檔案同名)。
- 檢查資料夾類型(發送/接收、僅發送、僅接收)。
- 配置進階掃描選項、空間限制、版本控制等。
如果路徑不存在,Syncthing 可能會 自動建立目錄從那一刻起,你放入其中一台電腦上該資料夾的任何檔案都會開始… 複製並保持同步 在其餘已分配的設備上。
多設備間的P2P同步:徑向和網狀集群
當你只有兩台設備時,一切都很簡單: 變化過程從A到B,再從B到A。 故事到此結束。
假設你有三個設備:A、B 和 C。最初,你可能只會將 C 連接到 A。這使得 A 看到了 B 和 C,但 B 和 C 彼此並不認識。任何需要從 B 到 C 的資料都會經過 A,這會成為瓶頸和中心故障點。
為了改進這一點,Syncthing 引入了以下概念: “主持人” (介紹)標記為演示器的設備可以 傳播新節點的存在 也會與其他共用資料夾的裝置關聯。也就是說,如果 A 是演示者並且添加了 C,B 也會自動知道 C 的存在。
將設備標記為演示器: 激活新節點的引入.
- 展開清單中的設備,然後點選 編輯.
- 轉到“共享”選項卡。
- 勾選方塊 “主持人” (或“介紹”)。
- 請檢查共用資料夾是否已正確標記。
- 保存更改。
這樣你就可以創造一個 徑向簇一個中央節點,負責將其他設備相互展示。其最大的優勢在於,即使展示器關閉, 其他成員將繼續相互通訊並同步資料。此外,當多台電腦擁有部分檔案時,傳輸是分散式的:每個節點可以從多個來源下載資料區塊,從而減少單一節點的負載。
還有可能設立一個 網格集群 總的來說,所有設備都會將彼此標記為演示者。這是一個非常靈活的選項,但在大多數情況下並不建議這樣做,因為 設備中的資訊往往會被無限循環利用。如果有人取消訂閱並被刪除,他們的清單可能會重新出現,因為其他節點仍然保留他們的資訊。最終結果通常是清單中充斥著大量虛假設備,更糟的是,Syncthing 偵測到互惠展示者時還會顯示警告。
資料夾類型:發送和接收、僅發送、僅接收
Syncthing 中資料夾的預設行為是 “發送和接收” (發送和接收)。這意味著參與其中的任何設備都可以建立、修改或刪除文件,並且這些更改 將向兩個方向擴散 直到所有人步調一致。
然而,在某些情況下,這樣做並不理想。一個典型的例子是,當你想… 從 A 到 B 單向同步這樣,B 就能接收所有更改,但永遠無法將其修改回去,即使是意外修改也不行。
配置僅發送或僅接收資料夾
每個設備都可以獨立決定, 每個資料夾的同步模式:
- 發送和接收:完全雙向同步。
- 僅發送該設備充當資料來源,不接受來自網路的變更。
- 僅接收設備會下載更改,但其本地修改不會傳播。
更改資料夾類型: 在“進階”中選擇“資料夾類型”。.
- 點擊資料夾標題即可展開其面板。
- 點擊 編輯.
- 開放部分 “高級” 在對話中。
- 搜尋字段 “資料夾類型” 並選擇所需的選項。
- 保存更改。
重要的是要明白,這種配置已經完成。 在每一端例如,您可以將裝置 A 的資料夾設定為“僅傳送”,將裝置 B 的資料夾設定為“僅接收”。在這種情況下, A 將是權威參考資料 從資料夾中,B 將簡單地複製其內容。
如果您在配置為僅接收的裝置上本機修改文件,Syncthing 會將它們視為僅接收的文件。 不必要的差異網頁介面會顯示放棄這些變更以重新與原始檔案對齊的選項。在解決此差異之前,其他電腦將看到該資料夾尚未完全同步。
實際範例:從 A 到 B 的同步,不回傳任何更改
假設你有兩台電腦,A 和 B,都運行 Windows 系統,你想… 您在資料夾 A 中所做的所有變更都會反映在資料夾 B 中,但反之則不然。您所描述的這種行為,即在一側刪除的資料夾在另一側重新創建,是雙向配置對齊不良的典型表現。
若要實現從 A 到 B 的精確流程,請執行以下操作: 在兩端配置相反的類型.
- 在電腦 A 上,將資料夾配置為 “直接發送”.
- 在電腦 B 上,將相同資料夾配置為 “只接收”.
- 確保兩者都指向正確的路徑,並且裝置已連網。
從那裡 在 A 中刪除、修改或建立的任何檔案都會套用至 B。但是,在 B 中所做的變更不會同步回 A。如果您在 B 中建立子資料夾,Syncthing 最終會提供選項,讓您消除這種差異並恢復到 A 的狀態。
隱私、安全性和 Syncthing 網路組件
儘管 Syncthing 的理念是將資料保留在您自己的裝置上,但這仍然很重要。 了解共享了哪些訊息 以及過程中涉及哪些輔助服務。
設備間的加密和可見性
節點間的通訊始終透過網路進行。 端對端加密的TLS連接使用本地產生的金鑰對和憑證。這可以防止未經授權的第三方在傳輸過程中讀取或修改您的資料。
然而,在集群內部, 每個設備都能看到其他設備的一些資訊。 它關聯的資訊包括:IP 位址、作業系統、Syncthing 版本、連線狀態(已連線、已中斷連線、正在同步等)。因此建議這樣做。 僅允許與受信任的人建立聯繫尤其是當涉及個人設備時,這些設備會暴露你的使用習慣(例如,你的連接時間)。
輔助伺服器:發現、中繼和統計
除了直接的P2P傳輸外,Syncthing還依賴多種其他方式。 此專案管理的公共服務:
- 全球發現伺服器允許兩個裝置透過裝置 ID 相互定位,即使它們位於 NAT 之後且 IP 位址未知。
- 中繼器(轉發器)當無法開啟連接埠或使用 UPnP 時,某些節點會採用以下方法: 中繼伺服器 它們起到橋樑的作用,但代價是速度降低。
- 中繼列表伺服器:指示哪些繼電器可用的中央目錄。
- 更新伺服器: 啟用自動更新時,Syncthing 從中下載新版本的來源。
- 統計伺服器:如果您同意參與,我們將收集匿名數據,以改善開發並了解軟體的使用情況。
所有這些組件都可以 替換或停用 在進階設定中設定完全私有的網絡,或使用其他方法 安全文件共享 (例如,在擁有自己的發現伺服器和內部中繼的組織中)。但是,如果您沒有特殊需求,通常最好保留預設配置,因為預設配置在便利性和控制性之間取得了非常合理的平衡。
日常生活中常用的進階選項
除了基本功能外,Syncthing 還整合了 進階功能 這樣就可以對同步進行微調,並使其適應更複雜的場景。
資料夾參數:掃描、空間和元數據
編輯資料夾並進入選項卡時 “高級”你會發現以下選項:
- 掃描間隔:除了即時通知之外,檢查檔案系統更改的頻率是多少。
- 磁碟空間限制:避免完全填滿分割區所需的最小空餘百分比。
- 文件核實令 並確定掃描優先順序。
- 同步化 權限、擁有者和其他元數據 取決於作業系統。
忽略檔案、與更多裝置共用以及版本控制
其他標籤頁中包含非常實用的工具,例如: 篩選並保留版本:
- 分享:在已建立的資料夾中新增或刪除參與設備。
- 忽略模式:指定您不想同步的檔案或子資料夾模式(例如,
*.tmp目錄.git等)。 - 文件版本控制配置如何儲存已修改或已刪除檔案的先前版本。 Syncthing 可以保留多個舊副本,以便在發生錯誤時提供緩衝。
遠端存取伺服器上的圖形使用者介面和配置
當您在遠端伺服器或沒有圖形環境的電腦上使用 Syncthing 時,Web 介面就顯得更加重要了。 透過圖形使用者介面,您可以遠端管理所有功能。。能:
- 更改監聽 IP 位址 GUI 中的 操作 > 設定 > 圖形使用者介面 以便它接受來自區域網路或特定 IP 位址的連接。
- 手動編輯文件
~/.config/syncthing/config.xml如果您暫時無法造訪該網站,請調整地址。 - 使用一個 SSH隧道 將伺服器的 8384 連接埠轉發到您的本機計算機,即可像坐在伺服器前面一樣管理 Syncthing。
在採用 systemd 的系統中,請記住,如果您修改服務單元(/etc/systemd/system/syncthing@usuario.service),你需要運行 systemctl daemon-reload 然後重新啟動服務以使變更生效。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。
