GitHub 項(xiàng)目地址: https://github.com/syncthing/syncthing
官網(wǎng)主頁(yè): https://syncthing.net?
先說(shuō)什么是 Syncthing
Syncthing 是一個(gè) 開(kāi)源的去中心化文件同步工具,它允許你在多臺(tái)設(shè)備之間直接同步文件,無(wú)需通過(guò)第三方服務(wù)器、無(wú)需云存儲(chǔ)服務(wù),如 Dropbox、Google Drive 等。
它的定位是:
“一個(gè)取代專有同步和云服務(wù)的免費(fèi)、開(kāi)源、可信的替代品。”
項(xiàng)目亮點(diǎn)
| |
---|
P2P 架構(gòu) | 數(shù)據(jù)直接在設(shè)備間同步,無(wú)中心服務(wù)器 |
端對(duì)端加密 | TLS + 數(shù)據(jù)塊校驗(yàn),安全可信 |
版本管理 | |
輕量級(jí) & 可移植 | 單一可執(zhí)行文件,跨平臺(tái)運(yùn)行 |
自動(dòng)發(fā)現(xiàn)設(shè)備 | 局域網(wǎng)廣播 + 全局發(fā)現(xiàn)服務(wù)器 |
實(shí)時(shí)同步狀態(tài) | Web UI 顯示每臺(tái)設(shè)備、每個(gè)文件夾同步進(jìn)度 |
跨平臺(tái)支持 | Windows、Linux、macOS、BSD、Android、Docker、NAS |
架構(gòu)示意圖
┌─────────────┐
│ Device A │
│ (Linux PC) │?────────────┐
└─────────────┘ │
▲ ▼
┌─────────────┐ ┌─────────────┐
│ Device B │────?│ Device C │
│ (MacBook) │ │ (NAS) │
└─────────────┘ └─────────────┘
▲
│ Peer-to-Peer
└──────────────────────────────?
所有設(shè)備都是平等的參與者,數(shù)據(jù)加密、互相驗(yàn)證,不依賴中心服務(wù)器。
技術(shù)細(xì)節(jié)
- 語(yǔ)言實(shí)現(xiàn):使用 Go 語(yǔ)言 編寫(xiě),極強(qiáng)的并發(fā)性能和跨平臺(tái)特性
- 同步機(jī)制
- 文件會(huì)被切分成多個(gè)數(shù)據(jù)塊(chunk)
- 使用 BEP(Block Exchange Protocol) 協(xié)議通信
- 網(wǎng)絡(luò)機(jī)制
- 支持 NAT 穿透(UPnP、relay server)
- 支持 TCP / QUIC / WebSocket
- 可配置全局發(fā)現(xiàn)服務(wù)器,也支持離線同步(局域網(wǎng)直連)
核心模塊
| |
---|
cmd/syncthing | |
lib/model | 同步核心邏輯,包括文件夾狀態(tài)維護(hù)、數(shù)據(jù)庫(kù)等 |
lib/protocol | BEP 協(xié)議實(shí)現(xiàn),數(shù)據(jù)通信層 |
lib/config | |
lib/discover | 設(shè)備發(fā)現(xiàn)服務(wù) |
lib/api | |
使用示例
啟動(dòng) Syncthing
shell: syncthing
首次啟動(dòng)后,會(huì)生成配置文件并自動(dòng)打開(kāi) Web UI(默認(rèn)是 http://127.0.0.1:8384)
安裝
| |
---|
| brew install syncthing |
| apt install syncthing |
| |
| F-Droid、Google Play 安裝 Syncthing App |
| docker run syncthing/syncthing |
安全
- 每個(gè)節(jié)點(diǎn)有獨(dú)立的設(shè)備 ID(基于加密公鑰)
- 不可偽造的身份認(rèn)證機(jī)制(即使公網(wǎng)同步也安全)
- 支持對(duì)文件夾開(kāi)啟“只接收”模式防止篡改
可能的使用場(chǎng)景
| |
---|
替代 Dropbox、OneDrive 等云盤(pán) | 本地同步,無(wú)云服務(wù)器介入,自己掌控?cái)?shù)據(jù) |
| NAS + PC + 手機(jī)數(shù)據(jù)互傳 |
| 小團(tuán)隊(duì)局域網(wǎng)共享,無(wú)需依賴網(wǎng)盤(pán) |
| |
配置文件
配置文件路徑:
macOS / Linux:~/.config/syncthing/config.xml
Windows:C:\Users\用戶名\AppData\Local\Syncthing\config.xml
包含內(nèi)容:
- 設(shè)備信息(Device ID、認(rèn)證方式)
- 網(wǎng)絡(luò)設(shè)置、連接策略等
閱讀原文:原文鏈接
該文章在 2025/7/15 9:32:59 編輯過(guò)