OpenWrt安装Lucky插件实现反向代理+Https外网访问

Lucky大吉 插件集成了很多使用的功能,比如:端口转发、反向代理、网络唤醒,动态域名解析、Stun内网穿透等等,妥妥的软路由神器。本文简单介绍 OpenWrt 系统中 Lucky 插件的安装、设置、使用教程。

OpenWrt 安装 Lucky

Lucky 项目地址

项目名称 版本号(Latest) 更新日期 官网 GitHub地址
Lucky
官网 GitHub

安装 Lucky 大吉插件

iStoreOS固件:点击 “iStore” > 点击 “全部软件” > 找到 “Lucky” ,点击安装;

OpenWrt固件

  1. GitHub 下载CPU架构相应 Lucky核心IPK包、luci-app-lucky_XXX_all.ipk、luci-i18n-lucky-zh-cn_XXX_all.ipk
  2. 进入 “系统>” > “软件包” > “上传软件包” ,依次安装 核心IPK包 luci-app-lucky_XXX_all.ipk luci-i18n-lucky-zh-cn_XXX_all.ipk

安装完成后,在 “服务” > 找到“Lucky” > Lucky运行状态 点击 启动,

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

在浏览器地址栏中输入IP+16601,进入Lucky管理后台,首次登录按照提示更改用户名及密码。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

Lucky 使用设置

Lucky 设置DDNS(动态域名解析)

在左侧找到 “动态域名” 选项卡,并点击 “添加任务”。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

任务名称:自定义,操作模式:简易模式,DNS服务商:选择自己域名的服务商(我这里是Cloudflare)

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET
获取 Cloudflare Token 教程

1、登录cloudflare,点击 “你的域名”在概述内下拉右下方,点击“获取您的 API 令牌

OpenWrt 安装 DDNS-GO 实现公网 IPv6 动态域名解析 - 科学上网 IYIO.NET

2、在 API令牌 这里点击“创建令牌

OpenWrt 安装 DDNS-GO 实现公网 IPv6 动态域名解析 - 科学上网 IYIO.NET

3、API 令牌模板选择 “编辑区域DNS

OpenWrt 安装 DDNS-GO 实现公网 IPv6 动态域名解析 - 科学上网 IYIO.NET

4、区域资源部分,选择我们托管的域名。

OpenWrt 安装 DDNS-GO 实现公网 IPv6 动态域名解析 - 科学上网 IYIO.NET

剩下的一路下一步即可。创建完成,记得保存对应的令牌密钥。

OpenWrt 安装 DDNS-GO 实现公网 IPv6 动态域名解析 - 科学上网 IYIO.NET

注意:令牌秘钥只出现一次,记得复制出来保存好

启用 {ipv6Addr} ,获取公网IP方式 “通过接口获取(推荐)” ,点击“添加同步记录”,设置完成后点击保存。

记录名这里,我添加了一个主域名 iyio.net 另一个 *.iyio.net 为泛域名解析,即*号可以代表任何字符。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

稍等片刻,看到同步结果为“同步成功”或“本地记录未变化”,就说明DDNS设置成功了。这里设置的DDNS其实和使用其他单独的DDNS应用(比如DDNS-GO)效果是一样的。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

申请SSL证书

接下来我们需要为自己的域名申请SSL证书。转到“SSL/TLS证书”选项卡,并点击“添加证书”。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

备注随便填,添加方式选择ACME,证书颁发机构选择Let's Encrypt,DNS服务商选择自己的服务商,像我托管在cloudflare,我就选它,再把令牌填进去,域名列表填泛解析域名*.iyio.net(记得换成自己的域名),其他的都默认就行。

如果你有ipv4公网,使用ipv4通道申请证书和DNS查询的时候把强制ipv4打钩

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

证书申请需要稍等一段时间,大概几分钟。成功后就会出现ACME信息,颁发时间和道到期时间。每张免费SSL证书的有效期为三个月,但Lucky在证书到期日会自动续签,不需要人工干预。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

设置反向代理及HTTPS访问

在左边菜单栏选择“Web服务”菜单,点击“添加Web规则”。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

添加web服务规则:

规则基本设置:添加web服务规则的时候,名称可以随意写,操作模式选简易模式,监听类型我因为是ipv6,所以选的是tcp6,监听端口默认是16666(大家也可以换成自己喜欢的,只要没被占用就行,后期访问就是用域名和这个端口),防火墙要开启,TLS也得开启(因为https访问必须开启这个)。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

添加子规则:

接着添加子规则,这个所谓的“子规则”,就是你从外网访问的某项服务,比如Alist,或者OpenWrt管理页面。名称还是随便写,规则开关开启。Web服务类型选择“反向代理”。前端域名/地址写自己需要的前缀二级域名,后端地址写内网IP和项目端口就行。

比如我这个子规则是分配给Alist页面的,那我就写alist.iyio.net,前缀可以按照自己的喜好编写。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

如果还有其他服务需要外网访问的话,那么还是按照上面的方法,添加新的Web服务子规则,需要多少服务,开几条子规则即可,但是注意二级域名前缀不要冲突。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

添加子规则:

如果不设置重定向,有些浏览器只输入网址,不输入前面的https,在某些浏览器中会自动被识别为http,造成无法访问,我们需要在仅输入域名时让浏览器也能够自动跳转到https

回到Lucky,在Web服务中添加一条全新的Web服务规则(注意不是子规则)。名称随便,操作模式选定制模式,监听端口和前面的反代端口保持一致,TLS一定要禁用!然后点击“默认子规则”

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

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

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

这样一来,在外网访问时我们只需要输入xxx.iyio.net:16666 (端口根据自己设置修改),浏览器就会自动跳转到https协议,非常方便。

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

端口转发:

如果你是在NAS或者其他内网的服务器上部署的Lucky,还需要在路由器把反向代理的端口通过路由器映射出去,才能够正常从外网访问。就只需要映射一个端口就行,像我这里就是16666,不用把每个服务单独的内网端口再映射出去,注意内网端口和外网端口号要保持一致。我这里以iKuai路由器为例:

OpenWrt中Lucky插件的安装设置与使用教程 - 科学上网 IYIO.NET

到此为止,我们就可以从外网使用反向代理+HTTPS方式访问家里的NAS服务器了,这已经是目前最完美的方式。不过有些小伙伴可能还会问,为什么不把最后的反代端口号也去掉,直接输入二级域名访问,岂不是更加优雅?

实际上,HTTPS协议默认的端口为443。当我们输入https://xxx.xx.xx时,就等同于访问https://xxx.xx.xx:443,只不过由于通用标准的缘故,443端口在输入时可以省略。

遗憾的是,目前绝大多数家庭宽带80和443端口都是被运营商封闭的,因此只能退而求其次,选择其他端口使用。

lucky实现动态DDNS域名解析 + https安全访问教程,使用Lucky轻松实现反向代理+Https外网访问家庭NAS