OpenWrt 使用 Syncthing 搭建文件同步服务

在之前的一篇文章里,教大家在 OpenWrt 使用 KODExplorer 搭建私有云存储。传送门:《OpenWrt 使用 KODExplorer (芒果云) 搭建私有云存储

虽然 KODExplorer 很不错,但不支持同步功能(官方说会即将支持),算是一个缺陷吧。

不过,我们可以使用第三方同步工具弥补这个缺陷,搭配 KODExplorer 或 SMB 进行管理。

这次教大家在 OpenWrt 使用 Syncthing 搭建文件同步服务

Syncthing

准备工作

由于 Syncthing 只提供了部分平台的二进制(虽然也提供源码),所以你路由器的 CPU 架构需要是:x86、x64、ARM、AArch64、MIPS、MIPSLE、PPC64 或 PPC64LE。一般软路由用 x86 或 x64,MTK 用 MIPSLE、博通和高通用 ARM。

可用空间 5M + 内存 128M +

存储设备,分区格式推荐为 ext4,如果你的固件 NTFS 速度快的话,无所谓,ext4 格式化方法可以看《斐讯 K3 LEDE 安装迅雷远程下载》中的步骤。

SSH 和 WinSCP 连接准备好

Syncthing

首先,安装依赖软件包:ca-bundle ca-certificates wget openssl-util

前往 https://github.com/syncthing/syncthing/releases/latest 下载对应平台的 Syncthing,下载文件名为 syncthing-linux 开头的压缩包,比如:syncthing-linux-arm-v0.14.32.tar.gz,下载完成后解压。

在存储设备上创建 syncthing 文件夹,比如存储设备路径为:/mnt/sda1,创建文件夹输入命令:mkdir -p /mnt/sda1/syncthing,也可以使用其他方法创建,然后将解压的文件上传,上传完成后,输入chmod +x /mnt/sda1/syncthing/syncthing 设置权限,输入 ln -s /mnt/sda1/syncthing/syncthing /usr/bin/syncthing 创建软连接。

输入 syncthing -gui-address="0.0.0.0:88" -logfile="/var/log/syncthing.log" -home="/mnt/sda1/syncthing" -no-browser >/dev/null & 运行 Syncthing,home="/mnt/sda1/syncthing" 这里改成你的 syncthing 路径。

浏览器输入 192.168.1.1:88 看到 Syncthing 界面即表示运行成功,如果你的路由器 IP 不是 192.168.1.1,请更改为你的路由器 IP。

Syncthing

停止或重启,点击网页右上角的 [操作] 即可。

查看运行日志:tail -f /var/log/IntelliJIDEALicenseServer.log Ctrl + C 终止查看

开机启动:sed -i '/exit 0/i\syncthing -gui-address="0.0.0.0:88" -logfile="/var/log/syncthing.log" -home="/mnt/sda1/syncthing" -no-browser >/dev/null &' /etc/rc.local

取消开机启动:sed -i '/syncthing -gui-address="0.0.0.0:88" -logfile="\/var\/log\/syncthing.log" -home="\/mnt\/sda1\/syncthing" -no-browser >\/dev\/null &/d' /etc/rc.local

文件同步

Syncthing 搭建好以后如何同步文件呢?

首先在电脑或手机上安装 Syncthing

浏览器事先打开 Syncthing 界面

Windows

打开 SyncTrayzor,等待 Syncthing 启动完成,出现 Syncthing 界面,这个界面是电脑的 Syncthing,并不是路由器上面的。

点击电脑 Syncthing 界面的 [添加远程设备],然后点击路由器 Syncthing 界面的 [操作] → [显示 ID],将 ID 复制粘贴至电脑 Syncthing 界面的设备 ID 输入框,如果输入框下面的附近设备有路由器的 ID,直接选择即可,然后点击保存。

Syncthing 设备 ID

等待数秒,路由器 Syncthing 界面会出现添加设备请求,[添加设备] → [保存] 。

Syncthing 添加设备

添加完设备后,就可以设置需要同步的文件夹了。

点击电脑 Syncthing 界面的 [添加文件夹] → 选择文件夹路径 → 选择共享设备 → [保存]

等待数秒,路由器 Syncthing 界面会出现添加文件夹请求, [添加] → 选择文件夹路径,这个路径是同步文件存放的路径,每个同步文件夹必须使用不同的路径,比如:/mnt/sda1/mivm → [保存]

可以更改文件夹标签来区分文件夹

Syncthing 文件夹同步

等待数秒,文件即会开始同步,默认双向同步,每60秒扫描一次。

也可以改为单向同步,即电脑更改文件同步至路由器,路由器更改文件不同步至电脑。

在电脑 Syncthing 界面点击同步文件夹 [选项] → [高级设置] → 将 [文件夹类型] 改为 [仅发送] → [保存]

[重新扫描] 可立即扫描文件夹更改并进行同步,[暂停] 可暂停文件夹同步。

Android

Android 的使用方法和 Windows 差不多

打开 Syncthing → [设备] → 点击右上角 +  → 输入设备标识 ( ID ),也可以扫描二维码 → 点击右上角 √ → 和 Windows 添加设备步骤相同。

Syncthing-Android 添加设备

然后在 [文件夹] 添加同步文件夹 → 点击同步文件夹 → 启用同步设备 → 和 Windows 添加文件夹步骤相同。

Syncthing-Android 同步文件夹

如果需要实时同步,需要 Syncthing 常驻后台不被杀死。

Syncthing

由于 iOS 版本非官方提供,而且售价 18 元,暂不提供教程。

Syncthing 的同步速度还是很快的,一旦新增、删除、更改文件,立刻同步,可能不同的路由器性能速度也会有所不同。

不过有一点不方便,就是只能改为 [仅发送],没有 [仅接受],如果想把手机照片同步备份的话,手机删除后,同步设备也会删除。

关于远程同步,我还没有研究,不过作为家庭私有云,远程好像没有什么必要。

通过 KODExplorer 和 Syncthing,我们就可以在 OpenWrt 上面搭建一个功能完整的私有云存储。


上面的教程有任何问题请在下方给我留言,关于 Syncthing 的小技巧也可以给我留言。

微信公众号二维码

微信扫描二维码关注我们

点赞
  1. 小明说道:

    对啊,没有仅接受,有点不足,要是有这个功能就完美了

    Google Chrome 66.0.3359.181 Google Chrome 66.0.3359.181 Windows 10 x64 Edition Windows 10 x64 Edition
  2. 哒哒说道:

    6666666~~~~又可以学着回去玩了

    Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 10 x64 Edition Windows 10 x64 Edition

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.