GitHub 項目地址: https://github.com/syncthing/syncthing
官網主頁: https://syncthing.net?
先說什么是 Syncthing
Syncthing 是一個 開源的去中心化文件同步工具,它允許你在多臺設備之間直接同步文件,無需通過第三方服務器、無需云存儲服務,如 Dropbox、Google Drive 等。
它的定位是:
“一個取代專有同步和云服務的免費、開源、可信的替代品?!?/span>
項目亮點
| |
|---|
| P2P 架構 | |
| 端對端加密 | |
| 版本管理 | |
| 輕量級 & 可移植 | |
| 自動發(fā)現設備 | |
| 實時同步狀態(tài) | |
| 跨平臺支持 | Windows、Linux、macOS、BSD、Android、Docker、NAS |
架構示意圖
┌─────────────┐
│ Device A │
│ (Linux PC) │?────────────┐
└─────────────┘ │
▲ ▼
┌─────────────┐ ┌─────────────┐
│ Device B │────?│ Device C │
│ (MacBook) │ │ (NAS) │
└─────────────┘ └─────────────┘
▲
│ Peer-to-Peer
└──────────────────────────────?
所有設備都是平等的參與者,數據加密、互相驗證,不依賴中心服務器。
技術細節(jié)
- 語言實現:使用 Go 語言 編寫,極強的并發(fā)性能和跨平臺特性
- 同步機制
- 使用 BEP(Block Exchange Protocol) 協(xié)議通信
- 網絡機制
- 支持 NAT 穿透(UPnP、relay server)
- 支持 TCP / QUIC / WebSocket
- 可配置全局發(fā)現服務器,也支持離線同步(局域網直連)
核心模塊
| |
|---|
cmd/syncthing | |
lib/model | 同步核心邏輯,包括文件夾狀態(tài)維護、數據庫等 |
lib/protocol | |
lib/config | |
lib/discover | |
lib/api | |
使用示例
啟動 Syncthing
shell: syncthing
首次啟動后,會生成配置文件并自動打開 Web UI(默認是 http://127.0.0.1:8384)
安裝
| |
|---|
| brew install syncthing |
| apt install syncthing |
| |
| F-Droid、Google Play 安裝 Syncthing App |
| docker run syncthing/syncthing |
安全
- 每個節(jié)點有獨立的設備 ID(基于加密公鑰)
可能的使用場景
配置文件
配置文件路徑:
macOS / Linux:~/.config/syncthing/config.xmlWindows:C:\Users\用戶名\AppData\Local\Syncthing\config.xml
包含內容:
閱讀原文:原文鏈接
該文章在 2025/7/15 9:32:59 編輯過