需通过syncthing设备互信与文件夹共享实现多设备点对点同步:一、修改config.xml将监听地址改为0.0.0.0:8384并开放相关端口;二、两两双向添加设备id并确认信任;三、各设备用相同文件夹id配置共享,仅a主动共享给其他设备;四、启用本地与全局发现增强连接;五、docker部署时需为各实例分配独立端口与存储路径。

如果您希望在三台或更多设备之间实现点对点、无中心服务器的实时文件同步,则需通过Syncthing的设备互信与文件夹共享机制完成拓扑配置。以下是实现多台设备同步的具体步骤:
一、统一配置Web管理界面访问权限
默认情况下,Syncthing仅监听本地回环地址(127.0.0.1),导致其他设备无法发现或连接本机实例。需修改配置文件以启用局域网或广域网可访问能力。
1、定位并编辑配置文件:Linux系统路径为 ~/.config/syncthing/config.xml;Windows系统路径为 %APPDATA%\Syncthing\config.xml;macOS系统路径为 ~/Library/Application Support/Syncthing/config.xml。
2、在config.xml中查找
127.0.0.1:8384这一行。3、将其替换为
0.0.0.0:8384,保存文件。4、重启Syncthing服务或进程,使新配置生效。
5、确保各设备防火墙放行TCP/UDP端口8384(Web界面)和22000(设备通信),必要时还需开放UDP 21027(用于本地网络设备发现)。
二、逐台完成设备ID交换与双向信任
Syncthing采用去中心化P2P架构,所有设备地位平等,必须两两建立显式信任关系,才能发起同步请求。多设备场景下不可仅单向添加。
1、在设备A的Web界面右上角点击“操作”→“显示ID”,完整复制其设备ID(64字符十六进制字符串)。
2、在设备B的Web界面右下角点击“添加远程设备”,粘贴设备A的ID,填写别名(如“A-Laptop”),点击保存。
3、立即切换至设备A的Web界面,在弹出的“新设备邀请”通知中点击“接受”。
4、重复步骤1–3,依次完成A↔C、B↔C、B↔D、C↔D等所有设备对之间的双向添加与确认。
5、每完成一对设备信任后,Devices页面将显示该设备状态为“Connected”且图标呈绿色。
三、创建共享文件夹并指定同步目标设备
文件夹是同步的基本单元,每个文件夹可独立设置参与同步的设备集合。多设备同步需为同一逻辑文件夹在不同设备上分别配置共享策略。
1、在设备A的Web界面点击“添加文件夹”,设置本地路径(如/home/user/sync)、文件夹标签(如“Project-Shared”)及唯一ID(可自动生成)。
2、在“共享”选项卡中,勾选已信任的设备B、C、D,点击“保存”。
3、在设备B的Web界面点击“添加文件夹”,使用与设备A完全相同的文件夹ID(关键!),设置本地路径(如C:\Sync\Project-Shared),不勾选任何设备。
4、在设备B的该文件夹设置页中,切换到“共享”选项卡,仅勾选设备A,点击“保存”。
5、在设备C和D上执行与设备B相同的操作:使用相同文件夹ID、各自本地路径、仅共享给设备A。
6、所有设备对该文件夹的ID必须严格一致,否则Syncthing视为不同文件夹,无法同步。
四、启用全局发现与LAN广播增强连接稳定性
当多台设备处于同一局域网时,启用本地网络发现可自动识别设备,减少手动输入ID错误,并提升连接恢复速度。
1、在任意设备的Web界面,点击右上角“操作”→“设置”→“连接”选项卡。
2、勾选“启用本地发现”和“启用全局发现”两项。
3、确认“监听地址”中包含0.0.0.0:21027/udp(默认已启用)。
4、检查各设备的“状态”→“日志”页,应出现类似“Local discovery enabled on 0.0.0.0:21027”的提示行。
5、若某设备未出现在其他设备的“发现的设备”列表中,需检查其所在网络是否禁用了UDP多播(如企业Wi-Fi或部分路由器隔离模式)。
五、使用Docker容器统一部署多实例(适用于服务器环境)
在NAS、树莓派或云主机等场景下,可通过Docker批量部署多个Syncthing实例,避免手动安装与路径冲突,便于版本与配置集中管理。
1、拉取官方镜像:docker pull syncthing/syncthing:latest。
2、为每台逻辑设备创建独立宿主目录:mkdir -p /opt/syncthing-nodeA /opt/syncthing-nodeB /opt/syncthing-nodeC。
3、运行容器A(映射端口8384→8384、22000→22000、21027→21027):docker run -d -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -p 21027:21027/udp -v /opt/syncthing-nodeA:/var/syncthing syncthing/syncthing:latest。
4、运行容器B(端口需错开,如8385、22001、21028):docker run -d -p 8385:8384 -p 22001:22000/tcp -p 22001:22000/udp -p 21028:21027/udp -v /opt/syncthing-nodeB:/var/syncthing syncthing/syncthing:latest。
5、运行容器C(同理调整端口),然后按前述方法在各容器Web界面(如http://host:8384、http://host:8385)中完成设备添加与文件夹配置。











