菜单

自建Syncthing中继服务器和发现服务器

duckflew
发布于 2024-02-24 / 263 阅读
0
0

自建Syncthing中继服务器和发现服务器

自建Syncthing中继服务器和发现服务器

1.中继服务器

1.1 安装

利用Apt进行安装

apt install syncthing-relaysrv -y

1.2 注册守护进程

配置一个systemd系统服务即可

vim /etc/systemd/system/strelaysrv.service
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
Documentation=man:syncthing(1)
After=network.target

[Service]
User=root
ExecStart=/usr/bin/strelaysrv -pools="" -token=xxxxxxxx
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

需要注意的是 这里有2个参数配置比较重要

  • -pools="" 代表不加入公共中继池
  • -token=xxxxxxxx 代表连接的时候需要匹配token参数,否则无法中继

1.3 重载systemd,启动并检查日志

systemctl daemon-reload
systemctl start strelaysrv
journalctl -u strelaysrv

在日志中会出现 server的deviceId 这个需要记录下来

也就是id=后面的部分

1.4 客户端配置中继服务器

打开syncthing的管理面板

协议监听地址填写刚才的服务器配置 格式如下

default,relay://[ip]:22067?id=xxxxxxx&token=xxxxxx

2.发现服务器

2.1.安装

发现服务器也可以通过apt进行安装,不过我这里演示Docker的做法

docker compose文件如下

version: "3"
services:
    # 自建syncthing的发现服务器 discovery-servier
  syncthing_discovery_server:
    image: syncthing/discosrv
    container_name: syncthing-discovery-server
    command: -debug -listen=":8443" 
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./syncthing/discosrv:/var/stdiscosrv
    ports:
      - 8443:8443 # Listen address (default “:8443”)

2.2.开放防火墙

2.3.查看日志记录 serverId 填写到客户端

docker logs syncthing-discovery-server

在第一行就可以看到 deviceId

然后填写到客户端

格式如下

default, https://ip:8443?id=xxxxxxxxxxxxxxxxxx

评论