【轉】搭建和配置Syncthing發現和中繼服務器


搭建和配置Syncthing發現和中繼服務器

 

折騰借口

Syncthing好是挺好的,但就是同步不給力,公共網絡服務其質量參差不齊,網絡也說不清。最好的解決方案還是自己搭建發現服務器Syncthing Discovery Server和中繼服務器Syncthing Relay Server,有效解決網絡連接差,非局域網連接慢的問題。

需要材料:帶公網IP的服務器或動態DNS的主機一台。

參數設置信息官網最全面,參考Welcome to Syncthing’s documentation!,這里只是提少許個人需要的參數,一般使用足夠。

搭建發現服務器 Syncthing Discovery Server

下載 stdiscosrv 程序

下載當前主機的發現服務器主程序 stdiscosrv

選擇對應版本,服務器基本是stdiscosrv-linux-amd64

下載:

 
wget https://github.com/syncthing/discosrv/releases/download/v0.14.51/stdiscosrv-linux-amd64-v0.14.51.tar.gz

解壓:

 
tar -xzvf  stdiscosrv-linux-amd64-v0.14.51.tar.gz

准備以及參數

創建證書

程序好像也會自動創建證書,這一步或許可以忽略

 
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout ~/key.pem -out ~/cert.pem

注意更改目錄

參數

官網給出了詳細的參數配置 Syncthing Discovery Server,簡單說幾個我用到的參數。

-cert`=<file>-key`=<file>默認指定運行程序目錄下的證書文件,建議將證書拷貝到當前目錄下。

-listen`=<address>`監聽端口,默認8443,改不改無所謂,如果有防火牆記得通過端口。

-debug調試模式,可以查看鏈接信息

-replication-listen`=<address>`我也不太明白這個參數的意義,可能適用於組多服務器

運行

將證書復制到程序所在文件夾,執行即可:

 
./stdiscosr

如果沒有將證書放好位置,直接使用命令應該會自動創建證書,或者將證書復制到當前目錄再執行。

 
cp *.pem syncthing/stdiscosrv-linux-amd64-v0.14.51

或者執行:

 
./stdiscosrv -cert ~/cert.pem -key ~/key.pem    1

注意

記得在防火牆里面放行端口,可以安裝ufw,然后放行端口

 
sudo apt install ufw
sudo ufw allow 8443

搭建中繼服務器 Syncthing Relay Server

搭建好發現服務器后,雖然能找到不同網絡的主機了,但是非局域網相互傳輸的速度還是差強人意。

中繼服務器列表:Relay Pool Data,雖有不少國內服務器,但是搭建自己的服務器優勢也顯而易見。

 下載strelaysrv程序

下載當前主機的發現服務器主程序 relaysrv

選擇對應版本,服務器基本是strelaysrv-linux-amd64

下載:

 
wget https://github.com/syncthing/relaysrv/releases/download/v0.14.48/strelaysrv-linux-amd64-v0.14.48.tar.gz

解壓:

 
tar -xzvf  strelaysrv-linux-amd64-v0.14.48.tar.gz

准備以及參數

 創建證書

參考之前操作,或直接復制過去就好了。

 
cp *.pem syncthing/strelaysrv-linux-amd64-v0.14.48

 參數(必看)

官網給出了詳細的參數配置 Syncthing Relay Server,上面提到的不再重復

-global-rate`=<bytes/s>`全局限速,bytes作為單位,換算成MB應當乘兩個1024,可以去這里換算。

-pools`=<pool addresses>**非常重要的參數設置**,如果不設置將作為公共服務器發布,他人可以免費使用你的服務器流量,三思。創建私人服務器的方法是添加參數-pools=""`。

-protocol`=<string>`協議

-status-srv`=<listen addr>`監聽地址,有的服務器需要設置當前公共ip

運行

 
./strelaysrv -pools="" -global-rate 3145728 -protocol=tcp4

注意

開啟防火牆支持,使用ufw或:

 
iptables -I INPUT -p tcp --dport 22067 -j ACCEPT
iptables -I INPUT -p tcp --dport 22070 -j ACCEPT

 配置客戶端

服務器地址配置

運行程序后會生成一個id,將其拷貝下來

發現服務器:

https://ip_address:port/?id=your_id

中繼服務器地址:

relay://ip_address:port/?id=your_id

客戶端中替換時,如果可以用逗號和default分開,這樣就能同時使用多個地址。

 監聽地址

參考官方文檔:Listen Addresses

syncthing的地址可以理解成三類:動態中繼池,靜態中繼地址,TCP端口。

  1. 從網上獲取中繼池獲取終極服務器
  2. 自定義一個服務器地址
  3. 本地端口監聽,用於局域網連接

中繼服務器配置

如果像我一樣只只是同步自己的服務,就可以簡單設置為:

tcp4://0.0.0.0:22000,relay://ip_address:22067?id=abcd123...

指定tcp4即ipv4的原因是因為我有ipv6網絡,但是國內v6覆蓋不全,不如簡簡單單局域網用tcp,遠程就用自己的中繼服務器,避免其它的低速遠程服務器。

發現服務器配置

default, https://ip_address:8443/?id=abcd123...

這里添加default的原為了接入一些網絡的共享庫,如果不需要去掉即可。

結語

Syncthing目前不支持占位符操作還是挺可惜的,但是設置了自定義的中繼服務器和發現服務器之后,可靠性將大大提升,今后可以作為一個常用的軟件了,更方便得同步各個設備之間的文件,免去很多折騰的時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM