? ?Syncthing?是一個開源免費的數(shù)據(jù)同步神器,算是全平臺運行,跨平臺操作,支持?Android、Linux、Windows、Mac OS X?等系統(tǒng),可以使我們在?2?臺或多臺任何系統(tǒng)任何設備之間,實現(xiàn)文件實時同步,很強大。而且數(shù)據(jù)很安全,不會存儲在你的設備以外的其他地方。所有通信都使用?TLS?進行保護。所使用的加密包括完美的前向保密,以防止竊聽者獲得對您的數(shù)據(jù)的訪問權(quán)限。很適合我們用來搭建私有同步類型的備份盤。
安裝
本文只做?Linux VPS?服務器與?Windows?電腦之間的同步安裝及演示操作。Syncthing?官網(wǎng):點擊進入,軟件自行下載最新版本即可。
1、VPS 安裝 Syncthing
安裝?Syncthing:
#目前最新版v1.18.0,日后自行修改版本號
wget https://github.com/syncthing/syncthing/releases/download/v1.18.0/syncthing-linux-amd64-v1.18.0.tar.gz
tar xzvf syncthing-linux-amd64-v1.18.0.tar.gz
cp syncthing-linux-amd64-v1.18.0/syncthing /usr/local/bin
開放端口
Sync-thing 默認監(jiān)聽以下幾個端口
22000 (TCP)
8384 (TCP)
21027 (UDP)
44647 (UDP)
37269 (UDP)
這里我是個人使用,所以只開放 22000 (TCP) 與 8384 (TCP)
端口說明:
8384 是Web訪問控制端口
22000 是節(jié)點訪問端口
開啟?Syncthing:
syncthing
第一次啟動會生成配置,然后給的內(nèi)網(wǎng)地址我們是進不去的,這時候需要修改成外網(wǎng)地址才行(沒有外網(wǎng)地址? ->?LanProxy 端口映射了解一下),先使用?Ctrl+C?退出。然后編輯?/root/.config/syncthing/config.xml?文件,將?127.0.0.1:8384?改成?0.0.0.0:8384?即可,可以直接使用命令:
sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'
再次啟動?Syncthing:
syncthing
然后在瀏覽器訪問?http://IP:8384,就可以進入?Syncthing?界面,如果打不開請自行開放?8384?端口。
# 例如放行8384端口,防火墻設置
/sbin/iptables -I INPUT -p tcp --dport 8384 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
然后我們點設置,填好管理用戶、密碼及其它參數(shù)再重啟?Syncthing?即可。
如果不需要?p2p?進行分享,也就是不需要進行中轉(zhuǎn),那么可以將啟用?NAT遍歷?和?全球發(fā)現(xiàn)?進行關(guān)閉。但是在服務端與客戶端之間,有一方的?ip?必須是公網(wǎng)。
2、Windows 安裝 Syncthing
Win?系統(tǒng)安裝?Syncthing?是非常簡單的,直接從官方網(wǎng)站下載對應版本的?Syncthing?程序,解壓打開?syncthing.exe,然后會彈出一個窗口,瀏覽器再打開?http://127.0.0.1:8384?就可以進入并使用?Syncthing?了,默認文件夾路徑為?C:\Users\Administrator\Sync。
使用
首先打開其中一個設備的?Syncthing?界面,并點擊右上角操作?-?顯示ID?獲取設備?ID。再到另一個設備的?Syncthing?界面,點擊右下角添加遠程設備,輸入需要同步的設備?ID?和共享的文件夾??磦€人需求決定是否要進行高級配置 (選填),如果是私人用,不想加入公共的節(jié)點,那么就點擊高級 找到 地址列表 將?dynamic?填寫為?tcp://服務器ip:22000(防火墻記得放行?22000?端口)
這時候另一臺設備會彈出一個窗口,點擊添加設備即可。
此時設備添加完成,就可以開始同步文件夾了,也可以在其中一臺設備新建 / 添加其它文件夾
進行必要的文件共享設置
然后同樣的,另一臺設備也會彈出一個窗口,點擊同意添加即可。
最后等待片刻,所添加的文件夾都會自動同步完成。
如果希望?Syncthing?在后臺運行可以使用?nohup?命令來實現(xiàn):
nohup syncthing &> /dev/null &
更多功能請自行摸索,注意設備刪掉?Syncthing?后,同步的文件夾依然存在。
開機啟動
此方法適用于任何發(fā)行版(Arch,De-bian,Linux Mint,Ubuntu,open-SUSE), 關(guān)于 win-dows 和 ma-cOS 系統(tǒng)設置開機啟動的方法,詳見 ->?官方文檔
Debian/Ubuntu
設置系統(tǒng)服務創(chuàng)建開機啟動,此方法適用于 De-bian9+/Ubun-tu16.04+
#從源包內(nèi)復制
cp syncthing-linux-amd64-v1.2.0/etc/linux-systemd/system/syncthing@.service /etc/systemd/system/
#設置以root用戶執(zhí)行,如有需要請自行修改,前提是必須是系統(tǒng)用戶
mv /etc/systemd/system/syncthing@.service /etc/systemd/system/syncthing@root.service
使用命令:
#添加開機啟動
systemctl enable syncthing@root.service
#啟動syncthing服務
systemctl start syncthing@root.service
CentOS6/7
需要注意的是,Cen-tos7 下請使用原 sync-thing 包內(nèi) etc 文件夾中的 linux-sys-temd 或者 linux-up-start 作為啟動腳本,Cen-tos6 我建議使用 su-per-vi-sor 作為運行控制:
安裝 Su-per-vi-sor
yum install python-setuptools -y
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
echo "supervisord" >> /etc/rc.local? ? //開機啟動supervisor
在?/etc/supervisord.conf?最后添加如下內(nèi)容,然后啟動 (運行 su-per-vi-sord) 或者重啟 su-per-vi-sor (su-per-vi-sor-ctl re-load)
[program:syncthing]
command=/usr/local/bin/syncthing
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile=/var/log/syncthing.log