Skip to content

使用 Lucky 配置 DDNS、反向代理与 SSL 教程

为了安全且稳定地在公网访问您的 Leelaa Reader 服务,推荐使用 Lucky (大吉) 进行全自动化配置。Lucky 是一款国产、高性能、配置简单的反向代理工具,支持自动申请 SSL 证书、DDNS 解析等功能。

1. Lucky DDNS 配置

如果您使用的是动态公网 IP(如电信/联通宽带),需要先配置 DDNS 确保域名始终指向您的服务器。

  1. 登录 Lucky 后台:进入「动态域名解析 (DDNS)」模块。
  2. 添加任务
    • 托管服务商:选择您的域名服务商(如阿里云、腾讯云、Cloudflare 等)。
    • 域名列表:输入您的二级域名(如 leelaa.yourdomain.com)。
    • 获取方式:通常选择 接口获取 (IPv4)接口获取 (IPv6)
    • 解析记录类型:根据您的网络情况选择 A (IPv4) 或 AAAA (IPv6)。
    • 注意:国内大部分宽带目前仅提供公网 IPv6,如果您没有公网 IPv4,请务必选择 IPv6 相关配置。
  3. 保存并运行:点击保存后,Lucky 会自动同步您的公网 IP 到域名服务商。

2. SSL 证书申请

SSL 证书是开启 HTTPS 访问的必要前提。Lucky 支持通过 ACME 协议自动申请并续签证书。

  1. 进入「证书管理」:在侧边栏找到并点击「证书管理」,然后点击「添加证书」。
  2. 基础配置
    • 备注:建议填写 Leelaa-SSL
    • 证书颁发机构 (ACME)
      • Let's Encrypt (推荐):免费、兼容性好。
      • ZeroSSL:另一个常见的免费选项。
  3. 添加域名
    • 在「域名列表」中输入您的访问域名,例如 leelaa.yourdomain.com
    • 如果您有多个子域名,也可以输入泛域名(如 *.yourdomain.com),这样该证书可以通用于该域名的所有二级域名。
  4. 配置 DNS 验证 (DNS Challenge)
    • 验证方式:选择 DNS 验证(这是最推荐的方式,不需要暴露 80 端口)。
    • DNS 服务商:选择您的域名服务商(如阿里云、腾讯云、Cloudflare、华为云等)。
    • API Key / Secret
      • 阿里云:需要 AccessKey IDAccessKey Secret
      • 腾讯云:需要 SecretIDSecretKey
      • Cloudflare:建议使用 API Token(选择具有 DNS 编辑权限的 Token)。
    • 注意:这里的 API 信息通常与第一步 DDNS 配置时使用的一致。
  5. 保存并申请
    • 点击「确定」后,Lucky 会自动向证书颁发机构发起申请。
    • 此时 Lucky 会在您的域名下自动添加一条临时的 _acme-challenge TXT 解析记录。
    • 等待完成:申请过程通常需要 1-5 分钟。申请成功后,证书列表中的状态会显示为「正常」,并标注到期时间。
  6. 自动续签:Lucky 会在证书到期前自动尝试续签,只要您的 DNS API 信息有效,您无需手动操作。

3. 配置反向代理 (Web 服务)

这是将公网请求安全转发到 Leelaa Reader 的核心步骤。

  1. 进入「Web 服务」:点击「添加规则」。
  2. 规则配置
    • 规则名称Leelaa-Reader
    • 监听端口:建议输入 443 (HTTPS 标准端口)。
    • ⚠️ 重要提示 (针对国内宽带用户)
      • 80/443 端口封锁:国内大部分家庭宽带(如电信、联通、移动)都封锁了 80 和 443 端口。
      • 备选方案:如果 443 无法访问,请将监听端口修改为其他高位端口(如 8443666 或任何未被占用的端口)。
      • 访问方式:使用非标准端口后,您的访问地址将变为 https://您的域名:端口号
    • 开启 HTTPS:勾选,并选择刚才申请的 SSL 证书
  3. 添加 Web 子规则 (反代)
    • 子规则类型:反向代理。
    • 匹配模式:前端域名(输入您的域名)。
    • 后端地址:填写 Leelaa Reader 的内网地址,例如 http://192.168.1.10:8686
  4. 安全加固 (注意事项)
    • ⚠️ 禁止开启 Basic Auth:虽然 Lucky 提供了 Basic Auth(基础认证)功能,但 请勿在 Leelaa Reader 的反代规则中开启它
    • 原因:开启 Basic Auth 后,Leelaa Reader 的 Flutter 客户端(App)将无法通过认证,导致无法登录或连接服务。
    • 安全建议:Leelaa Reader 自身已具备完善的登录认证体系,配合 HTTPS 加密即可确保公网访问安全。如果您确实需要额外防护,请确保仅在 Web 端访问时使用,或考虑其他网络层级的安全方案。

4. 验证访问

配置完成后,您可以使用 https://您的域名 直接访问 Leelaa Reader。由于配置了 SSL 证书,浏览器地址栏会显示绿色的安全锁,数据传输也将被加密,极大提升了公网环境下的安全性。