本文最后更新于 1226 天前,其中的信息可能已经有所发展或是发生改变。
搭建发现服务器 Syncthing Discovery Server
参考文档:https://docs.syncthing.net/users/stdiscosrv.html#syncthing-discovery-server
下载版本
wget https://github.com/syncthing/discosrv/releases/download/v1.18.6/stdiscosrv-linux-amd64-v1.18.6.tar.gz
参数
-cert``=<file>和-key``=<file>默认指定运行程序目录下的证书文件,建议将证书拷贝到当前目录下。
-listen``=<address>监听端口,默认8443,改不改无所谓,如果有防火墙记得通过端口。
-debug调试模式,可以查看链接信息
-replication-listen``=<address>我也不太明白这个参数的意义,可能适用于组多服务器
开放端口
firewall-cmd --permanent --add-port=8443/tcp
运行程序
nohup ./stdiscosrv > stdiscosrv.log 2>&1 &
搭建中继服务器 Syncthing Relay Server
中继服务器列表
参考文档:https://docs.syncthing.net/users/strelaysrv.html#description
下载strelaysrv程序
wget https://github.com/syncthing/relaysrv/releases/download/v1.18.6/strelaysrv-linux-amd64-v1.18.6.tar.gz
参数
-global-rate``=<bytes/s>全局限速,bytes作为单位,换算成MB应当乘两个1024,可以去这里换算。
-pools=<pool addresses>非常重要的设置,如果不设置将作为公共服务器发布,他人可以免费使用你的服务器流量,三思!创建私人服务器的方法是添加参数-pools=""。
-protocol``=<string>协议
-status-srv``=<listen addr>监听地址,有的服务器需要设置当前公共ip
防火墙与运行
firewall-cmd --permanent --add-port=22067/tcp
firewall-cmd --permanent --add-port=22070/tcp
./strelaysrv -pools="" -protocol=tcp4
后台运行
nohup ./strelaysrv -provided-by=https://www.2331314.xyz/ -protocol=tcp4 > strelaysrv.log 2>&1 &
配置客户端
服务器地址配置
运行程序后会生成一个id,将其拷贝下来
发现服务器:
https://ip_address:port/?id=your_id
中继服务器地址
relay://ip_address:port/?id=your_id
客户端中替换时,如果可以用逗号和default分开,这样就能同时使用多个地址。
监听地址
参考官方文档:https://docs.syncthing.net/users/config.html#listen-addresses
syncthing的地址可以理解成三类:动态中继池,静态中继地址,TCP端口。
从网上获取中继池获取中继服务器
自定义一个服务器地址
本地端口监听,用于局域网连接
中继服务器配置
如果像我一样只只是同步自己的服务,就可以简单设置为:
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 转发服务器提示Open database : resource temporarily unavailable
重启一下服务器看看能不能解决。