使用 HTTPS 加密的不同子域名安全访问 NAS 上的不同服务
拾与拾柒

前置条件

  • 家庭宽带有 IPv6 公网 IP(我只有 v6,没有 v4 的公网 IP)
  • 飞牛 OS 系统(以飞牛 OS 为例,其他系统理论上同理)
  • 有托管在 Cloudflare 的域名(以 Cloudflare 为例,其他域名托管商和 DNS 服务商理论上同理),例如 abc.com,分配一个子域名供公网访问 NAS 之用,例如 nas.abc.com

需求

  • NAS 有多个服务需要通过公网访问,希望通过不同的三级域名访问 NAS 上的不同服务,例如:
    • 通过 fn.nas.abc.com 访问飞牛 OS 桌面
    • 通过 qb.nas.abc.com 访问 qBittorrent Web UI 等
  • 上述所有访问均为 HTTPS,保证安全

折腾记录

飞牛 OS 的系统设置中已经集成了 DDNS 的相关功能,并且也支持 Cloudflare 作为服务商,不过在这里由于涉及后续的证书申请的反向代理设置,我们选择统一使用 lucky 来进行所有的相关设置,包括 DDNS,不使用飞牛 OS 自带的 DDNS 设置。

准备工作

  1. 通过飞牛 OS 的应用中心或 Docker 安装部署 lucky(https://lucky666.cn/
  2. 首次登录 lucky 后(默认用户名与密码均为 666),进入「设置」菜单,进行登录验证等安全设置,确保可以正常通过局域网访问到 lucky 的管理后台

前往 Cloudflare 创建 API 令牌

  1. Cloudflare Dashboard->管理账户->账户 API 令牌->创建令牌,选择「API 令牌模板」中的「编辑区域 DNS」
  2. 更改「区域资源」为「包括-特定区域-自己的域名」,例如 abc.com,其余选项默认,点击「继续以显示摘要」按钮
  3. 获得 Cloudflare API Token,注意 Token 只会显示一次,自行保存好这个 Token

在 Cloudflare 添加必要的 DNS 解析

  1. 为 NAS 预定使用的二级域名添加 A 记录,名称自定义,例如 nas,IPv4 地址填写「1.1.1.1」,代理状态选为不代理(仅 DNS)
  2. 为所有三级域名添加 CNAME 记录,名称为「*.nas」,目标填写「nas.abc.com」,代理状态为不代理(仅 DNS)

在 lucky 中设置 DDNS

  1. 进入「动态域名」菜单,点击「添加任务」
  2. 保持默认的「简易模式」,托管服务商选择 Cloudflare,填入刚才 API 令牌创建后得到的 Token,类型选择 IPv6,获取公网 IP 方式可以选择默认,域名列表填入「nas.abc.com」,之后添加任务
  3. 成功添加后,等待数秒,确认已经获取到公网 IP
  4. 此时你应该已经可以通过 nas.abc.com 访问到你的 NAS Web 管理桌面了,会被自动重定向到飞牛 OS 的默认访问端口 5666

申请证书

  1. 前往 lucky 的「安全管理」,在「SSL 证书」中点击「添加证书」
  2. 添加方式选择「ACME」,颁发机构保持默认,验证方式选择「Cloudflare」,填入之前获得的 Token
  3. 域名列表填写两行,分别为「nas.abc.com」和「*.nas.abc.com」
  4. 填入电子邮箱,算法可以保持默认,之后点击「添加」
  5. 等待数分钟后,确认证书已经申请成功,可以看到证书有效期
  6. lucky 会在证书到期时帮我们自动续签证书,无需人工干预

设置反向代理

  1. 终于到了关键步骤,在 lucky 中前往「Web 服务」,选择「添加 Web 服务规则」
  2. 监听类型根据实际情况选择,例如我只有 IPv6 地址,那么我只选 tcp6 即可
  3. 监听端口自由设置,例如设置为 56666
  4. 打开 TLS,之后点击下方「添加 Web 服务规则」
  5. 主体规则创建好后,点击其中的「添加子规则」按钮:
    1. 服务类型确认选择为「反向代理」
    2. 前端地址填写你希望用来访问服务的地址,例如「fn.nas.abc.com」,用于访问飞牛 OS 桌面
    3. 后端地址填写服务在局域网内的实际地址,由于 lucky 服务和要访问的服务都运行于 NAS 之上,可以填入「http://127.0.0.1:5666」(填写你实际要访问的服务的地址,此处为飞牛 OS 桌面),注意必须有「http://」前缀
    4. 设置完成后点击添加即可生效,如果有多个服务,就重复添加多个子规则,例如前端地址「qb.nas.abc.com」和后端地址「http://127.0.0.1: 8085」
  6. 此时访问「fn.nas.abc.com:56666」(不要忘了端口号),会自动重定向到 HTTPS,并且正确访问到了飞牛 OS 桌面服务,其余服务同理

收尾安全处理

为了安全,可以通过防火墙关闭 80、5666 以及其他自建服务的默认端口(防止通过 HTTP 直接访问),统一通过三级域名和统一的监听端口形式访问。

  • 本文标题:使用 HTTPS 加密的不同子域名安全访问 NAS 上的不同服务
  • 本文作者:拾与拾柒
  • 创建时间:2025-05-07 22:09:15
  • 本文链接:https://blog.iifatree.com/2025/05/07/fnOS-HTTPS-different-services/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论