前言
好久之前的时候分享过一篇公网IP使用frp+npm实现域名访问家中nas服务文章,然后评论区有人说使用lucky、zeronews、cloudflare zero trust、wireguard之类的,然后我都去尝试了一下碰到一些问题,因为家用宽带及时有公网IP,443和80端口基本都是被封了的,所以在使用https时不能走正常的443端口外网访问就必须带上端口。我本身的需求其实是使用不同域名不加端口访问不同的服务,所以其实除了在一台服务器上用frp➕npm好像没有好的办法,网上也查了很多,AI也问了不少都没有找到更好的解决方案了。
lucky:lucky能够实现【域名:端口】访问,支持同域名不同端口访问不同服务;也支持不同域名同端口访问;
zeronews:zeronews的话属于第三方穿透服务,免费的有带宽限制,付费的话其实也没有太大的必要;
cloudflare:cloudflare的话虽然是大善人,但是国内访问其实不算快,即便优选ip了有时候也不是很稳定会掉;
wireguard:wireguard属于点对点,类似于zerotier没有办法实现所有人任何地点访问;
因为之前群晖里面有个功能是反向代理,再加上我的公网IP,我只需要在群晖中设置好DDNS和ssl证书,加一条反向代理配置,打开路由器防火墙对应端口就可以实现【https://域名:端口】访问了,但是后来因为换了极空间和飞牛Nas才发现都没有这个功能了,本人对比表示很后悔换我那台使用了好几年的DS218+。
所以现在如果要实现之前和群晖一样的功能,就不得不使用lucky进行代理了。
Lucky安装与配置
安装Lucky
我是在openwrt上安装的lucky,所有的代理配置相关都走路由器,这样nas上只管启动相关服务就可以,同时也能够代理路由器上的一些服务。
1、下载Lucky安装包:
在官网下载 https://release.66666.host,下载你对应版本的主包;

2、下载openwrt需要的安装包
在github下载安装包:https://github.com/gdy666/luci-app-lucky/releases,github上的主安装包目前版本在2.19.5比官网的那个稍微慢一点,但是是路由器专用的所以需要根据自己的路由器架构下载对应的架构包

比如我的斐讯K3用的armv5的下载这个就可以

3、上传对应安装包并安装
打开openwrt-系统-文件传输,上传下载好的三个ipk安装包,然后依次安装armv5.ipk、luci-app-lucky.ipk、luci-i18n-lucky-zh-cn.ipk

安装完成以后在服务中就能看到了,我们打开对应的16601端口就能访问lucky了。


配置Lucky
1、更新最新版本Lucky
打开以后因为安装的是我们在github上下载的包,版本应该是2.19.4,这里上传新版本选择我们上面下载的那个2.27.2的那个压缩包,上传后会自动安装并重启,等待lucky重启完成后就是最新版本了。

2、申请ssl证书
切换到SSL/TLS证书菜单,点添加证书 按钮,选择acme方式,然后选择证书颁发机构,以及验证方式

支持挺多方式的

因为我的域名是阿里云的,所以这里选择阿里云,填入相关账号和密钥,证书支持通配域名,其他保持默认就可以,等待自动申请完成。

申请完成后就是这样的了

3、动态域名解析配置
目前可以安装openwrt的路由器、nas基本上都是支持DDNS的,Lucky里面配置了的话,nas和路由器本身就不需要再配置了。
点添加任务 添加ddns,同样我的是里云的,托管服务商就选择阿里云,填入相关的AccessKey ID和AccessKey Secret,其他保持默认

往下拉添加同步记录,我统一使用了nas开头的域名,所以这里记录名就是我的域名,打开同步开关,选择记录类型是A记录,也就是IPv4,如果你有IPv6没有v4这里就选择ipv6,当然ipv6需要你宽带本身也支持,同时访问是也需要你网络支持,现在一般的手机网络都支持。

等待解析完成即可在阿里云域名控制台看到已经解析成功了,我这里的话为了直连群晖也设置了ipv6。

4、web服务代理
不同域名同端口访问不同服务配置
添加web服务规则:监听8090端口访问我nas上的博客

添加子规则:设置规则名称,前端地址就填你的域名;后端地址填你的内网服务地址,打开万事大吉

添加完成后,访
https://nas.wangboweb.site:8090就能正常访问到了;
如果你要继续添加一条是
https://docker.wangboweb.site:8090访问nas中的docker服务面板,则需要动态域名中新增一条域名记录相当于要再阿里云新增一条域名解析,同时在当前的这条web服务规则下新增一条子规则
子规则的配置

同域名不同端口访问不同服务设置
同域名不同端口的话就更简单了,只需有一条解析记录,然后添加多个Web服务规则,每个web服务规则下保持有一条的子规则就可以了,多个服务添加多个Web服务规则代理多个不同端口即可。

这样的话Lucky就配置好了,接下来需要将对应的防火墙打开即可。
Openwrt配置
我们主要打开8090端口,在防火墙中新加一条规则,外部端口8090就是你在lucky上配置的要访问的端口,内部IP地址选择你路由器的地址,因为我的lucky是在路由器安装的,如果你的lucky是安装在nas上的这选择nas的地址,端口选择8090端口

填写完成后保存即可,虽然博客的服务是在nas上的8090端口,这里选择路由器的ip而不是选择nas的ip就是为了让流量走到lucky上,选择路由器的IP加上8090的端口就相当于群晖上那个反向代理的功能。
配置完成后直接访问即可,后续如果有新的服务则在lucky上正常添加、打开对应的防火墙端口即可。
总结
通过以上配置,就可以实现不同域名同端口访问家里的服务,也可以实现同域名不通端口访问不同服务,但是如果想用域名不加端口的话还是得vps+frp➕npm。
openwrt+Lucky+公网IP访问内网Nas服务
https://blog.wangboweb.site/archives/1777444618300
Comments