之前介绍了非常好用的导航页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部署
本次平台是黑群晖7.2,首先在群晖上部署Lucky。
拉取镜像
首先连接群晖SSH,这里使用Xshell,输入sudo -i
,接着输入密码进入root模式(输密码不显示字符,直接回车就好):
sudo -i
username@XXX:/$ sudo -i
Password:
root@XXX:~#
显示上面的代码就可以了,接着拉取镜像:
docker pull gdy666/lucky
现在镜像不太好拉,我等不及了,用香港服务器pull下来放网盘了,有需要的可以点这里lucky:latest,密码hh79。
下载好的镜像上传至群晖即可。
命令可以pull下来的话跳过这一部分即可。
docker部署
路径创建
镜像下载好后,别急着部署,使用官方命令会报目录不存在,所以我们先去群晖文件管理器中找到docker
文件夹,新建一个lucky
文件夹,接着在lucky
文件夹中新建一个luckyconf
文件夹,文件树如下图所示:
一键部署
使用SSH 命令一键部署即可,记得需要root权限
#注意这里与官方命令不一样的是前面的本机路径,请根据自己的实际情况选择docker文件夹所在的volume
docker run -d --name lucky --restart=always --net=host -v /volume1/docker/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 /volume1/docker/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
,别的都不要动,保存即可。
全部设置完成后页面如下图所示:
万事大吉
这下子真的万事大吉了!
评论区