Terminal
  • Menu ▾
    • 关于
    • 博客
    • 项目
    • 飞牛NAS Docker
    • 🎬 影音
    • 🎵 音乐
    • 🧭 导航
  • 关于
  • 博客
  • 项目
  • 飞牛NAS Docker
  • 🎬 影音
  • 🎵 音乐
  • 🧭 导航

为什么需要 DDNS 和反向代理?

家里的 NAS、Home Assistant、Emby 等服务只能在内网访问,出门就断了。Lucky 解决两个问题:

  1. DDNS:家宽 IP 会变,自动更新域名解析,始终指向你家
  2. 反向代理:把多个内网服务通过不同域名/端口暴露出去,统一 HTTPS 入口

实际应用场景:

  • 🏠 外网访问飞牛 NAS 文件
  • 🎬 出门看 Emby 影视库
  • 🎵 LX Music 歌曲同步
  • 🏡 远程控制 Home Assistant
  • 📊 查看监控面板

技术架构

外网用户
    ↓
域名 xxx.1681588.xyz(阿里云 DNS)
    ↓
家庭宽带 IP(动态)
    ↓
路由器端口转发(8888 → NAS:8888)
    ↓
Lucky 反向代理
    ↓
┌─────────────┬─────────────┬─────────────┐
│ LX Music    │ Emby        │ 其他服务    │
│ :9527       │ :8096       │ :xxxx       │
└─────────────┴─────────────┴─────────────┘

部署步骤

第一步:创建项目目录

mkdir -p ~/docker/lucky
cd ~/docker/lucky

第二步:编写 docker-compose.yml

services:
  lucky:
    image: gdy666/lucky:latest
    container_name: lucky
    restart: unless-stopped
    ports:
      - "16601:16601"    # 管理面板
      - "8888:8888"      # 反向代理端口
    volumes:
      - ./config:/goodluck    # 配置持久化
    environment:
      - http_proxy=     # OrbStack 代理兼容
      - https_proxy=
      - ALL_PROXY=
    network_mode: bridge   # 必须用 bridge,host 模式不通

第三步:启动容器

docker compose up -d

第四步:访问管理面板

浏览器打开 http://你的NAS-IP:16601

默认账号密码:admin / admin123

配置 DDNS

第一步:获取域名

在阿里云注册域名(如 1681588.xyz),或使用免费二级域名。

第二步:获取 API Token

阿里云:

  1. 登录阿里云控制台
  2. 访问密钥管理 → 创建 AccessKey
  3. 记录 AccessKey ID 和 Secret

Cloudflare:

  1. 登录 Cloudflare
  2. My Profile → API Tokens → Create Token
  3. 权限选择 Zone:DNS:Edit

第三步:添加 DDNS 任务

在 Lucky 管理面板:

  1. 左侧菜单 → 动态域名
  2. 点击 添加任务
  3. 配置:
    • 域名:你的域名.1681588.xyz
    • DNS 服务商:阿里云 / Cloudflare
    • 填入 API Token
    • 更新间隔:5 分钟

第四步:验证

查看 DDNS 任务状态,确认 IP 已更新:

nslookup 你的域名.1681588.xyz
# 应该返回你家的公网 IP

配置反向代理

第一步:添加反向代理规则

在 Lucky 管理面板:

  1. 左侧菜单 → 反向代理
  2. 点击 添加规则
  3. 配置:
字段值
监听端口8888
域名lx.1681588.xyz
目标地址http://localhost:9527
启用 HTTPS可选

第二步:常用反向代理示例

域名内网地址用途
lx.1681588.xyz:8888localhost:9527LX Music 同步
emby.1681588.xyz:8888localhost:8096Emby 影视
ha.1681588.xyz:8888localhost:8123Home Assistant
sunpanel.1681588.xyz:8888localhost:3000Sun-Panel 导航

第三步:路由器端口转发

在路由器中设置端口转发:

外部端口内部 IP内部端口协议
8888NAS IP8888TCP
16601NAS IP16601TCP(可选,仅管理用)

HTTPS 证书配置

自动证书(推荐)

Lucky 支持自动申请 Let’s Encrypt 证书:

  1. 在反向代理规则中勾选 启用 HTTPS
  2. 选择 自动申请证书
  3. 填入邮箱
  4. 保存后自动申请并续期

手动证书

如果有通配符证书或其他证书:

  1. 上传证书文件(.cem + .key)
  2. 在反向代理规则中选择 手动证书

安全加固

修改管理端口

不要用默认的 16601,改成冷门端口:

  1. 设置 → 系统设置 → 管理端口
  2. 改成如 58888

IP 白名单

在反向代理规则中可以设置:

  • 只允许特定 IP 访问管理面板
  • 或者限制整个 IP 段

定期更新

# 更新 Lucky 镜像
cd ~/docker/lucky
docker compose pull
docker compose up -d

坑

⚠️ OrbStack host 模式不通:OrbStack 中 network_mode: host 出站 TCP 不通,必须用 bridge + 端口映射。

⚠️ 家宽 80/443 端口被封:大部分家宽封了 80 和 443,需要用非标端口(如 8888)。

⚠️ 双 NAT 问题:如果光猫是桥接模式就没问题;如果是路由模式,需要在光猫上也做端口转发。

⚠️ 域名备案:如果用国内服务器(阿里云 DNS),域名需要备案才能解析到国内 IP。用 Cloudflare 不需要备案。

验证

# 测试反向代理是否通
curl -I http://lx.1681588.xyz:8888
# 应该返回 LX Music 的响应

# 测试 HTTPS
curl -I https://lx.1681588.xyz:8888
© 2026 Powered by Hugo :: Theme made by panr
--