syncthing可实现家庭音乐库与安卓手机的无损文件p2p同步。方案包括:一、局域网直连同步;二、.stignore过滤非音频文件;三、交错式版本控制防误删;四、kodi联动自动扫描;五、跨网段远程同步配置。

如果您已在电脑或NAS上建立家庭音乐库,希望将无损音乐文件实时同步至安卓手机本地存储以便离线播放,则Syncthing可直接在设备间建立加密P2P通道完成同步,无需上传云端。以下是多种可行的同步方案:
一、安卓端直连主设备同步(推荐局域网场景)
该方法利用手机与主设备(如Windows台式机或Linux NAS)处于同一局域网的条件,通过设备ID配对后直接传输,延迟低、带宽占用可控,且所有文件保留在本地。
1、在安卓手机安装Syncthing-Android应用(从Google Play或F-Droid获取)。
2、在主设备运行Syncthing(Windows可通过SyncTrayzor启动,Linux执行syncthing命令),确保Web管理界面(http://127.0.0.1:8384)可访问。
3、主设备Web界面右上角点击“操作”→“显示ID”,记录本机设备ID;安卓端打开应用,点击右上角“+”→“添加设备”,输入该ID或扫描二维码。
4、双方确认连接请求后,在主设备点击“添加文件夹”,路径设为/Music(或实际音乐库路径),同步类型选“发送接收”,勾选安卓设备。
5、安卓端进入“Folders”标签页,找到新添加的文件夹,点击右侧三点菜单→“编辑”,将“路径”设为手机内部存储中指定目录(如/storage/emulated/0/Music),保存并启用。
6、检查状态栏是否显示Up to Date,首次同步可能需数分钟,期间可查看实时传输速率。
二、使用.stignore精准过滤非音频文件
为避免专辑封面缓存、临时文件、日志等干扰手机存储空间及媒体扫描,必须在主设备音乐文件夹根目录创建.stignore文件,由Syncthing自动读取并跳过匹配项。
1、用文本编辑器新建文件,命名为.stignore(注意开头的点号)。
2、写入以下规则:
# 排除系统隐藏文件
**/.DS_Store
**/Thumbs.db
# 排除临时文件
**/*.tmp
**/*.part
**/*.log
# 保留关键元数据
!**/*.jpg
!**/*.png
!**/*.cue
!**/*.m3u
!**/*.m3u8
3、将该文件保存至主设备/Music根目录下,Syncthing将在下次扫描时自动加载规则。
4、验证效果:在安卓端同步完成后,检查目标文件夹内仅存在.flac/.wav/.mp3/.m4a等音频文件及白名单内的.jpg和.m3u文件,无.tmp或.log后缀文件。
三、启用交错式版本控制防误删
该配置可在安卓端误删某张专辑时,从主设备恢复最近30天内的历史版本,避免永久丢失,特别适用于频繁整理音乐库的用户。
1、在主设备Web界面,进入对应音乐文件夹的“编辑”页面。
2、展开“版本控制”选项,类型选择“交错式(Staggered)”。
3、设置“保留最大版本数”为30,“清理间隔”设为86400秒(24小时)。
4、保存配置后,Syncthing将在主设备.stversions子目录中按日期归档被替换或删除的文件。
5、若需恢复,登录主设备Web界面,进入该文件夹→“历史版本”,选择目标文件时间点,点击“还原”即可推送回安卓端。
四、Kodi媒体中心联动同步(进阶方案)
当安卓手机已安装Kodi作为本地音乐播放器时,可将Syncthing设为“仅接收”模式,使Kodi自动扫描新增曲目,实现“同步即可见”的无缝体验。
1、在安卓端Syncthing-Android中,长按已配置的音乐文件夹→“编辑”→将同步类型改为仅接收(Receive Only)。
2、确保Kodi设置中启用“库更新”→“在文件变更时扫描媒体”,路径指向Syncthing同步的目标文件夹(如/storage/emulated/0/Music)。
3、在主设备新增一张专辑并保存后,Syncthing自动推送至手机,Kodi将在30秒内自动识别并加入音乐库,无需手动刷新。
4、验证:打开Kodi→“音乐”→“艺术家”,确认新专辑艺人名称已出现,点开后曲目列表完整。
五、跨网段/远程同步配置(含防火墙放行)
当手机处于移动网络或异地Wi-Fi(与主设备不在同一局域网)时,需开放主设备防火墙端口并配置静态IP或DDNS,确保手机可主动发现并连接。
1、主设备Windows系统以管理员身份运行CMD,依次执行以下命令放行Syncthing端口:
netsh advfirewall firewall add rule name="Syncthing-TCP-22000" protocol=TCP dir=in localport=22000 action=allow
netsh advfirewall firewall add rule name="Syncthing-UDP-22000" protocol=UDP dir=in localport=22000 action=allow
netsh advfirewall firewall add rule name="Syncthing-UDP-21027" protocol=UDP dir=in localport=21027 action=allow
2、在主设备Syncthing Web界面“设置”→“连接”中,关闭“仅局域网发现”,启用“全局发现”。
3、安卓端Syncthing-Android进入“设置”→“高级”→开启“全局发现”和“引入者”功能。
4、等待约2分钟,安卓端Devices列表中应出现主设备名称,状态为Up to Date,表示远程连接已就绪。











