引言

在上一篇我提到使用nginx-proxy-manager来配置反向代理,然后介绍了一下nginx-proxy-manager的简单配置。但其实在使用nginx-proxy-manager之前,我最开始用的是lucky,也很好用,有些功能特别优秀。如果你正在寻找一款简单易用的工具来快速搭建起你的家庭NAS公网访问方案,比如说飞牛NAS,那么Lucky是一个很不错的选择。

什么是Lucky?

Lucky是一款由国内开发者创建的软硬路由公网神器,它不仅提供了强大的反向代理功能,还整合了动态域名解析(DDNS)和SSL证书自动申请及更新等特性。Lucky的核心程序采用Golang编写,确保了高效性和跨平台兼容性;其前端界面基于Vue3.2开发,提供了直观易用的操作体验。

为什么选择Lucky?

  • 安全性:利用HTTPS协议保护数据传输。

  • 便捷性:一站式解决DDNS设置、SSL证书获取等问题。

  • 可维护性:容器化部署方式易于管理和升级。

和nginx-proxy-manager对比

Lucky除了基本的反向代理功能外,Lucky还具有网络存储模块,可以将阿里云盘等服务挂载到内部的WebDAV、FTP、FileBrowser和Web服务中,这为用户提供了一种便捷的数据存储和访问方式。而且还自带认证错误封IP等措施,非常的安全。

如何安装Lucky?

环境准备

  • 需要一台具有公网IP的路由器或者NAS设备。

  • 安装Docker环境。

  • 最好能有域名

飞牛应用中心安装

飞牛应用中心自带的应用,可以很方便的安装,这里就不多说了。

​​

Docker Compose部署

    services:
      lucky:
        image: gdy666/lucky
        container_name: lucky
        volumes:
          - 容器外持久化路径:/goodluck
        network_mode: host
        restart: always

详细可以参考:https://lucky666.cn/docs/install#docker%E9%95%9C%E5%83%8F

执行上述docker-compose命令后,即可完成Lucky的基础安装。

安装完成之后的重要的事情

修改默认的账号密码

默认登陆地址 : http://{IP地址}:16601
默认账号:666
默认密码:666

登录之后,首先还是尽量把密码更换成更加安全的密码,这里可以用vaultwarden来生成管理密码(最近搭了一个,感觉还不错~)

开启2FA验证,这里可以下载一个 Google的 Authenticator应用来。(如果不熟悉的话可以先忽略)

设置DDNS和SSL证书

  • 在Lucky的Web界面中,按照提示添加您的域名信息并选择相应的DNS服务商进行验证。

  • 选择Let's Encrypt作为CA颁发机构,自动获取并定期更新SSL证书。

配置DDNS毕竟简单,家里NAS的话最好是路由器拨号的模式。(当然,这个对于只需要反向代理功能来说可以不用设置)

ssl证书这一块和nginx-proxy-manager差不多,不过我选择的是zerossl证书颁发机构。可以换成Let's Encrypt。

添加完成之后,列表里面可以看到当前证书的时间范围,以及下载证书等选项。

配置反向代理规则(添加web服务)

这里的最佳实践是添加一个web服务,然后添加N条子规则,每条子规则用2级域名来区别,这样不用记住N个端口,也不用在服务器的安全组开放多个端口,而是记对应的二级域名即可。这个端口号可以填你喜欢的(注意:所谓隐藏端口只是http使用了80监听端口,https使用了443监听端口,除非你明确知道你的运营商没有禁用80和433端口,否则不建议使用这两个端口。

这里假定你填写的端口也是 16666

添加子规则时的前端域名是不包含 http(s):// 的,以我的域名为例,我可以写 aaa.lllyyb.com(记得在添加对应的域名解析),访问的时候只需要访问 aaa.lllyyb.com:16666 即可。

我比较喜欢这个安全设置的规则,可以设置多少次登录失败就封IP。以及单IP 多少次404就封IP。

image-20241130163734-yd7mil9.png

安全入口

image-20241130163950-tgav3wo.png

在设置这里可以设定一个安全入口,访问lucky后台会更加安全。原来默认登陆地址 : http://{IP地址}:16601,加上安全入口之后,登录地址变成:http://{IP地址}:16601/xxx

重定向

刚才加了web服务配置,默认是https的,如果直接在浏览器输入http的话,是访问不了的,这时候我们需要在额外添加一个重定向的服务。

新增一个web服务规则,监听端口号和上面的web服务保持一致,修改默认的规则,修改服务类型为 重定向。然后默认的目标地址修改为 https://{host}:{port} 。现在打开浏览器直接输入http的地址会自动跳转到https地址。

到这里,你的服务配置应该和我的差不多,恭喜你已经基本完成了。

更安全的ip白名单

在ip过滤这里可以设置自动记录ip白名单,简单来说就是设置了一个类似于安全入口的路径,你访问这个路径之后,系统会自动把当前ip设置成白名单,这样可以在web服务的认证可以设置仅白名单访问,进一步增加安全性。

配置webdav

这里我用的是默认配置,端口号是18800.

添加用户

注意:因为我这个是docker挂载目录xxx到容器的goodluck,这里webdav的本地路径写的是/goodluck/a ,需要在对应路径xxx手动创建a文件夹,lucky是不会自动创建的。

添加之后,可以打开对应的 ip:18800,可以看到正常的webdav界面。

这里有个需要注意的点,因为我是搭载飞牛NAS上的,这个指定路径的配置和alist的webdav配置不一样,直接写“/”就好。alist的话是需要配置/dav/xxx。alist的相关参考:

https://www.lllyyb.com/archives/AAH92Eyr

到这我们今天的文章基本上已经完结了,其实还有很多好玩的特性没有说。可以自己挖掘一下~有什么问题,也欢迎留言互动。

推广

现在腾讯云年底促销,最便宜的轻量服务器只要38块钱,3M带宽(换算是384k/s),在家里没有公网ip的情况下,搞一个云服务器用frp开个内网穿透岂不美哉~买它!买买买!

https://curl.qcloud.com/p0vUjrXW

相关参考:

https://lucky666.cn/docs/introhttps://www.lllyyb.com/archives/FsYrHat5https://www.lllyyb.com/archives/patv4SDU