本身日常生活中上班還有業餘也會寫一寫程式碼或者部落格文章,有時候摸魚時會需要同步這些東西,之前一直是完成一部分就使用 git 倉庫來同步,但是往往遇到寫到一半的情況就不是很合適,使用移動存儲設備又很麻煩,所以我需要一個能夠讓我在多台設備之間同步工作內容的軟體。
我主要是寫前端程式碼比較多,最大的問題的就是 npm 依賴的問題,node_modules 大小實在太恐怖了,能夠支持過濾自定義的內容也是很重要的功能之一。
使用網盤#
在 Syncthing 之前試過百度雲、Onedrive 之類的網盤來同步檔案,但是一是付費有點貴,二是無法過濾我不想要同步的東西,總的來說就是達不到目標。
雖然我上車了一年百度雲盤 svip,不過可以拿來下載東西其實也不錯
Syncthing#
Syncthing 是一款無需第三方伺服器,開源的輕量級的 p2p 檔案同步軟體,能將需要同步的檔案在多個設備中加密傳輸,也不會將我的檔案存到其他別的地方。
Windows 下安裝使用#
在 Windows 下 使用 syncthing 我建議使用 syncTrayzor,當然如果更喜歡使用命令行工具也可以使用官網的。
運行程式就可以看到介面,下方的控制台可以通過查看 > 控制台
關閉
使用官方的命令行工具 運行後打開 http://localhost:8384 就可以打開 web 控制介面來操作了
然後就可以通過設備 id 來連接設備進行同步了,首先獲取任意一台設備的 id
在介面右上角操作中有一個顯示 ID
獲得 id 後時在另一台設備上使用添加遠程設備將該設備添加到遠程設備列表中,就會對該設備發起連接申請,確認之後選在資料夾來同步就可以了,
同步速度慢#
但是配置完成後發現同步速度特別慢,簡直龜爬。因為對於沒有公網 IP 的設備,syncthing 會通過中繼伺服器來資料同步,但是默認的中繼伺服器速度實在感人。
想要更快的同步速度有下面兩種方法(或者說三種)
有個人 VPS 或者 ECS#
-
通過在伺服器上安裝 syncthing 來獲得一個公網節點然後其餘的設備就可以極速同步了(最簡單)
大多數 linux 包管理器都可以直接獲得 syncthing
sudo yum install syncthing
隨後在你的
home/username/.config/syncthing/config.xml
中將gui > address
字段修改成0.0.0.0:port
並把你伺服器的安全組對應端口的權限打開,然後連接http://{host name[IP]}[:port]
訪問 webGUi 介面 然後就是和 window 上一樣的方式,別的設備將伺服器添加為遠程設備列表然後設定同步資料夾就可以了。 -
伺服器搭建中繼伺服器
使用他人共享的 relay server#
網路上也有不少人自己部署了中繼伺服器並共享使用的,中國境內也有幾台。可以參照列表