在 Synology DSM 上面跑 Syncthing (檔案同步)
文章目錄
需求
Syncthing 是一個 Open Source 的檔案同步軟體, 預計把她跑在 Synology DSM NAS 上, 以便及時把檔案同步備份過去.
安裝
- 打開 DSM, 直接在 套件中心 -> 社群 裡面找一下 Syncthing, 這裡安裝的版本不重要, 因為 Syncthing 會自己升級.
- 安裝完後就可以試著連線 http://your.synology:8384/
- 如果無法連線, 請查看 /volume1/@appstore/syncthing/var/syncthing.log, 找一下是否有下列錯誤訊息
1WARNING: GUI/API: accept tcp [::]:8384: accept: function not implemented (restarting)
- 若有這個訊息, 大致的原因是 Syncthing 是使用 Go, 而 go 1.17 以前的行為是會先使用 accept4(), 如果沒有 accept4(), 就改回用 accept(). 但在 go 1.18 這個行為被改變了, 他新版本只支援 accept4(), 而 Syncthing 1.20 以上使用的是新板 Go. 因此如果你的作業系統沒有 accept4(), 那你就沒法使用 Syncthing 1.20 以上. 可參考以下這幾個討論:
- 解法: 目前 暫時 只能降級回 Syncthing 1.19.2, 方法如下
- 在這裡檢查你的 Synology DSM 是哪種架構: https://github.com/SynoCommunity/spksrc/wiki/Architecture-per-Synology-model
- 在這裡下載對應的版本: https://github.com/syncthing/syncthing/releases/tag/v1.19.2
- 修改 /volume1/@appstore/syncthing/var/options.conf, 加上這段設定, 以避免他自動升級
1SYNCTHING_OPTIONS="--no-upgrade"
- 啟動 Syncthing
1synopkgctl start syncthing
- 這個問題在 Go 這邊有提出根本解 (實際上就是改回原來的作法, 若找不到 accept4, 就使用 accept), 在 Go 1.18/1.19 都會出新版修正. 實際的版本要再等等, 應該是會出在 Go 1.18.10 or Go 1.19.5, 但即使出了, 也要等 Syncthing 也用新版 rebuild 才能用. (到目前為止 Syncthing 1.23.0 還是不行)
- 如果無法連線, 請查看 /volume1/@appstore/syncthing/var/syncthing.log, 找一下是否有下列錯誤訊息
- 進去之後, 就和一般的 Syncthing 沒有不同了.
注意
GUI 的密碼萬一忘了怎麼辦?
-
打開 /volume1/@appstore/syncthing/var/config.xml, 尋找 gui 這個段落, 然後把 user, password 這兩行移除
1<gui enabled="true" tls="false" debugging="false"> 2 <address>0.0.0.0:8384</address> 3 <user>user123</user> 4 <password>sdfjsdf*SDJFlkjewqflkdsMldsakfjlkewjflkdsajflkdsaf</password> 5 <apikey>oHV57ywtwXARYmeZgWDUvyKCSQpU23v4</apikey> 6 <theme>default</theme> 7</gui>
-
重開 Syncthing, 然後再登入 GUI, 就會要你重新建立一個帳號了
1synopkgctl start syncthing
如何不讓 Syncthing 在開機時自動執行?
- 使用 Synology DSM 的套件中心, 把它停用就可以了.
Syncthing 很吃 CPU 嗎?
這是測試 Android -> Synology 的 CPU loading.
-
一開始大約 20%~30% 左右
1CPU[|||||||||||||||||||| 25.9%] Tasks: 117, 119 thr, 85 kthr; 2 running 2Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||262M/499M] Load average: 1.07 1.09 1.10 3Swp[| 26.6M/2.00G] Uptime: 09:21:53 4 5PID PPID TGID NLWP USER PRI NI IO VIRT RES SHR S CPU CPU% MEM% DISK READ DISK WRITE TIME+ Command 61067 1056 1067 7 sc-syncth 31 11 B6 795M 63776 11588 S 0 21.5 12.5 0.00 B/s 2.05 M/s 0:27.64 /volume1/@appstore/syncthing/bin/syncthing serv 71868 1056 1067 7 sc-syncth 31 11 B6 795M 63776 11588 S 0 12.0 12.5 0.00 B/s 1.57 M/s 0:05.15 syncthing 81072 1056 1067 7 sc-syncth 31 11 B6 795M 63776 11588 R 0 5.1 12.5 0.00 B/s 243.04 K/s 0:12.53 syncthing 91070 1056 1067 7 sc-syncth 31 11 B5 795M 63776 11588 S 0 4.4 12.5 0.00 B/s 245.57 K/s 0:09.71 syncthing 101068 1056 1067 7 sc-syncth 31 11 B6 795M 63776 11588 S 0 0.0 12.5 0.00 B/s 0.00 B/s 0:00.03 syncthing
-
不過後來就愈吃愈多了,
1CPU[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||88.0%] Tasks: 118, 124 thr, 85 kthr; 3 running 2Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||271M/499M] Load average: 2.55 2.96 2.16 3Swp[| 27.8M/2.00G] Uptime: 09:46:46 4 5PID PPID TGID NLWP USER PRI NI IO VIRT RES SHR S CPU CPU% MEM% DISK READ DISK WRITE TIME+ Command 61067 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 50.6 14.4 2.53 K/s 4.31 M/s 8:15.56 /volume1/@appstore/syncthing/bin/syncthing serv 72333 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 24.7 14.4 2.53 K/s 2.72 M/s 0:41.49 syncthing 81975 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 R 0 23.4 14.4 0.00 B/s 1.28 M/s 1:53.83 syncthing 93489 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 3.2 14.4 0.00 B/s 324.05 K/s 0:10.30 syncthing 101070 1056 1067 11 sc-syncth 31 11 B5 795M 73436 11948 S 0 0.0 14.4 0.00 B/s 0.00 B/s 1:44.83 syncthing 111868 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 0.0 14.4 0.00 B/s 0.00 B/s 1:52.39 syncthing 121072 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 0.0 14.4 0.00 B/s 0.00 B/s 1:47.70 syncthing 131068 1056 1067 11 sc-syncth 31 11 B6 795M 73436 11948 S 0 0.0 14.4 0.00 B/s 0.00 B/s 0:00.54 syncthing
Syncthing 在 Synology DSM 上面的穩定性好嗎?
- 看來是還不錯, 我這台 DS213 是 10 年前的老機器了, 從手機上同步 11GB 的檔案過來, 速度大約穩問的在 3~5MB/s 左右.
之後升級的問題
- 當這個問題解決之後, 升級 Syncthing 可能要注意一下這個 Upgrading from v1.19.2 to v1.20.x now requires chmod for syncing files
- Synology 這邊的 Syncthing 團隊似乎考慮引進 Syncthing 的 next-gen-gui, 可參考 https://github.com/SynoCommunity/spksrc/pull/5523.
Posts in this Series
- Asuswrt-Merlin Syncthing (檔案同步)
- 在 Synology DSM 上面跑 Syncthing (檔案同步)
- 手機照片自動備份到電腦 (使用 Syncthing for Android)