本文为个人备份教程,不喜勿喷。如有漏缺,欢迎各位交流。

  • 大家好,我是阿狸鹿丫,一个业余爱瞎折腾的数码软件爱好者,小白学习者。
  • 对于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/

2024-05-25-pkjpuwik.png

群辉Docker部署Lucky

1.新建Lucky文件夹

  • 我们在群晖文件管理系统Docker目录下新建一个lucky文件夹
  • 用于存放lucky相关配置文件

目录位置:docker/lucky

2024-05-24-yllslosp.png

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

2024-05-24-atmqkvvm.png

3.创建成功进入Lucky主页

  • Lucky默认端口号:16601
  • 直接在浏览器中输入 IP+端口 就能进入Lucky管理后台:

Lucky访问:群晖IP:16601

2024-05-24-rxenfemj.png

Lucky默认账号密码
账号:666
密码:666

  • 填入后登录,并点击左侧的“设置”选项卡,重新设置一套新的管理账号和密码,确保安全:

2024-05-24-dmrxjpvx.png

Lucky相关设置

1.设置动态域名

  • 要部署反向代理,首先需要一个域名,关于如何申请域名可以通过阿里云或者腾讯云申请
  • 如果需要便宜又长久的域名可以参考我这篇文章:《超低价域名 十年仅需要 $6.7》
  • 有了域名,在Lucky的“动态域名”一栏点击“添加任务”添加DDNS任务

2024-05-24-xpdohdkg.png

2.添加DDNS任务

  • Lucky的DDNS自带多个服务商的模板,选择对应的DNS服务商填好AccessKey或Token
  • 公网IP类型这里我的是IPv6 所以我这选择IPv6

如果你们的事ipv4的话直接选择ipv4就可以了

  • 这里假设域名是aliluya.com,域名列表填写aliluya.com和子域名*.aliluya.com

2024-05-24-olqcwyyh.png

创建 AccessKey

点击窗口 创建 AccessKey 链接进入阿里云获取AccessKey

2024-05-24-jcmnnpwz.png

2024-05-24-zpnpyqxr.png

DDNS设置成功

  • 稍等片刻,像下图这样便是成功了!
  • 看到同步结果为 更新成功,就说明DDNS设置成功了。

多说一句,这里设置的DDNS其实和使用其他单独的DDNS应用(比如DDNS-GO)效果是一样的。

2024-05-24-rwohfmne.png

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通道

2024-05-24-rxlvsmno.png

  • 其它内容无需做额外改动,最终如下图所示,点击右下角【添加】

2024-05-24-ozmgiabk.png

  • 稍等一会就会显示证书,显示绑定域名、颁发时间和到期时间就表示申请SSL成功

2024-05-24-nlwmyyhw.png

  • 申请日志可以看到申请成功字样

2024-05-24-nsnlijcm.png

注:这证书到期后Lucky会自动续签,无需我们手动操作,超级省心。

4.设置反向代理

添加Web服务规则

  • 接下来就是最后一步,设置反向代理!
  • 在Lucky的左侧菜单,点击【Web服务】点击【添加Web服务规则】弹出下图窗口

规则名称随便填
监听类型根据宽带情况选择,我的是IPv6这是我就选择IPv6 你的是IPv4就选IPv4
监听端口,填写可用端口,标准端口443国内基本是关闭状态,我改成了8001
特别注意:我们要实现https访问,TLS是必须的,必须开启!否则无法使用HTTPS。

2024-05-24-kdihhuhm.png

添加子规则

  • 在服务规则下点击 添加子规则

2024-05-24-rxtkexar.png

  • 模式选择 简易模式
  • 类型选择 反向代理
  • 前端域名 设置一个好记的二级域名,我用来访问NSA,就可以填写成:nas.aliluya.com

子域名前缀你喜欢设置什么都可以,因为之前我们泛解析过了

如果是访问Alist的,我们可以设置成:alist.aliluya.com;博客:blog.aliluya.com)

  • 后端地址填写NAS的地址和端口,例如:192.168.1.8:5001

2024-05-24-gpqtsqbh.png

  • 基本认证 BasicAuth 这个看情况而定开启或者关闭,这个和NginxWebUI那个加密功能是一样的,就是我们外网访问的时候需要先输入账号和密码才能打开,相当于在安全上又多了一层屏障,看个人需求吧!
  • 这我设置的是访问NAS主页,所以我想更加安全一点,所以我开启了。你们按需求有需要的可以开启。

2024-05-25-ffbzqzds.png

  • 如果还有其他需要外网访问的服务,按照上述方法添加新的Web服务子规则。需要多少服务就开启相应数量的子规则,但确保二级域名前缀不会重复。
  • 到这一步,大致的lucky设置已经完成了!把8001端口在路由做一下映射基本就能访问了!

路由放行端口

  • 反代设置完成之后,最后一步还需要去路由器把8001端口做一下映射。
  • 正向代理是一个服务转发一个端口,反向代理是只需要映射一个反代端口就可以了。

2024-05-25-ssmuuchu.png

设置成功

  • 浏览器输入 我们设置的 https://nas.aliluya.com:8001 就可以检验我们的成果!
  • 进入之前 弹出这个登录验证 就是我们刚刚添加子规则开启的 基本验证
  • 需要账号密码正确之后才能进入到我们群晖登录的后台!

2024-05-25-gceyelzx.png

输入用户名密码正确登录后,就进入到我们群晖后台了!

并且已经是HTTPS外网访问,前面也正常显示安全小锁。

2024-05-25-uywxsvxk.png

5.重定向HTTPS

  • 这里还有一个小问题,就是在输入网址时需要包含"https://",否则在某些浏览器中可能会被识别为HTTP,导致无法访问。为了解决这个问题,我们需要让浏览器在仅输入域名时也能自动跳转到HTTPS。
  • 接下来我们回到Lucky后台,进入【Web服务】,添加一条全新的【Web服务规则】(注意不是子规则)
  • 名称随意,这里我设置成 【重定向HTTPS】,操作模式选【定制模式】,监听类型根据需求选,也可以全选。监听端口和前面的反代端口保持一致即:8001,TLS禁用TLS禁用TLS禁用

2024-05-25-dohofvgk.png

  • 然后点击【默认规则】打开默认规则界面后,Web服务类型选择【重定向】
  • 然后在默认目标地址中输入:https://{host}:{port}
  • 并打开【万事大吉】开关(自动添加请求头),其他所有选项全部保持默认,点击添加按钮完成设置。

2024-05-25-icagmqgs.png

  • 这样一来,在外网访问时我们只需要输入域名:端口号,浏览器就会自动跳转到https协议,非常方便。
  • 断开WiFi,用手机移动网络测试,已经大功告成!此次折腾成功!

2024-05-25-ltdiluuj.png

2024-05-25-psaekxqo.png

  • 到此为止,我们已经可以通过外网使用【反向代理】和【HTTPS】方式访问家中的NAS服务器。
  • 本次分享就到此结束!希望能帮助到有需要的人!谢谢!我是阿狸鹿丫,一个业余爱瞎折腾的数码软件爱好者,小白学习者。

the-end.webp