Syncthing 2.1.3 已正式发布。这是一款免费、开源的连续文件同步工具,能够让多台网络计算机直接互传文件和文件夹,不依赖中心化云存储服务。此次版本更新以问题修复为主,其中一个重要修复涉及符号链接路径后的 ignore 模式加载。
对于使用符号链接组织工作目录、配置目录或媒体目录的用户来说,这类修复并不只是边缘场景。忽略规则是否正确生效,会直接影响同步范围、网络流量以及目标设备上的目录内容。
这次更新解决了什么
根据发布摘要,Syncthing 2.1.3 主要包含以下修复:
- 修复
ignore和文件系统处理相关问题,使程序能够加载符号链接后面的ignore模式。 - 修复扫描文件时可能出现的问题,避免扫描过程中的异常行为。
ignore 文件通常用于排除临时文件、构建产物、缓存和本地配置。例如,一个项目目录可能包含源代码和依赖目录,但用户只希望同步源代码:
# .stignore
.git
node_modules
__pycache__
*.tmp
.env.local
当被同步的目录通过符号链接指向另一个实际目录时,忽略规则的解析就更容易暴露路径处理问题。升级到 2.1.3 后,建议重新检查这些目录的同步状态,确认不应同步的内容仍然被排除。
Syncthing 的同步模型
Syncthing 的数据传输发生在参与同步的设备之间。文件不会因为使用 Syncthing 就自动上传到某个第三方云端,这使它适合以下场景:
- 在笔记本和台式机之间同步工作目录。
- 在家庭服务器和个人电脑之间同步照片或文档。
- 在多台内网设备之间分发配置、脚本和资料。
- 在不希望依赖公共云盘的环境中建立点对点文件同步。
不过,“直接传输”和“备份”不是同一个概念。如果文件在一台设备上被删除或覆盖,变化可能会同步到其他设备。因此,重要数据仍应配合版本控制、快照或独立备份使用。
一个可改造的本地启动示例
下面的命令适合在 Linux 或 macOS 上快速创建一个独立的 Syncthing 配置目录并启动服务。运行前请确认已经安装了 syncthing,并根据实际路径修改目录:
set -eu
CONFIG_DIR="$HOME/.config/syncthing-work"
SYNC_DIR="$HOME/Sync/work"
mkdir -p "$CONFIG_DIR" "$SYNC_DIR"
# 第一次运行时生成独立配置;目录已有配置时不会重复生成
if [ ! -f "$CONFIG_DIR/config.xml" ]; then
syncthing -generate="$CONFIG_DIR"
fi
# 启动后可通过 Web 界面完成设备配对和文件夹配置
syncthing -home="$CONFIG_DIR" -no-browser
启动后,在 Web 界面中添加远程设备,并将本地目录配置为 SYNC_DIR。如果该目录下存在 .stignore,可以先使用最小规则验证行为:
# $HOME/Sync/work/.stignore
*.tmp
.cache
build/
使用符号链接时,可以这样准备测试目录:
mkdir -p "$HOME/Sync/real-work/build" "$HOME/Sync/real-work/docs"
ln -sfn "$HOME/Sync/real-work" "$HOME/Sync/work-link"
printf 'build/\n*.tmp\n' > "$HOME/Sync/real-work/.stignore"
printf 'temporary\n' > "$HOME/Sync/real-work/test.tmp"
实际部署时,应在 Syncthing 界面中明确选择需要同步的真实目录或符号链接目录,并观察扫描结果。不要仅凭目录名称判断规则已经生效;可以在同步双方检查被排除文件是否仍然出现在待同步列表中。
升级后的检查清单
升级到 2.1.3 后,可以按下面的顺序验证:
- 确认所有参与同步的设备都已升级,避免不同版本长期混用。
- 检查包含符号链接的同步目录,确认目录扫描能够完成。
- 检查
.stignore中的目录、通配符和文件名规则是否仍按预期工作。 - 观察同步状态,确认没有意外的大批量文件变更。
- 对重要目录保留独立备份或历史版本。
Syncthing 2.1.3 的重点是稳定性修复,而不是引入新的同步模型。对于已经运行 Syncthing 的用户,升级后重点关注符号链接目录和忽略规则即可;对于刚开始使用的用户,则应先用小规模测试目录验证设备配对、忽略模式和冲突处理,再扩展到真实数据。