搭建和配置Syncthing发现和中继服务器

折腾借口

Syncthing好是挺好的,但就是同步不给力,公共网络服务其质量良莠不齐,网络也说不清。最好的解决方案仍是本身搭建发现服务器Syncthing Discovery Server和中继服务器Syncthing Relay Server,有效解决网络链接差,非局域网链接慢的问题。html

须要材料:带公网IP的服务器或动态DNS的主机一台。

参数设置信息官网最全面,参考Welcome to Syncthing’s documentation!,这里只是提少量我的须要的参数,通常使用足够。node

搭建发现服务器 Syncthing Discovery Server

下载 stdiscosrv 程序

下载当前主机的发现服务器主程序 stdiscosrvlinux

选择对应版本,服务器基本是stdiscosrv-linux-amd64git

下载:github

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

解压:shell

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

准备以及参数

建立证书

程序好像也会自动建立证书,这一步或许能够忽略json

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

注意更改目录服务器

参数

官网给出了详细的参数配置 Syncthing Discovery Server,简单说几个我用到的参数。网络

-cert`=<file>-key`=<file>默认指定运行程序目录下的证书文件,建议将证书拷贝到当前目录下。tcp

-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目前不支持占位符操做仍是挺惋惜的,可是设置了自定义的中继服务器和发现服务器以后,可靠性将大大提高,从此能够做为一个经常使用的软件了,更方便得同步各个设备之间的文件,免去不少折腾的时间。

相关文章
相关标签/搜索