Syncthing


created: 2025-11-11T02:48:41 (UTC -05:00)
tags: []
source: https://www.milaone.com/archives/159.html
author:


转载 全平台去中心化P2P自动文件同步工具Syncthing的分享 - 米拉一频道

Excerpt

Syncthing 的docker容器docker-compose.yml配置文件services: syncthing: image: lscr.io/linuxserver/sync…


1483706816.png

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

1
none docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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

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

Ctrl + O + Enter 保存

Ctrl + X 退出

查看服务器ID

1
2
3
4
5
# 查看syncthing-discovery-server日志获取Server device ID  
docker logs syncthing-discovery-server

# 查看syncthing-relay-server日志获取URI
docker logs syncthing-relay-server

Syncthing 中配置格式

1
2
3
4
5
# 协议监听地址,中继服务URI  
relay://IP:22067?id=中继服务器ID

# 全局发现服务器
https://IP:8443/?id=发现服务器ID

Syncthing 证书目录

MacOS:苹果系统:

1
~/Library/Application Support/Syncthing

Windows

1
C:\Users\用户名\AppData\Local\Syncthing

Linux中配置

1.安装homebrew

1
2
3
4
5
6
7
8
9
10
11
/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

1
brew install syncthing

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

1
2
3
4
5
6
#直接运行命令,前台运行,也可
syncthing -gui-address=0.0.0.0:8384

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

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

1
2
3
4
5
6
7
8
#修改配置文件后运行
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界面端口以及数据同步端口

1
2
3
4
5
6
7
8
9
#根据不同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