本帖最后由 madrays 于 2024-10-14 00:34 编辑
之前介绍了非常好用的导航页SunPanel,可是大多数时候希望将SunPanel部署在家中的服务器或NAS中,现在家宽基本上没有公网ipv4,那么如何在外网访问家中部署的SunPanel服务就亟待解决了,本文介绍一种通过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模式(输密码不显示字符,直接回车就好):
- username@XXX:/$ sudo -i
- Password:
- root@XXX:~#
复制代码 显示上面的代码就可以了,接着拉取镜像:
🛩️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,别的都不要动,保存即可。
全部设置完成后页面如下图所示:
🛑万事大吉
这下子真的万事大吉了!
|