Syncthing 开源文件同步:3 步跑起来,让多台设备自动同步文件
【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing
Syncthing 是一款开源的持续文件同步工具,实时在两台或多台电脑之间同步文件夹,无需云端中介。本文带你完成 Syncthing 安装、启动与基础配置,适合第一次使用的个人用户和小团队。
它能帮你解决什么问题
- 多设备文件备份:笔记本改完的代码或文档,到家打开台式机时已经同步到位,不依赖任何云盘。
- 无云服务的私人网盘:数据只在自己设备之间点对点传输,加密传输、不经过第三方服务器,隐私敏感的场景更安心。
- 跨系统一致体验:Windows、macOS、Linux 全平台支持,手机(Android)也能装,同步行为完全一致。
它的工作方式是"持续同步":文件夹里文件一变,Syncthing 立即检测到并推送给其他设备,无需手动触发。
三步跑起来:安装与首次启动
第 1 步:获取并构建。从源码构建需要 Go 环境(1.25+)。最短路径如下:
git clone https://gitcode.com/GitHub_Trending/sy/syncthing cd syncthing go run build.go构建完成后,可执行文件在./bin目录下。
第 2 步:启动。
./bin/syncthing serve --no-browser首次启动会自动生成设备 ID 和默认配置。默认 GUI 地址是127.0.0.1:8384,打开浏览器访问即可(建议首次启动时不加--no-browser,程序会自动帮你打开页面)。
第 3 步:设为开机自启。仓库etc/linux-systemd下自带 systemd 服务模板,以用户级服务为例:
systemctl --user enable syncthingWindows 用户可用nssm之类的工具注册服务,macOS 可参考etc/macos-launchd下的 LaunchAgent 模板。
关键配置一次看懂
Syncthing 的配置是一个 XML 文件config.xml,默认位置:
| 系统 | 配置目录 |
|---|---|
| Linux | ~/.config/syncthing/config.xml |
| Windows | %LOCALAPPDATA%\Syncthing\config.xml |
| macOS | ~/Library/Application Support/syncthing/config.xml |
最常用的 3 个配置项:
| 配置项 | 作用 | 默认值 |
|---|---|---|
<gui>的<address> | 控制台监听地址 | 127.0.0.1:8384(仅本机) |
GUI 的user/password | 控制台登录凭据 | 首次启动后 GUI 中设置 |
设备地址(<address>) | 对端设备的直连地址,可写多行 | dynamic(自动发现) |
最小 GUI 配置示例:
<gui enabled="true" user="admin" password="your-password"> <address>127.0.0.1:8384</address> </gui>⚠️ 修改config.xml后需重启 Syncthing 或让其重载配置才生效。日常建议直接在 GUI 中操作(改完自动落盘到该文件),避免手写 XML 出错。
新手最容易踩的坑
- 两台设备连不上:同步是双向互信的。A 添加 B 的 ID 后,B 端还会收到一条配对请求,需手动批准,双向都确认后才建立连接。
- 别的设备打不开控制台:GUI 默认只监听
127.0.0.1:8384。要远程访问需改成0.0.0.0:8384,但务必设置强密码并考虑 HTTPS,否则等于裸奔。 - 文件同步了但内容不对:检查是否把对方的配置文件目录、数据库目录也放进了同步文件夹,这类目录不应该参与同步。
- 改了 XML 没生效:确认你改的是程序实际读取的那份
config.xml(可用启动参数--home查看),然后重启进程。
写在最后
到这里,你已经能独立安装、启动并配置 Syncthing,把任意文件夹在多台设备间持续同步。想深入事件接口、版本策略等高级用法,可查阅仓库内置手册 man/;主程序入口见 cmd/syncthing/main.go。
【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考