news 2026/9/5 13:35:49

Syncthing 部署实战:3 套系统手把手完成设备间文件直传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Syncthing 部署实战:3 套系统手把手完成设备间文件直传

Syncthing 部署实战:3 套系统手把手完成设备间文件直传

【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing

Syncthing(开源连续文件同步工具)让多台设备在不上云的前提下自动保持文件一致。这篇 Syncthing 部署指南覆盖 Windows、macOS、Linux 三个平台:从装前自检、首次配置、两台设备配对,到服务化常驻与"连不上/不同步"的排查,跟着做完即可跑通第一组双向同步。

先搞懂它凭什么替代网盘:原理与前置清单

设备直传:Syncthing 的同步机制

设备之间通过 P2P(Peer-to-Peer,对等网络,双方不经第三方直接互传)建立连接,全程使用 TLS(Transport Layer Security,传输层安全协议,负责加密与双向身份核验)加密。文件内容按块比对,走 BEP(Block Exchange Protocol,块交换协议,只传缺失的块而不是整个文件),所以大文件二次同步几乎不耗流量。

维度云端同步Syncthing 直传
流量成本上传+下载双向计费局域网近乎零成本
隐私数据落在服务商仅存在于你自己的设备
离线可用性依赖云端设备在线即可,断网可走中继
冲突处理云端裁决本地生成冲突副本,不丢数据

两台设备完成一次同步的完整过程:

装前自检:版本、端口与配置目录

检查项要求
操作系统Windows 7 SP1+ / macOS 10.13+ / 主流发行版 Linux
内存与磁盘4GB 内存起步;同步目录所在盘预留出文件总量的空间
配置位置Windows:%LOCALAPPDATA%\Syncthing;macOS:~/.config/syncthing;Linux:~/.config/syncthing

提示:日志默认写在配置目录下(Windows 为%LOCALAPPDATA%\Syncthing\synchronisation.log,Unix 系为~/.local/state/syncthing/logs/syncthing.log)。排查"不同步"时先看这里,比翻服务日志快。

3 种系统最快的 Syncthing 安装方式

Linux 安装(二进制 + CLI 验证)

  1. 从发行版仓库或官方发布页取得压缩包(下文以版本vX.Y.Z为占位,替换为实际值)并放入 PATH:
tar -xzf syncthing-linux-amd64-vX.Y.Z.tar.gz sudo cp syncthing-linux-amd64-vX.Y.Z/syncthing /usr/local/bin/
  1. 验证安装:
syncthing --version

成功标志:打印出版本号(如v2.1.0)。

macOS 安装(Homebrew 或手动)

  1. 用 Homebrew 安装:
brew install syncthing

成功标志:命令静默完成后,which syncthing返回路径。没有 Homebrew 的话,把官网下载的二进制放入~/bin/syncthingchmod +x也可以,后续 LaunchAgent 会直接引用该路径。

Windows 安装(解压即用)

  1. 把官网 ZIP 解压到C:\Program Files\Syncthing(目录可自定,占位符INSTALL_DIR替换为实际路径)。
  2. 首次用命令行生成默认配置:
syncthing.exe generate

成功标志:控制台打印出 Web 界面地址http://127.0.0.1:8384/,浏览器随后自动弹出该页面。

提示:仓库自带 命令行子命令清单,装好后可先跑syncthing cli --help熟悉show connectionsshow discovery等排查命令,后文排障会用到。

Syncthing 首次配置:GUI 认证、设备配对与共享文件夹

给 Web 界面上一把锁

  1. 浏览器打开http://127.0.0.1:8384,点顶部 Actions → Edit Configuration → GUI。
  2. 勾选 Enable Authentication,填入用户名与密码,保存后服务自动重启。

成功标志:刷新页面出现登录框,用刚设置的凭据能进入。

注意:GUI 默认只监听本机回环地址,这是正确状态。除非你有明确的远程管理需求并确认设置了强密码,否则不要把它暴露到公网。

两台设备互认:56 位 ID 是怎么交换的

  1. 在 A 的 Web 界面 Devices 页复制本机 Device ID(形如ABC12-...-...,共 56 位,中间用连字符分组)。
  2. 在 B 的 Devices 页点 Add Remote Device,粘贴该 ID 并起个备注名。
  3. A 端的 Devices 页会出现一条 Pending Devices 记录,点 Accept。

成功标志:双方 Devices 列表里对端设备图标变为绿色在线状态。

共享文件夹:类型怎么选

  1. A 端在 Folders 页 Add Folder,选择本地目录路径。
  2. 在共享设置里勾选要参与同步的对端设备。
  3. 按需求选择文件夹类型:
类型行为典型用途
Send & Receive双向自动对齐日常主力同步
Send Only只向外推送,本地改动不生效发布服务器、模板分发
Receive Only只接收,本地不主动推送备份接收端

成功标志:B 端 Folders 页出现 Pending Folders 提示,接受后开始扫描。

提示:目录根部放一个.stignore文件,按 Git 忽略规则排除日志、临时文件等,能明显减少无效扫描。格式示例见 man/syncthing-stignore.5。

放行端口:Syncthing 防火墙配置

三台设备要互通,本地防火墙至少要放行下表端口:

端口协议用途
22000TCP设备直连传输
22000UDPQUIC 传输(NAT 穿透更稳)
21027UDP局域网内自动发现
8384TCPWeb 管理界面(仅限本机访问)

Ubuntu/Debian(UFW)一条命令放行同步相关端口:

sudo ufw allow 22000/tcp && sudo ufw allow 22000/udp && sudo ufw allow 21027/udp

成功标志:sudo ufw status列出三条 ALLOW 规则。Windows 在管理员 PowerShell 中放行本进程:

New-NetFirewallRule -DisplayName "Syncthing" -Direction Inbound -Program "$env:ProgramFiles\Syncthing\syncthing.exe" -Action Allow

成功标志:Get-NetFirewallRule -DisplayName "Syncthing"返回 Enabled 状态的规则。macOS 默认不拦入站;若开启过防火墙,弹出"是否允许传入连接"时点允许即可。

注意:8384 只应在确需远程管理时才放行,且务必先完成上一步的 GUI 认证。

Syncthing 服务化:登录系统即自动拉起

配置完成后,先在 GUI 设置里取消"启动时打开浏览器",再按系统注册常驻服务。

Windows:注册为系统服务

  1. 管理员 PowerShell 创建服务(INSTALL_DIR替换为实际安装路径):
sc.exe create Syncthing binPath= "`"C:\Program Files\Syncthing\syncthing.exe`" --no-browser --no-restart" start= auto sc.exe start Syncthing
  1. 验证:sc.exe query Syncthing显示RUNNING即成功。

macOS:LaunchAgent 自动拉起

  1. 仓库已备好现成模板 etc/macos-launchd/syncthing.plist,先复制再修改:
cp etc/macos-launchd/syncthing.plist ~/Library/LaunchAgents/syncthing.plist
  1. 打开该文件,把两处USERNAME全部替换为你的账户名(/Users/USERNAME、程序路径按实际安装位置调整)。
  2. 加载并验证:
launchctl load ~/Library/LaunchAgents/syncthing.plist launchctl list | grep syncthing

成功标志:grep 出一行,第一列为 PID(非-),表示进程在跑。

Linux:systemd 用户级服务

  1. 写入服务单元(内容如下,/usr/local/bin/syncthing按实际位置调整):
cat > ~/.config/systemd/user/syncthing.service <<'EOF' [Unit] Description=Syncthing - Open Source Continuous File Synchronization After=network-online.target [Service] ExecStart=/usr/local/bin/syncthing serve --no-browser --no-restart Restart=on-failure RestartSec=1 [Install] WantedBy=default.target EOF
  1. 加载、启动并设为登录自启:
systemctl --user daemon-reload systemctl --user enable --now syncthing
  1. 验证:systemctl --user status syncthing显示active (running)即成功。

提示:想让服务在开机(无人登录)时就运行,执行sudo loginctl enable-linger $USER。系统级模板 etc/linux-systemd/system/syncthing@.service 内置了完整沙箱加固项,需要更强隔离时可参考它,自定义改动建议用 drop-in 覆盖而非改原文件。

验证与排障:Syncthing 连不上/不同步怎么办

端到端验证

  1. 在 A 的同步目录新建test.txt,写入任意内容。
  2. 等 1~2 分钟,看 B 的同一目录。

成功标志:B 端出现test.txt,Web 界面中该文件夹状态为绿色 Up to Date,对端设备在线。

状态自查命令

syncthing cli show connections # 看对端是否已连上及其地址 syncthing cli show system # 看服务整体状态

成功标志:connections 输出里能看到对端 ID 与 IP 段(直连为对端真实 IP,走中继则带dynamic+前缀)。Linux 下若服务异常,用journalctl --user -u syncthing查最近日志。

常见坑速查

现象最可能原因处置
对端一直离线防火墙没放行、端口写错对照端口表复查,show connections看是否只剩dynamic+地址
跨网段时断时续NAT 下直连失败确认 GUI 里 Relay 处于启用状态,让它兜底走中继
同步慢、大文件卡走了中继,或 21027/UDP 没放行局域网先补齐 UDP 规则;检查是否全部dynamic+
某些文件始终不动.stignore误伤、权限不足删掉忽略规则重试;服务账号需有目录读写权限
Web 界面打不开服务没起来 / 凭据输错确认 8384 端口在监听,用 GUI 认证凭据登录
Linux 服务起不来单元文件语法或路径错误journalctl --user -u syncthing读最后 20 行定位

🎉 到这里,三台设备已全部进入自动同步状态:文件改动、删除会持续对齐,登录系统即自动拉起进程。后续新增设备只需重复"互认 ID → 接受 Pending → 共享文件夹"三步即可。

【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 13:33:52

LLaMA-Factory MoE微调实战指南:3种配置跑通Qwen3-30B-A3B

LLaMA-Factory MoE微调实战指南&#xff1a;3种配置跑通Qwen3-30B-A3B 【免费下载链接】LlamaFactory Unified Efficient Fine-Tuning of 100 LLMs & VLMs (ACL 2024) 项目地址: https://gitcode.com/GitHub_Trending/ll/LlamaFactory 想在单卡上微调 Qwen3-30B-A3B…

作者头像 李华
网站建设 2026/9/2 10:10:35

Stata数学建模实战:从数据清洗到回归分析完整工作流

1. 项目概述&#xff1a;为什么Stata是数学建模的“瑞士军刀”&#xff1f; 如果你正在接触数学建模&#xff0c;尤其是经济、金融、社会或医学统计领域的建模&#xff0c;那么你大概率绕不开一个名字&#xff1a;Stata。它不是那种“大而全”的编程语言&#xff0c;但在我十多…

作者头像 李华
网站建设 2026/9/2 9:47:24

从Sonnet 5.5到DeepSeek:AI模型接入工作流的选型与验证实践

最近身边讨论最热的技术话题&#xff0c;绕不开两个词&#xff1a;Sonnet 5.5 和 DeepSeek。前者更多停留在“泄露”“传闻”的层面&#xff0c;后者则是真实地出现在 Codex 配置、IDE 插件、API 账单和本地部署脚本里。很多开发者一边在等 Sonnet 5.5 能不能成为新的“性价比之…

作者头像 李华
网站建设 2026/8/31 22:27:40

AI 电动硅胶挤出机智能功率 MOSFET 完整选型方案

2026年随着 AI 技术在电动硅胶挤出机控制系统中的深度渗透&#xff08;如智能流量控制、精准温度调节、压力实时反馈&#xff09;&#xff0c;挤出机对功率 MOSFET 提出更高要求&#xff1a;高频化、低损耗、高集成度。微碧半导体&#xff08;VBsemi&#xff09;基于 Trench 工…

作者头像 李华
网站建设 2026/9/2 11:29:33

scrcpy 安卓投屏:把手机屏幕投到电脑上,用鼠标直接操作

scrcpy 安卓投屏&#xff1a;把手机屏幕投到电脑上&#xff0c;用鼠标直接操作 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy scrcpy 是个免费开源的安卓投屏工具。手机接上 USB&#xff…

作者头像 李华