本身日常生活中上班还有業余也會寫一寫代碼或者博客文章,有時候摸魚時會需要同步這些東西,之前一直是完成一部分就使用 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#
網絡上也有不少人自己部署了中繼服務器並共享使用的,中國境內也有幾台。可以參照列表