081thum.png

Syncthing 的docker容器docker-compose.yml配置文件

services:
  syncthing:
    image: lscr.io/linuxserver/syncthing:latest
    container_name: syncthing
    hostname: syncthing #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/syncthing/config:/config
      - /path/to/data1:/data1    #这里目录映射要共享的数据文件目录
      - /path/to/data2:/data2    #使用几个目录就添加几个
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
      - 21027:21027/udp
    restart: unless-stopped

注意:开放相应使用的端口

Syncthing 的发现服务器和中继服务器部署

发现服务器和中继服务器的docker-compose.yml

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”)
    restart: always

# 自建syncthing的中继服务器 syncthing-relay-server
  syncthing_relay_server:
    image: syncthing/relaysrv:latest
    container_name: syncthing-relay-server
    command: -debug -pools="" -listen=":22067"
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - ./syncthing/strelaysrv:/var/strelaysrv
    ports:
      - 22067:22067  # 中继服务器的数据连接端口(必须开启)
      #- 22070:22070  # 用于公用的中继服务器池,显示数据传输、客户端数量等状态,可不开启
    restart: always

注意:开放相应使用的端口

查看服务器ID

# 查看syncthing-discovery-server日志获取Server device ID  
docker logs syncthing-discovery-server  
  
# 查看syncthing-relay-server日志获取URI  
docker logs syncthing-relay-server

Syncthing 中配置格式

# 协议监听地址,中继服务URI  
relay://IP:22067?id=中继服务器ID  
  
# 全局发现服务器  
https://IP:8443/?id=发现服务器ID

Syncthing 证书目录

MacOS:

~/Library/Application Support/Syncthing

Windows

C:\Users\dino\AppData\Local\Syncthing

Linux中配置

1.安装homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

#安装后按照提示再运行下面命令

echo >> /home/dino/.bashrc

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/dino/.bashrc

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

#这三行别复制我的,你的终端里有提示!!!

2.homebrew方式安装syncthing


brew install syncthing

3.运行syncthing,并附带跨域访问gui参数


#直接运行命令,前台运行,也可
syncthing -gui-address=0.0.0.0:8384

#或者也可以修改配置文件,如果长期后台服务运行建议此方法
~/.local/state/syncthing/config.xml
寻找关键字 127.0.0.1 => 修改成 0.0.0.0

4.使用brew services进行服务挂载


#修改配置文件后运行
brew services start syncthing
#此时syncthing即可后台服务运行

#下面是管理服务的相关命令
- `brew services list` 查看 Homebrew 管理的所有服务及其状态
- `brew services stop syncthing` 停止 Syncthing 服务
- `brew services restart syncthing` 重启 Syncthing 服务

5.防火墙设置

上面3个步骤结束后原则上就可以通过http://ip:8384访问gui界面了,如果不行请查询防火墙端口放行情况。下面命令是关闭防火墙或强制放行syncthing所有要用到的gui界面端口以及数据同步端口

#根据不同linux系统关闭防火墙

sudo ufw disable

或者

sudo firewall-cmd --zone=public --add-service=syncthing --permanent
sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent
sudo firewall-cmd --reload

发表评论