万事大吉!使用Lucky+免费qzz.io域名+Cloudflare实现域名访问飞牛NAS多端口服务

大家在使用飞牛的Connect外网访问的时候,可能会遇到一个非常典型的问题:FN Connect 默认配置限制了直接访问 NAS 上除主服务外的其他端口服务(如 Jellyfin、Emby 等)。

这主要是因为 FN Connect 的访问机制集中在主域名上,未预留自定义端口的支持方式。FN Connect 默认提供的是 https://5ddd.com/xxxxxxhttps://[FN_ID].5ddd.com 这类格式的访问地址,它主要指向 NAS 的 Web 管理页面(如 443 端口),无法通过该地址直接附加端口号访问其他服务(如 :8096)。

不过,借助 Lucky,可以绕过这一限制,实现安全、便捷的外部访问。

什么是Lucky?

Lucky最初是作为一个开源小工具,由开发者为自己的个人使用而开发,用于替代socat,在小米路由AX6000官方系统上实现公网IPv6转内网IPv4的功能。随着版本更新和网友反馈,Lucky不断迭代改进,拥有更多实用的功能和更好的性能。Lucky目前已经实现/集成的主要功能模块有:

  • 端口转发
  • 动态域名(DDNS)
  • Web服务
  • Stun内网穿透
  • 网络唤醒
  • 计划任务
  • ACME自动证书
  • 网络存储

有了它,你可以实现DDNS动态域名(替代DDNSGO),反向代理及重定向,甚至部署静态网站,内网穿透,SSL证书自动化实现https访问等一系列玩NAS过程中必备的网络功能。对小白用户也非常友好,配置简洁,真的是强大又方便的NAS伴侣。

刚好最近免费qzz.io二级域名可以托管在Cloudflare上了

今天Jony就来测试一下用托管在Cloudflare上的qzz.io免费域名,加上飞牛的Lucky,配置反向代理,实现用域名访问不同端口服务。

如何申请免费qzz.io域名见文章:为了玩NAS,你真的打算申请一个免费域名吗?

如何托管到Cloudflare见文章:免费域名来一个?qzz.io可以托管到Cloudflare了!

这里提前说一下,因为飞牛默认已经占用了80和443端口,所以如果不改变飞牛系统配置,最终实现的结果,是使用不同子域名+单一固定端口的方式访问不同的服务。

不能完全免端口访问还是略有些不完美,但好在只需要带一个固定的端口号,不用记那么多的端口号。如果80和443端口没有被占用,用这个完全不需要带端口了,就很方便了。

下面是具体的操作步骤。


使用 Lucky 配置反向代理

1. 安装Lucky

飞牛应用商店有上架Lucky,所以安装也非常方便,找到Lucky,直接安装就行:

微信图片_20250713153752.png

2. 配置动态域名解析

需要先配置动态域名解析(DDNS ),使其指向你的公网 IP(IPv4/IPv6),这一步需要配合申请Cloudflare区域令牌,用于自动更新动态公网IP。

2.1 在Cloudflare中创建区域DNS令牌

此步可在点击添加动态域名时再做,也可提前打开Cloudflare申请好备用。

点击Cloudflare后台页面右上角用户图标,选【配置文件】点左侧【API令牌】栏。或在添加动态域名任务时点击创建令牌蓝色链接文字,跳转到Cloudflare创建令牌页面,点击创建令牌。

微信图片_20250713105305.png
选择使用【编辑区域DNS】模板。

微信图片_20250713105342.png
在【区域资源】处选择你托管的免费二级域名,然后点底部蓝色按钮继续。
微信图片_20250713105529.png

点击【创建令牌】
微信图片_20250713105609.png
记得复制保存好创建的令牌,因为该令牌只会显示一次,以后不会再显示了,忘记了得重新申请。

微信图片_20250713105745.png

2.2 检查添加自定义二级域名后缀

因为我们使用的是免费的二级域名,所以需要先进入Lucky的【动态域名】栏,点击【设置】,查看你申请的二级域名后缀是否在列表里,如果不在,需要自己添加以下,我这里申请的qzz.io后缀域名是最近才开放注册的,所以列表中没有,手动添加如下图:

微信图片_20250713104716.png

2.3 配置动态域名

点击【动态域名】栏目顶部的【添加任务】弹出配置窗口。配置信息如下:

  • 任务名称可自定义,也可不写随意。
  • 操作模式默认选简易模式;
  • 托管服务商选择Cloudflare;点蓝色文字跳转到Cloudflare创建区域DNS令牌,或在Token栏填入已经提前创建好的令牌。
  • 类型 选择 IPv4 或 IPv6(根据你的公网环境选择,有公网IPv4的首选IPv4,没有的用公网IPv6,不会设置公网IPv6的可以看我前面的文章:公网直连家庭NAS才是真Nice!家庭网络IPv6配置指南);
  • 域名列表 填写托管在Cloudflare上的免费二级域名和泛域名(如 xx.qzz.io*.xx.qzz.io)。

微信图片_20250713160137.png
注:上图截图是我已经创建好了,新添加最下面6处应该是【添加任务】。

3. 申请 SSL 证书(实现 HTTPS 访问)

Lucky可以使用ACME自动申请证书,配置https访问更安全。进入 【安全管理】栏目,点【添加证书】,弹出配置添加证书窗口页面。配置如下:

  • 备注:可自己填写,便于后续有更多的证书任务时区分即可;
  • 添加方式:选 ACME(自动申请 Let’s Encrypt 证书);
  • 颁发机构:选Let's Encrypt
  • 验证方式:选Cloudflare ,Token填上一步创建的区域令牌即可;
  • 域名列表:与 DDNS 配置一致(建议填写 *.xx.qzz.io,申请通配符证书,这样一个证书可以适配所有的子域名,不用每个都单独申请)。

微信图片_20250713114104.png

其他默认即可,配置好后点底部【添加】完成配置,等待证书申请成功,一般几分钟就好了。

微信图片_20250713114735.png

但是这里因为是使用的免费二级域名,可能申请使用的人比较多,一直没有成功申请到,查询日志发现确实是超额了,要过一定时间再试,而我测试我自己购买的顶级域名申请很快就成功了。

微信图片_20250713165817.png

4. 配置反向代理规则

接下来配置反向代理,这是实现域名访问多端口的核心步骤。进入【Web服务】栏目,点击顶部【添加web服务规则】,弹出配置窗口,配置如下:

  • 规则名称:可以自定义或不填均可;
  • 监听类型:根据公网类型选 IPv4IPv6
  • 监听端口:使用默认的 16666 或者自定义(避开飞牛使用的或者被运营商封锁的 80/443);
  • TLS:如果开启 HTTPS 访问,则需要打开这个按钮。(前面如果已经成功申请到了证书,则建议开启HTTPS访问)

微信图片_20250713124641.png

点击底部【添加Web服务子规则】按钮,展开子规则配置窗口。配置如下:

  • 规则名称:自定义服务名称标识便于区分;
  • 服务类型反向代理
  • 前端域名:子域名(如 lucky.xx.qzz.io);
  • 后端地址:NAS 内网地址 + 端口(如 http://127.0.0.1:16601)
  • BasicAuth认证:打开的话,在使用域名访问服务页面的时候,会增加一个密码登录,对于没有密码登录的服务可以设置一下,像Lucky这种本身就带登录密码的服务,可以不用开启。

微信图片_20250713124935.png

5. 外网访问示例

配置完成后,通过 https://lucky.xx.qzz.io:16666 格式访问Lucky服务页面如下图,其他服务依上图添加子规则,设置不同的前端三级域名地址,对应不同服务的后端地址端口即可。

微信图片_20250713125107.png

上图中我的免费二级域名暂未申请到SSL证书,所以暂时只能使用http裸奔访问了。可以看到浏览器有提示不安全。SSL申请成功之后,还是要使用HTTPS访问的,需要在Lucky里再增加一个重定向规则配置,或者直接在Cloudflare里设置重定向规则。

最后一个提醒:安装好Lucky之后要记得及时修改用户名密码,不然的话看上图登录页面,默认账号密码都直接给你亮出来了!