−25%

Windows 按年付费,截至 10 月 31 日。 查看套餐

EQVPS
开始使用

Syncthing VPS:始终在线,只存加密数据

全天候在线的 Syncthing 对等端:即使你的设备从不同时开机也能同步,而服务器只保存加密数据。经过实测的配置。

Syncthing 有个恼人的习惯:两台设备只有在都在线时才会同步。笔记本在休眠,手机揣在兜里用着移动数据,家里的电脑关着机——文件只能等到其中两台恰好同时醒着的那一刻。一个全天候在线的对等端能解决这个问题。无论每台设备何时上线,一切都通过服务器同步。

常见的顾虑是“那我的文件就放在 VPS 上了”。Syncthing 对此也有办法:把文件夹以不受信任设备的身份共享给服务器,它只会保存自己读不了的加密数据。

选哪个套餐

Syncthing 本身很小——我们测试时大约占 25–30 MB 内存。你真正买的是磁盘,因为服务器会保存每个共享文件夹的完整副本。

你同步的内容套餐
文档、笔记、配置文件、密码数据库文件Nano-IP:2 vCPU、1 GB、15 GB(每月 $8)
多年的文档加上一些照片Micro-IP:2 vCPU、2 GB、25 GB(每月 $10)
工作文件夹和更大的归档Small-IP:4 vCPU、4 GB、35 GB(每月 $16)
照片库Pro-32:400 GB(每月 $40),按需申请

请选择带独立 IPv4 的套餐。你的设备需要通过 22000 端口访问服务器;NAT 套餐只放行 SSH,Syncthing 会退回到公共中继——更慢,而且走的是你无法掌控的基础设施。德国或芬兰,选离你更近、下单时有货的那个。服务器可以用加密货币付款,无需 KYC。

安装

在 Ubuntu 24.04 或 Debian 12 上以 root 身份,从 Syncthing 官方软件源(稳定 v2 通道)安装:

mkdir -p /etc/apt/keyrings
curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" > /etc/apt/sources.list.d/syncthing.list
apt update && apt install -y syncthing

用专门的用户在 systemd 下运行:

useradd -m -s /bin/bash syncthing
systemctl enable --now syncthing@syncthing
ufw allow 22/tcp && ufw allow 22000/tcp && ufw allow 22000/udp && ufw enable

不要把用户命名为 sync。这个名字已经属于一个家目录为 /bin 的系统账户,syncthing@sync 会因只读文件系统报错而启动失败——我们自己就踩过这个坑。

获取服务器的设备 ID——稍后要粘贴到其他设备上:

runuser -u syncthing -- syncthing device-id

Web 界面只监听 127.0.0.1:8384,这正是你想要的。从你的电脑通过 SSH 隧道访问:

ssh -L 8384:127.0.0.1:8384 root@YOUR_SERVER_IP

打开 http://127.0.0.1:8384,第一件事是在 Settings → GUI 里设置界面密码。

以服务器读不了的方式共享文件夹

在你的笔记本(或任何受信任的设备)上:

  1. 用服务器的设备 ID 把它添加为远程设备。
  2. 打开要同步的文件夹 → Sharing,勾选服务器,并在旁边填入加密密码。把这个密码存进你的密码管理器:没有它,服务器上的数据只是噪声。
  3. 在服务器的 Web 界面里接受这个文件夹,文件夹类型选 Receive Encrypted。

就这样。看看服务器上实际收到了什么:

find /home/syncthing -path '*syncthing-enc*' -type f | head

你会看到类似 …/I.syncthing-enc/C8/PICA7BFKFPSGQ06C4D4SQ50GB6E151QUNF1EOBK 的路径,而不是你的文件名。在我们的测试中,我们在服务器上搜索了同步文件里的一句话——什么也没找到。

你的其他设备之间照常共享同一个文件夹,与服务器之间则使用同一个加密密码。任何知道密码的受信任设备都能从服务器同步,包括旧笔记本坏掉之后换的新笔记本。

说实话

  • 同步不是备份。 删除和误覆盖同样会被同步。请在受信任的设备上开启版本控制,或在别处另做一份备份。
  • 加密隐藏的是内容和文件名,不是全部。 文件大小和什么时候发生了变化,在服务器上依然能推算出来。对大多数人来说这是合理的取舍;如果对你不是,这套方案就不适合你。
  • 密码就是钥匙。 丢了它,服务器上的加密副本就毫无用处。这正是设计的用意,也是风险所在。
  • 手机。 已经没有官方移动应用了:Android 有一个社区维护的版本,iOS 只有第三方客户端。在依赖它之前,先确认你的设备能用。

如果你想要带日历、通讯录和分享链接的完整 Web 界面,而不是安静的后台同步,可以看看 Nextcloud。如果你只是想让文件无处不在、却只能在你自己的设备上读取,这是更轻量的工具。

相关内容

准备好部署了?加密货币付款、无需KYC——约一分钟上线。

立即部署 →

常见问题

服务器能读取我的文件吗?

如果你把文件夹以不受信任设备的身份共享给它,就读不了。加密密码在你自己的设备上设置;服务器保存的是文件名被打乱的加密内容。在我们的测试中,一个文本文件到了服务器上变成类似 I.syncthing-enc/C8/PICA7… 的样子,内容在任何地方都找不到明文。文件大小和修改时间仍可推断——文件名和内容不能。

Syncthing 需要独立 IP 吗?

强烈建议。你的设备通过 22000 端口(TCP 和 UDP)连接服务器。NAT 套餐从外部只能访问 SSH 端口,于是 Syncthing 会退回到公共中继——能用,但更慢,而且你的加密流量要经过别人的中继。

需要多少磁盘?

服务器会保存与它共享的每个文件夹的完整副本,所以请按你的数据量而不是按 Syncthing 来估算。文档和笔记 15–25 GB 就够;照片库通常意味着 400 GB 及以上的 Pro 套餐,可按需申请。

为什么 syncthing@sync 启动不了?

因为 Debian 和 Ubuntu 本来就有一个名为 sync 的系统用户,家目录是 /bin。Syncthing 试图在 /bin/.local 下创建配置,结果在只读文件系统上失败。用任何其他名字创建用户即可——我们用的是 syncthing。

这算备份吗?

不算。同步也会复制删除操作:在笔记本上删掉一个文件,服务器上的也会消失。请在受信任的设备上开启文件版本控制,或另做一份备份。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。