搭建和配置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目前不支持占位符操作还是挺可惜的,但是设置了自定义的中继服务器和发现服务器之后,可靠性将大大提升,今后可以作为一个常用的软件了,更方便得同步各个设备之间的文件,免去很多折腾的时间。

【转】搭建和配置Syncthing发现和中继服务器的更多相关文章

  1. [转]自建Syncthing中继服务器(私密传输或造福大众)

    自建Syncthing中继服务器(私密传输或造福大众) 一.介绍 我之前介绍了Syncthing,作为一款开源的文件同步程序,它的功能还是非常强大的,我也很高兴能看到它被越来越多的人知道和使用,前几天 ...

  2. 在香蕉派的树莓派系统上配置 Syncthing 自启动

    在香蕉派的树莓派系统上配置 Syncthing 自启动 —— 魏刘宏 2020 年 1 月 19 日 首先做个名词解释,” 香蕉派” 是国内一款山寨树莓派的硬件产品,” 树莓派系统” 指的是”rasp ...

  3. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  4. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  5. liunx搭建DHCP服务器以及DHCP中继服务器

    liunx搭建DHCP服务器以及DHCP中继服务器 一.实验拓扑 二.实验条件 虚拟机取消VMnet1和VMnet8的dhcp动态获取ip地址,以免影响实验 DHCPserver 网关以及DHCP中继 ...

  6. 巧用Salt,实现CMDB配置自动发现

    随着互联网+新形势的发展,越来越多的企业步入双态(稳敏双态)IT时代,信息化环境越来越复杂,既有IOE三层架构,也有VCE.Openstack等云虚拟化架构和互联网化的分布式大数据架构.所以,企业急需 ...

  7. DNS智能解析的搭建与配置

    分类: LINUX 原文地址:DNS智能解析的搭建与配置 作者:十年梦生  9月份整整忙了一个月,都抽不出时间来写篇文章,这几天趁着10.1终于有时间来写些东西了,将9月份所做的一些东西来做下总结. ...

  8. WinMail邮件服务器(客户端)环境搭建与配置

    WinMail邮件服务器(客户端)环境搭建与配置      一.在搭建WinMail邮件服务器(客户端)之前必备            (1).在虚拟机上安装两个干净无毒的操作系统          ...

  9. 搭建DHCP服务器以及DHCP中继服务器

    一.DHCP服务器   1.首先配置DHCP服务器的IP地址(DHCP服务器网卡桥接在VMnet1)   .配置好IP后重启DHCP服务 3.安装DHCP服务器,在这里我用的是YUM安装的(关于YUM ...

随机推荐

  1. VsCode删除多行操作

    1.下图是我们的文件 我想要一次性删除"how to delete this line" 所在的所有行,而其他行不删除 操作步骤 鼠标移动到 "how"上面,单 ...

  2. Java垃圾回收机制和注解

  3. eclipse 项目中嵌入jetty

    Jetty是一个提供HHTP服务器.HTTP客户端和javax.servlet容器的开源项目,Jetty 目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的 ...

  4. wpf binging (六)多绑定

    场景 比如我用四个textbox 需要每个控件都输入正确的数据以后 下方的 button才变成可用状态 需要把四个textbox的值转换成 true或者false 效果

  5. Date对象方法

    创建Date               new  Date() Date对象方法: get系列: getDate()            返回一个月中的某一天(1-31) getDay()    ...

  6. 神州数码DHCP及DHCP中继配置

    实验要求:掌握DHCP及DHCP中继配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface g0/5 进入端口 ip a ...

  7. Mac 安装Python3 facewap环境

    参考网上大神的方法 1 官网下载安装 2 下载指定版本的源码cmake安装 3 Mac上使用homebrew进行安装(强烈推荐,主要是前两种的openssl模块我没有搞定链接什么的一直报错,一个个下载 ...

  8. NSTimer应用

    NSTimer应用 在参与项目开发中遇到了NSTimer的应用,虽然我负责的模块内只用到了一小部分,但我觉得还是有必要拿出来好好琢磨一下. 一.概念(来自官方描述) 官网上最新的定义是“A timer ...

  9. web页面弹出窗口代码大全

    //-----------按钮提示框----------// <input type="button" name="btn2" id="btn2 ...

  10. 项目里如何访问AppDelegate

    项目里面访问AppDelegate做全局变量用有好几种方式 最原始就是 AppDelegate *appDelegate = (AppDelegate *)[[UIApplication shared ...