群晖 Nas 部署 Lucky 反向代理 实现远程访问
本文为个人备份教程,不喜勿喷。如有漏缺,欢迎各位交流。
- 大家好,我是阿狸鹿丫,一个业余爱瞎折腾的数码软件爱好者,小白学习者。
- 对于NAS用户来说,内网访问是必不可少的功能,但要真正将NAS打造成个人专属家庭服务器,则需要实现公网访问。因此,本文将探讨如何使用Lucky大吉反向代理实现安全、高效和便捷的家庭NAS公网访问。
我的配置:
1.群晖版本为 DSM 7.2.1-69057 Update 5
2.Lucky 版本:2.9.0 linux(x86_64) NAS拉取的最新镜像
3.本人使用公网IPV6,无公网IPV4。
如果自己有云服务器的也可以看一下我这个教程使用FRP穿透实现外网访问。
《群晖NAS(无公网IP)通过FRP内网穿透到云服务器》
4.必要前提为内网设备可获取IPV6地址。
5.域名为阿里云DNS域名
Lucky简介:
Lucky最初是作为一个小工具,由开发者为自己的个人使用而开发,用于替代socat,在小米路由AX6000官方系统上实现公网IPv6转内网IPv4的功能。Lucky的设计始终致力于让更多的Linux嵌入式设备运行,以实现或集成个人用户常用功能,降低用户的硬件和软件操作学习成本,同时引导使用者注意网络安全。随着版本更新和网友反馈,Lucky不断迭代改进,拥有更多功能和更好的性能,成为用户值得信赖的工具。
Lucky 的核心程序完全采用 Golang 实现,具有高效、稳定、跨平台等优点。其后台前端则采用 Vue3.2 技术进行开发,具有良好的用户体验和响应速度。此外,Lucky 的管理后台采用前后端分离的架构,第三方开发者也可以自由使用OpenToken轻松调用Lucky的各种功能接口。
官网地址:https://lucky666.cn/
群辉Docker部署Lucky
1.新建Lucky文件夹
- 我们在群晖文件管理系统Docker目录下新建一个lucky文件夹
- 用于存放lucky相关配置文件
目录位置:docker/lucky
2.Docker创建Lucky项目
-
打开群辉
Container Manager
点击项目 -
点击“新增”项目
-
项目名称:lucky
-
路径:docker/lucky
-
文件选择新建yaml创建
-
输入一下代码拉取镜像:
重点:网络选择host,不可桥接
name: <your project name> services: lucky: container_name: lucky restart: always network_mode: host volumes: - .:/goodluck image: gdy666/lucky
-
点击下一步创建项目
镜像地址:gdy666/lucky
3.创建成功进入Lucky主页
- Lucky默认端口号:16601
- 直接在浏览器中输入
IP+端口
就能进入Lucky管理后台:
Lucky访问:群晖IP:16601
Lucky默认账号密码
账号:666
密码:666
- 填入后登录,并点击左侧的“设置”选项卡,重新设置一套新的管理账号和密码,确保安全:
Lucky相关设置
1.设置动态域名
- 要部署反向代理,首先需要一个域名,关于如何申请域名可以通过阿里云或者腾讯云申请
- 如果需要便宜又长久的域名可以参考我这篇文章:《超低价域名 十年仅需要 $6.7》
- 有了域名,在Lucky的“动态域名”一栏点击“添加任务”添加DDNS任务
2.添加DDNS任务
- Lucky的DDNS自带多个服务商的模板,选择对应的DNS服务商填好AccessKey或Token
- 公网IP类型这里我的是IPv6 所以我这选择IPv6
如果你们的事ipv4的话直接选择ipv4就可以了
- 这里假设域名是aliluya.com,域名列表填写aliluya.com和子域名*.aliluya.com
创建 AccessKey
点击窗口 创建 AccessKey
链接进入阿里云获取AccessKey
DDNS设置成功
- 稍等片刻,像下图这样便是成功了!
- 看到同步结果为
更新成功
,就说明DDNS设置成功了。
多说一句,这里设置的DDNS其实和使用其他单独的DDNS应用(比如DDNS-GO)效果是一样的。
3.部署SSL证书
有了域名还需要SSL证书才能使用HTTPS协议,如果你使用HTTP协议(安全性低,不推荐),可以跳过
还有就是 一次性不要申请太多 推荐一个证书设置一个域名 我设置一下3.4个域名 结果老是失败。换成一个域名马上成功!
但是这个多域名也有成功的案例,不知道是不是我个人问题,哈哈哈。所以大家看情况而定。
- 接下来我们需要为自己的域名申请SSL证书。
- 转到“安全管理”选项卡,并点击“添加证书”
- 证书的添加方式选择【
ACEM
】即可 - 域名颁发机构为
Let's Encrypt
,SSL证书有效期三个月,但是Lucky支持自动续签,我们无需理会 - 验证方式、密钥、域名与添加DDNS时一样,选择对应的DNS服务商填好AccessKey或Token
- 这里我的是 IPv6 所以我这更多设置直勾选
CNAME支持
如果你的是 IPv4 更多选项就要把下面这两项勾选上
“DNS查询强制IPv4”和“DNS查询仅使用TCP通道”
- 其它内容无需做额外改动,最终如下图所示,点击右下角【添加】
- 稍等一会就会显示证书,显示绑定域名、颁发时间和到期时间就表示申请SSL成功
- 申请日志可以看到申请成功字样
注:这证书到期后Lucky会自动续签,无需我们手动操作,超级省心。
4.设置反向代理
添加Web服务规则
- 接下来就是最后一步,设置反向代理!
- 在Lucky的左侧菜单,点击【Web服务】点击【添加Web服务规则】弹出下图窗口
规则名称随便填
监听类型根据宽带情况选择,我的是IPv6这是我就选择IPv6 你的是IPv4就选IPv4
监听端口,填写可用端口,标准端口443国内基本是关闭状态,我改成了8001
特别注意:我们要实现https访问,TLS是必须的,必须开启!否则无法使用HTTPS。
添加子规则
- 在服务规则下点击
添加子规则
- 模式选择
简易模式
- 类型选择
反向代理
- 前端域名 设置一个好记的二级域名,我用来访问NSA,就可以填写成:nas.aliluya.com
子域名前缀你喜欢设置什么都可以,因为之前我们泛解析过了
如果是访问Alist的,我们可以设置成:alist.aliluya.com;博客:blog.aliluya.com)
- 后端地址填写NAS的地址和端口,例如:192.168.1.8:5001
基本认证
BasicAuth 这个看情况而定开启或者关闭,这个和NginxWebUI那个加密功能是一样的,就是我们外网访问的时候需要先输入账号和密码才能打开,相当于在安全上又多了一层屏障,看个人需求吧!- 这我设置的是访问NAS主页,所以我想更加安全一点,所以我开启了。你们按需求有需要的可以开启。
- 如果还有其他需要外网访问的服务,按照上述方法添加新的Web服务子规则。需要多少服务就开启相应数量的子规则,但确保二级域名前缀不会重复。
- 到这一步,大致的lucky设置已经完成了!把8001端口在路由做一下映射基本就能访问了!
路由放行端口
- 反代设置完成之后,最后一步还需要去路由器把8001端口做一下映射。
- 正向代理是一个服务转发一个端口,反向代理是只需要映射一个反代端口就可以了。
设置成功
- 浏览器输入 我们设置的 https://nas.aliluya.com:8001 就可以检验我们的成果!
- 进入之前 弹出这个登录验证 就是我们刚刚添加子规则开启的
基本验证
- 需要账号密码正确之后才能进入到我们群晖登录的后台!
输入用户名密码正确登录后,就进入到我们群晖后台了!
并且已经是HTTPS外网访问,前面也正常显示安全小锁。
5.重定向HTTPS
- 这里还有一个小问题,就是在输入网址时需要包含"https://",否则在某些浏览器中可能会被识别为HTTP,导致无法访问。为了解决这个问题,我们需要让浏览器在仅输入域名时也能自动跳转到HTTPS。
- 接下来我们回到Lucky后台,进入【Web服务】,添加一条全新的【Web服务规则】(注意不是子规则)
- 名称随意,这里我设置成 【重定向HTTPS】,操作模式选【定制模式】,监听类型根据需求选,也可以全选。监听端口和前面的反代端口保持一致即:8001,TLS禁用,TLS禁用,TLS禁用。
- 然后点击【默认规则】打开默认规则界面后,Web服务类型选择【重定向】
- 然后在默认目标地址中输入:
https://{host}:{port}
- 并打开【万事大吉】开关(自动添加请求头),其他所有选项全部保持默认,点击添加按钮完成设置。
- 这样一来,在外网访问时我们只需要输入域名:端口号,浏览器就会自动跳转到https协议,非常方便。
- 断开WiFi,用手机移动网络测试,已经大功告成!此次折腾成功!
- 到此为止,我们已经可以通过外网使用【反向代理】和【HTTPS】方式访问家中的NAS服务器。
- 本次分享就到此结束!希望能帮助到有需要的人!谢谢!我是阿狸鹿丫,一个业余爱瞎折腾的数码软件爱好者,小白学习者。
- 感谢你赐予我前进的力量