在之前的一篇文章里,教大家在 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 速度快的话,无所谓。
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/syncthing.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 界面
打开 SyncTrayzor,等待 Syncthing 启动完成,出现 Syncthing 界面,这个界面是 Windows 的 Syncthing,并不是路由器的。
点击 Syncthing 界面的 [添加远程设备],然后点击路由器 Syncthing 界面的 [操作] → [显示 ID],将 ID 复制粘贴至电脑 Syncthing 界面的设备 ID 输入框,如果输入框下面的附近设备有路由器的 ID,直接选择即可,然后点击保存。
等待数秒,路由器 Syncthing 界面会出现添加设备请求,[添加设备] → [保存] 。
添加完设备后,就可以设置需要同步的文件夹了。
点击 Windows Syncthing 界面的 [添加文件夹] → 填写文件夹路径 → 选择共享设备 → [保存]
等待数秒,路由器 Syncthing 界面会出现添加文件夹请求, [添加] → 选择文件夹路径,这个路径是同步文件存放的路径,每个同步文件夹必须使用不同的路径,比如:/mnt/sda1/mivm → [保存]
可以更改文件夹标签来区分文件夹
等待数秒,文件即会开始同步,默认双向同步,每60秒扫描一次。
也可以改为单向同步,即 Wubdiws 更改文件同步至路由器,路由器更改文件不同步至 Windows。
在 Windows Syncthing 界面点击同步文件夹 [选项] → [高级设置] → 将 [文件夹类型] 改为 [仅发送] → [保存]
[重新扫描] 可立即扫描文件夹更改并进行同步,[暂停] 可暂停文件夹同步。
Android 的使用方法和 Windows 差不多
打开 Syncthing → [设备] → 点击右上角 + → 输入设备标识 ( ID ),也可以扫描二维码 → 点击右上角 √ → 和 Windows 添加设备步骤相同。
然后在 [文件夹] 添加同步文件夹 → 点击同步文件夹 → 启用同步设备 → 和 Windows 添加文件夹步骤相同。
如果需要实时同步,需要 Syncthing 常驻后台不被杀死。
由于 iOS 版本非官方提供,而且售价 18 元,暂不提供教程。
Syncthing 的同步速度还是很快的,一旦新增、删除、更改文件,立刻同步,可能不同的路由器性能速度也会有所不同。
关于远程同步,我还没有研究,不过作为家庭私有云,远程好像没有什么必要。
通过 KODExplorer 和 Syncthing,我们就可以在 OpenWrt 上面搭建一个功能完整的私有云存储。
上面的教程有任何问题请在下方给我留言,关于 Syncthing 的小技巧也可以给我留言。
微信扫描二维码关注我们
如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。
文章评论
syncthing -gui-address="0.0.0.0:88" -logfile="/var/log/syncthing.log" -home="/mnt/sda1/syncthing" -no-browser >/dev/null &
执行的时候出错,/usr/bin/syncthing: line1 : syntax error: unexpected”(“
这是什么原因造成的?完全按照文章一步一步执行下来的。
openwrt 18.06.2,wndr4700
@我的药材 你的 /usr/bin/syncthing 文件可能有问题
syncthing -gui-address="0.0.0.0:88" -logfile="/var/log/syncthing.log" -home="/mnt/sda5/syncthing" -no-browser >/dev/null &
执行的时候出错,这是为啥呀?sda5是后来挂载的分区。
@hqg2500 出错信息是啥
提示不能用root运行,请问怎么操作啊
@mjy 可以的,哪个只是警告,不是必须条件。
对啊,没有仅接受,有点不足,要是有这个功能就完美了
6666666~~~~又可以学着回去玩了