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

  • 相关阅读:
    [转]CR, LF, CR/LF区别与关系
    [转]Maven与nexus关系
    [转]Ubuntu默认使用root用户登录并免去输入密码
    [转]PL/SQL Developer 导入导出csv文件
    [转]关于胖客户端和瘦客户端的理解
    解决win7 安装完jdk7后,再安装jdk8出现的问题 has value '1.8', but '1.7' is required.
    [转]10 Awesome Indicator Applets for Ubuntu’s Unity Desktop
    简单的多对一传输ns2仿真
    论文阅读笔记 (2007-06-09)
    一个简单的ns2实验全过程
  • 原文地址:https://www.cnblogs.com/liangqihui/p/10347715.html
Copyright © 2020-2023  润新知