NAS / 技术 · 2024年11月26日 0

内网穿透(Lucky)

本文介绍一种通过Lucky来进行ipv6动态解析实现域名+端口访问家中NAS中的各项服务的方法,并尝试部署证书实现HTTPS访问。需要注意的是,请保证NAS拥有公网ipv6。

🧭Lucky官方介绍Lucky最初是作为一个小工具,由开发者为自己的个人使用而开发,用于替代socat,在小米路由AX6000官方系统上实现公网IPv6转内网IPv4的功能。Lucky的设计始终致力于让更多的Linux嵌入式设备运行,以实现或集成个人用户常用功能,降低用户的硬件和软件操作学习成本,同时引导使用者注意网络安全。随着版本更新和网友反馈,Lucky不断迭代改进,拥有更多功能和更好的性能,成为用户值得信赖的工具。Lucky 的核心程序完全采用 Golang 实现,具有高效、稳定、跨平台等优点。其后台前端则采用 Vue3.2 技术进行开发,具有良好的用户体验和响应速度。此外,Lucky 的管理后台采用前后端分离的架构,第三方开发者也可以自由使用OpenToken轻松调用Lucky的各种功能接口。🗻功能模块
目前已经实现/集成的主要功能模块有
端口转发
动态域名(DDNS)
Web服务
Stun内网穿透
网络唤醒
计划任务
ACME自动证书
网络存储

🏜️Lucky部署
本次依然使用docker,在飞牛上部署Lucky。
🛑拉取镜像
首先连接飞牛SSH(不会的看前面帖子哈),这里使用Xshell,输入sudo -i,接着输入密码进入root模式(输密码不显示字符,直接回车就好):
sudo -i复制代码username@XXX:/$ sudo -i
Password:
root@XXX:~#复制代码显示上面的代码就可以了,接着拉取镜像:
docker pull gdy666/lucky复制代码

🛩️docker部署
🛑路径创建
建议将docker项目的配置文件都放在飞牛自带的应用文件中,不过这个页面我们无法新建文件夹,所以进入管理员视角:

文件管理器中找到你设置的docker所在存储空间中的appshare文件夹,这个就是前面的应用文件,新建一个lucky文件夹,接着在lucky文件夹中新建一个luckyconf文件夹,文件树如下图所示:

🛑一键部署
使用SSH 命令一键部署即可,记得需要root权限#注意这里与官方命令不一样的是前面的本机路径,请根据自己的实际情况选择刚刚新建的luckyconf文件夹的真实地址,对这个不太了解的同学可以看下我的之前docker简介帖子哈 #docker run -d –name lucky –restart=always –net=host -v /vol1/@appshare/lucky/luckyconf:/goodluck gdy666/lucky复制代码显示如下界面表示已经部署成功了,访问127.0.0.2:16601(127.0.0.2替换为飞牛的ip地址)即可进入lucky的webui界面了。
root@xxx:~# docker run -d –name lucky –restart=always –net=host -v /vol1/@appshare/lucky/luckyconf:/goodluck gdy666/lucky
5e088d9018a5845165b1f95aed39437e8121b2733f8d540a096a32dbfeb5e1a5
root@xxx:~#复制代码默认账号密码账号:666密码:666登录后记得更改账号密码。

AccessKey获取
登录后先别着急,先要去获取域名解析的AccessKey,这里以阿里云为例,各大服务商大差不差:

DDNS任务添加
获取到AccessKey记得保存好,回到lucky,添加DDNS任务,填入对应托管服务商的AccessKey信息,选择ipv6类型,建议通过接口获取公网ip,域名的话这里建议使用泛域名,方便后期添加SSL证书。

添加任务后我们看两个地方来确认任务生效,一个是lucky的任务列表,成功的话应如下图所示,可以获取到公网ipv6地址了:

第二我们要去域名解析服务处查看,是否自动增加了一条泛域名的AAAA记录,记录值与lucky获取的公网ipv6一致:

SSL证书获取
使用lucky自带的证书申请模块:

申请成功后如下图所示:

Lucky配置反向代理

服务规则中需要注意的是我们只勾选tcp6就可以了,监听端口自行设置不存在冲突的端口,这个端口举个例子,你想用A.example.com:8888访问内网中的127.0.0.1:3002的Sunpanel服务,那么这里的监听端口就需要设置为8888;同时我们开启TLS,由于我们提前申请了泛域名解析,下图中别的都不用动,包括默认规则。

接着编辑子规则,选择反向代理,输入自己想要访问的二级域名,注意这里不要加端口,但是最后访问的时候需要以sunpanel.example.com:8888进行访问,这里的8888就是前面的监听端口,别的都不用动。

可以增加多个子规则,一次性解决所有服务

到这里已经可以使用了。

还没完呢,为了实现http自动跳转https,从而实现免输入https://,我们接着新增一条web服务规则,监听上面设置的8888端口,但是不要开启TLS:

默认规则中选择重定向,默认目标地址输入https://{host}:8888,别的都不要动,保存即可。

全部设置完成后页面如下图所示:

这样就彻底设置好了,你自己的域名+端口好访问网站就好。