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 裡設定介面密碼。
以伺服器讀不了的方式分享資料夾
在你的筆電(或任何受信任的裝置)上:
- 用伺服器的裝置 ID 把它新增為遠端裝置。
- 打開要同步的資料夾 → Sharing,勾選伺服器,並在旁邊填入加密密碼。把這個密碼存進你的密碼管理器:沒有它,伺服器上的資料只是雜訊。
- 在伺服器的 Web 介面裡接受這個資料夾,資料夾類型選 Receive Encrypted。
就這樣。看看伺服器上實際收到了什麼:
find /home/syncthing -path '*syncthing-enc*' -type f | head
你會看到類似 …/I.syncthing-enc/C8/PICA7BFKFPSGQ06C4D4SQ50GB6E151QUNF1EOBK 的路徑,而不是你的檔名。在我們的測試中,我們在伺服器上搜尋了同步檔案裡的一句話——什麼也沒找到。
你的其他裝置之間照常分享同一個資料夾,與伺服器之間則使用同一個加密密碼。任何知道密碼的受信任裝置都能從伺服器同步,包括舊筆電壞掉之後換的新筆電。
說實話
- 同步不是備份。 刪除和誤覆寫同樣會被同步。請在受信任的裝置上開啟版本控制,或在別處另做一份備份。
- 加密隱藏的是內容和檔名,不是全部。 檔案大小和什麼時候發生了變化,在伺服器上依然能推算出來。對大多數人來說這是合理的取捨;如果對你不是,這套方案就不適合你。
- 密碼就是鑰匙。 弄丟了它,伺服器上的加密副本就毫無用處。這正是設計的用意,也是風險所在。
- 手機。 已經沒有官方行動應用程式了:Android 有一個社群維護的版本,iOS 只有第三方用戶端。在依賴它之前,先確認你的裝置能用。
如果你想要有行事曆、聯絡人和分享連結的完整 Web 介面,而不是安靜的背景同步,可以看看 Nextcloud。如果你只是想讓檔案無所不在、卻只能在你自己的裝置上讀取,這是更輕量的工具。
相關內容
- 在 VPS 上自架 Nextcloud:有 Web 介面的完整私有雲
- Vaultwarden VPS:密碼放在自己的伺服器上
- 加密儲存 VPS:LUKS,以及伺服器上的加密能做什麼、不能做什麼
- 如何設定 SSH 金鑰驗證
- 如何設定 ufw 防火牆
評論
目前還沒有評論。歡迎成為第一位。