软路由探索之旅 篇六:反向代理神器Lucky
笔者之前用的是白裙自带的反代,后来经过同事指点,学习并上手了 npm(nginx-proxy-manager),支持自动续签证书和 web 服务反向代理,本来一切都很理想,然而在一次升级 npm 之后,无法进入系统,配置的二三十个反代全部 gg,太痛苦了,虽然我做了备份,但依旧无法挽救,于是想找个替代品的想法就一直搁在心里。
前阵子刷张大妈看到 lucky 教程:
以前有听闻过这款神器,但一直没有下手过,这次借着大佬完整的教程,决定一步到位,说干就干。目前已经完全替换,关停了 npm,部署教程就不细说,可以自行查阅大佬教程,我来说说自己在部署中的一些心得吧。
部署完记得修改密码!!!
一、替代的功能
我使用 lucky 主要替代了 npm 的 ssl 证书以及 web 服务反代配置,同时使用 lucky 做 ddns 和端口转发,最贴心的还是它的一键备份很方便,同时我还发现备份的目录其实就在 /etc/config/lucky.daji 下,于是我在路由器上增加了定时备份脚本,万一平台崩溃,大不了重新部署并一键导入备份,还是非常便捷高效的。
二、部署方式
一开始我认为 lucky 这样的软件,应该部署在最稳定的设备上,例如家里的白裙,因为白裙基本不会崩盘,且几乎不关机或重启,是一个比较理想的环境,但后来发现直接在 openwrt 上部署更加高效,能直接读写防火墙,这样我的端口转发都可以不用在 openwrt 上配置,全部都可以转移到 lucky,配合一键备份 / 恢复,十分理想。
家里主路由用的 istoreos,商店里能搜到 lucky 应用,但安装后发现无法运行,后来采用 ipk 的安装方式,完美启动,建议在 openwrt 上部署还是采用这种方式避免不必要的麻烦。
Lucky 官方 IPk 包源码地址 : https://github.com/gdy666/luci-app-lucky
其他内容参考官方教程:安装运行 | Lucky,安装时还请仔细阅读官方教程的警告内容。
三、web 服务反向代理
配置反代很简单,这里不得不提一点,lucky 无法像 npm 或者手搓的 ng 那样实现自定义的配置内容,官方在定制模式下仅给出了几个可配置项,也许不一定能满足你的需求,如下图:
但是官方提供一个按钮(万事大吉),说是自动配置了绝大多数的必要参数,而我实际配置后也发现似乎确实不用再去自定义一些配置,但如果是需要更加自由的自定义,那大抵是无法满足了。
按照同事的话说,作者的意图非常明显,就是要足够傻瓜化。那就将傻瓜进行到底吧。
四、其他功能
除了上述我用到比较多的几个功能外,还有网络存储、网络唤醒,计划任务,内网穿透等非常实用的功能,按需使用吧。
最后,一定记得配置完手动备份一次,以防万一,如果有能力实现自动备份那是最好的。
ps:下面简单说说 2 个自动备份的脚本关键字
一、定时备份
可以使用下面的脚本打包配置文件,有需要的时候,提取 lkcf 文件压缩成 zip 格式,进入 lucky 还原即可
tar -czvf ${bakDir}/${DATE}/lucky_${DATE}.tar.gz ${luckyDir}/*.lkcf
二、文件变动实时备份。
该方案是从同事那儿学来的,能监控文件目录里的文件发生变动时,自动执行备份,需要将脚本文件加入到开机自启动任务或定时任务里执行。
1、这个方法需要先在 openwrt 安装监控服务
opkg install inotifywait
2、然后设置好备份与目标文件夹,使用脚本进行监控执行
while
/usr/bin/inotifywait -r "$watch_dir" -e modify -e move -e create -e delete --timefmt '%Y/%m/%d %H:%M:%S' --format '%T %w %f %e' -o "$log_file"
#/usr/bin/inotifywait -r "$watch_dir" --exclude "$exdir" -e modify -e move -e create -e delete --timefmt '%d/%m/%y %H:%M' --format '%T %w %f %e' -o "$log_file"
do
cd $watch_dir
current_time=$(date +"%Y%m%d%H%M%S")
tar -czvf $bak_dir/lucky_$current_time.tgz ./*.lkcf >>${log_file}
echo "========== 结束Lucky备份任务:$(date +"%Y-%m-%d %H:%M:%S") ==========" >> ${log_file}
done