首先,這是我一直同時在用的 3 個開源同步服務。html
那爲何我要同時用着多個同步服務呢?主要是由於它們各有優點,有一些無可替代的功能。linux
Resilio Sync
高級版提供的 可選擇性同步,讓我用 0KB
的佔用空間,能夠獲得全部文件的目錄和名稱。在我須要的時候,又能以極快的速度下載到本地。這是個我使用極少的功能,可是倒是使用中最爲爽快的一個功能。分享和下載的時候,我都毫無負擔,由於它們都不存在於本地,我只用下載本身想要的文件。Nextcloud
提供的文件 分享 可讓你有更多的選擇以及權限控制,只用一條 url 連接,你就能夠簡單的分享給須要的人,並且還能提供文件操做動態,你能夠知道文件在何時作了哪些變更,這對你但願監控文件動態的時候很是好用。而且它還提供許多不一樣類型的 App 拓展,其中包括 Rss程序
、Keepass管理程序
、音樂播放
、視頻播放
等諸多功能。Syncthing
這是我 我的文件同步 的主力服務,我用它進行跨設備同步和備份。它是個人 Inbox
文件夾,收集着每臺設備上的數據,我用它來進行 數據
、庫
、配置
等文件的同步。它的優勢也很是簡單,安裝簡單,網絡要求低,提供完善的版本控制。我只須要後臺開啓,配置好,就無需再擔憂。固然,我並不僅僅只依賴上面 3 個同步服務(固然rsync、webdav、ftp我也用,但這不在討論範圍內。),我還搭配電腦的備份服務進行備份。家庭文件服務器還會有快照計劃,重要文件也會定時冷備份。這樣,我才能任性的對待數據,並不再用擔憂它們會消失不見了。web
: )docker
下面,咱們進入正題,對比一下 3 款同步服務的優缺點吧。數據庫
平臺 | Syncthing | Resilio Sync | Nextcloud |
---|---|---|---|
iOS | ✘ |
✔︎ | ✔︎ |
Android | ✔︎ | ✔︎ | ✔︎ |
macOS | ✔︎ | ✔︎ | ✔︎ |
Windows | ✔︎ | ✔︎ | ✔︎ |
Linux | ✔︎ | ✔︎ | ✔︎ |
Linux Arm | ✔︎ | ✔︎ | ✔︎ |
Docker x86 | ✔︎ | ✔︎ | ✔︎ |
Docker Arm | ✘ |
✘ |
✔︎ |
Nas System | ✔︎ | ✔︎ | ✘ |
PS: 主要統計的是官方支持的平臺。第三方方案,不計入統計。安全
Syncthing
並無 iOS
客戶端,曾經有一款可是如今已經下架了,我手機端主要用 Nextcloud
偶爾用 Resilio Sync
(畢竟只同步大文件用)。docker arm
不支持的服務須要自行構建(第三方也可),一般支持 linux arm
的都支持 docker arm
,可是官方只構建了 x86
版本。Nextcloud
的 Nas
版本極可能是有的,可是 Nextcloud
官方沒介紹,NAS 系統
官方庫通常也有下載,畢竟這個服務很廣泛了。功能 | Syncthing | Resilio Sync | Nextcloud |
---|---|---|---|
版本控制 | 階段性版本控制 | 回收站 | 限客戶端 |
網絡環境 | 1. 同步無限制 2. 中區中轉服 務器稀少 |
1. 同步無限制 2. 設備發現需 國外環境 |
1. 同步無限制 2. 應用下載需 國外環境 3. 部分應用依 賴國外服務 |
同步速度 | 1. 內網滿帶寬 2. 外網依賴中 轉服務器帶寬 |
1. 內網滿帶寬 2. 外網依賴同 步設備帶寬總和 |
1. 內網滿帶寬 2. 外網依賴部 署服務器帶寬 |
WebDav | ✘ |
✘ |
✔︎ |
選擇同步 | ✘ |
✔︎(高級版) | ✘ |
文件加密 | ✘ | ✔︎(加密文件夾) | ✔︎(需設置) |
同步加密 | ✔︎ | ✔︎ | ✔︎(需啓用https) |
部署難度 | 低 | 低 | 高 |
文件分享 | ✔︎(只能整庫分享) | ✔︎(只能整庫分享) | ✔︎ |
權限管理 | ✔︎ | ✔︎ | ✔︎ |
這裏重點討論一下主要影響你們使用的網絡問題。服務器
Syncthing
的同步速度爲何那麼慢?先說結論,緣由是因爲對 Syncthing
開放且距離你最近的 中繼服務器
過少而且速度較慢致使的。
PS: https://relays.syncthing.net/ 這裏能夠看到開放的 中繼服務器
列表。(我的使用的中繼服務器能夠不開放)網絡
最開始用的時候,我並無以爲這個問題影響使用,由於數據量不大(都是配置文件),也就沒有在乎。
自從 Resilio Sync
由於衆所周知的問題掛了之後,我把大量同步任務也遷移到了 Syncthing
,其中就包括了 虛擬機
、多媒體文件
、下載的系統文件
、備份文件
等大文件數據。但這就要了命了,幾十 kb 的速度同步至少按周來算,並且是不關機的那種。這時候,我就想了 2 個辦法先緩緩。app
文件拉取順序
爲 小文件優先
。在文件夾 選項
->高級
->文件拉取順序
中修改。-------------------- (想治本的同窗看這裏)我是善良友好的分割線 --------------------測試
固然以上方法都是不解決根本問題的。真正解決問題的辦法是,自建中繼服務器(劃重點)。
t4skforce/syncthing-relay
。(構建源碼可參考)礙於篇幅,這裏不能教你們如何去部署。先提供一些資料給你們參考。 : )
Resilio Sync
爲何沒法找到設備?先說結論,緣由是 Resilio Sync
的 trackers
and relays
服務器沒法訪問。
解決辦法也很簡單,讓沒法訪問的地址走代理就能夠了。
參考圖:
礙於篇幅,細節就略略略了。 : )
Nextcloud
爲何沒法訪問應用頁面下載應用?
先說結論,緣由是由於應用商店沒法訪問。
GitHub
下載 App
項目。並解壓到 __NEXTCLOUD-PATH__/apps
目錄下,按照項目教程進行部署。Nextcloud App Servier
沒法訪問的問題。礙於篇幅,略略略。 : )
既然和數據有關,那最懼怕的是什麼?
那固然就是數據 同步異常、數據丟失、數據誤刪、意外致使數據丟失 等數據消失不見的嚴重問題了。
-------------------- (結論看這裏)我是善良友好的分割線 --------------------
這裏不講如何保障數據,直接說結論:以上軟件所提供的版本控制,都沒法徹底保證數據同步過程當中不丟失。
因此不要認爲有了版本控制,數據就能夠隨意處理了。有時候你想找回某個數據還真不必定找獲得。(自行搭配快照、副本、備份。)
-------------------- (評測看這裏)我是善良友好的分割線 --------------------
Syncthing
提供的 版本控制
很是多,能夠適應多種場景下使用。其中 階段版本控制
提供了 小時 級別的歷史記錄,最大程度的保障數據安全,而且提供了歷史記錄查看器,能夠很方便的查看歷史記錄,並恢復。基本上,它能夠適應全部我的同步需求,而且同步過程當中對數據也相對安全。參考圖:
Resilio Sync
並不提供版本控制功能,只有最簡單的回收站機制。甚至你也不清楚有沒有放入回收站。因此它只適合 分享型、大文件型、變更少、文件相對而言不那麼重要、目錄層次少結構不復雜 等使用環境。我基本上,都是用來放大文件和多媒體文件。Nextcloud
提供文件變化版本控制,但僅限於使用其客戶端的方式。經過 WebDav 等訪問的方式,是 沒有版本控制 的,因爲其使用數據庫來記錄全部文件,因此文件數量和結構,考驗着你的數據庫服務器。而且其 http 傳輸原理致使默認對 文件大小 有所限制。可是其豐富的拓展性,以及詳盡的文件記錄,很是適合 分享 和 多人協做,適合對外提供服務,能夠彌補 Syncthing
這類我的同步服務的短板,也就是協做和分享。
這 3 款開源同步服務,在同步速度上,都是能夠滿速運行的,同步速度上體驗沒多大區別。可是因爲各自服務的機制不一樣,須要必定動手能力,才能達到最佳效果。
以上只是對這 3 款開源服務的一些細節作了一些對比。若是你們有比較關心的其餘細節,再作補充。
Bye. : )