在之前的一篇文章里,教大家在 OpenWrt 使用 KODExplorer 搭建私有云存储。传送门:《OpenWrt 使用 KODExplorer (芒果云) 搭建私有云存储》
虽然 KODExplorer 很不错,但不支持同步功能(官方说会即将支持),算是一个缺陷吧。
不过,我们可以使用第三方同步工具弥补这个缺陷,搭配 KODExplorer 或 SMB 进行管理。
这次教大家在 OpenWrt 使用 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。
停止或重启,点击网页右上角的 [操作] 即可。
查看运行日志: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 界面会出现添加设备请求,[添加设备] → [保存] 。
添加完设备后,就可以设置需要同步的文件夹了。
点击电脑 Syncthing 界面的 [添加文件夹] → 选择文件夹路径 → 选择共享设备 → [保存]
等待数秒,路由器 Syncthing 界面会出现添加文件夹请求, [添加] → 选择文件夹路径,这个路径是同步文件存放的路径,每个同步文件夹必须使用不同的路径,比如:/mnt/sda1/mivm → [保存]
可以更改文件夹标签来区分文件夹
等待数秒,文件即会开始同步,默认双向同步,每60秒扫描一次。
也可以改为单向同步,即电脑更改文件同步至路由器,路由器更改文件不同步至电脑。
在电脑 Syncthing 界面点击同步文件夹 [选项] → [高级设置] → 将 [文件夹类型] 改为 [仅发送] → [保存] [重新扫描] 可立即扫描文件夹更改并进行同步,[暂停] 可暂停文件夹同步。
Android
由于 iOS 版本非官方提供,而且售价 18 元,暂不提供教程。
Syncthing 的同步速度还是很快的,一旦新增、删除、更改文件,立刻同步,可能不同的路由器性能速度也会有所不同。
不过有一点不方便,就是只能改为 [仅发送],没有 [仅接受],如果想把手机照片同步备份的话,手机删除后,同步设备也会删除。
关于远程同步,我还没有研究,不过作为家庭私有云,远程好像没有什么必要。
通过 KODExplorer 和 Syncthing,我们就可以在 OpenWrt 上面搭建一个功能完整的私有云存储。
上面的教程有任何问题请在下方给我留言,关于 Syncthing 的小技巧也可以给我留言。