syncthing设备显示“disconnected”需按五步排查:一、确认本地服务运行;二、核对并同步设备id;三、检查22000/21027端口连通性;四、关闭防火墙或安全软件拦截;五、清除缓存并重新配对。

如果您在使用Syncthing时发现某个设备长期显示“Disconnected”或状态灯为红色,且同步进度停滞,则可能是由于网络中断、配置错误或服务未运行导致节点连接异常。以下是多种可行的修复路径:
一、检查本地Syncthing服务运行状态
设备离线可能源于本机Syncthing守护进程未启动或意外终止,需确认核心服务是否处于活动状态。
1、在Windows系统中,打开任务管理器,切换到“服务”选项卡,查找名为“syncthing”的服务,确认其状态为“正在运行”。
2、在Linux/macOS终端中执行:systemctl is-active syncthing@$(whoami),若返回“inactive”,则需手动启动:systemctl start syncthing@$(whoami)。
3、在Android设备上,进入Syncthing-Android应用主界面,检查顶部状态栏是否显示绿色“Running”;若为红色“Stopped”,点击右侧开关按钮启动服务。
二、验证设备ID与连接配置一致性
节点间无法建立信任关系常因设备ID输入错误或配置未同步所致,必须确保双方记录的设备ID完全一致且已互相添加。
1、在任一设备的Syncthing Web GUI中,点击右上角“操作”→“显示设备ID”,完整复制该32位十六进制字符串(不含空格)。
2、在目标设备的“设备”页面点击“+”添加新设备,粘贴该ID,**务必关闭“自动接受新设备”开关以避免误配**。
3、在对方设备上弹出的信任请求中,点击“是”完成双向确认;若未弹出,检查两设备是否均启用“本地发现”(LAN discovery)功能。
三、排查网络连通性与端口可达性
Syncthing依赖TCP 22000端口进行数据同步,UDP 21027端口用于局域网设备发现,任一端口阻塞均会导致离线假象。
1、在离线设备所在主机执行:telnet 其他设备局域网IP 22000,若连接失败,说明防火墙或路由器拦截了该端口。
2、在Windows PowerShell中运行:Test-NetConnection -ComputerName [对方IP] -Port 22000,观察“TcpTestSucceeded”是否为True。
3、登录路由器后台,确认已为该设备IP设置端口转发规则:外部端口22000映射至内部IP及端口22000,协议类型选择TCP/UDP。
四、审查防火墙与安全软件拦截行为
系统级防火墙或第三方安全工具可能静默丢弃Syncthing流量,尤其在首次运行或更新后触发默认拦截策略。
1、Windows Defender防火墙中,进入“高级设置”→“入站规则”,查找名称含“Syncthing”的规则,确保其状态为“启用”且操作为“允许”。
2、macOS用户需前往“系统设置”→“网络”→“防火墙选项”,勾选“允许其他设备连接到此Mac上的Syncthing”。
3、Android设备检查是否启用了“电池优化”限制,进入“设置”→“应用”→“Syncthing-Android”→“电池”,将“电池优化”设为“不优化”。
五、强制刷新设备缓存与重新初始化连接
当设备频繁上下线或配置发生变更时,旧的连接缓存可能残留异常状态,需清除并重建握手流程。
1、在Web GUI中进入“操作”→“重启Syncthing”,等待约10秒直至状态栏恢复绿色图标。
2、编辑配置文件~/.config/syncthing/config.xml(Linux/macOS)或%LOCALAPPDATA%\Syncthing\config.xml(Windows),定位<device></device>区块,删除对应离线设备的整段配置,保存后重启服务。
3、在Syncthing-Android中长按离线设备条目,选择“删除设备”,然后重新执行配对流程,**确保两次扫描二维码或输入ID的操作间隔不超过60秒**。










