如果你家里的 NAS、路由器或者小主机想从外面访问,通常要同时折腾 DDNS、反向代理、SSL 证书……软件装一堆,头都大了。Lucky(项目名 gdy666/lucky,官网 lucky666.cn)把这些功能全塞进了一个容器里,被称为“软路由瑞士军刀”。本文整理了从部署到避坑的实战技巧,帮你一次配好。
一、Lucky 能干什么
一句话:DDNS 动态域名、ACME 自动续期 SSL 证书、反向代理、端口转发、STUN 内网穿透、网络唤醒(WOL)全部集成。你不用再分别装 ddns-go、Nginx Proxy Manager、frp。
- DDNS:宽带公网 IP 变了,自动把域名解析更新到新 IP(支持阿里云、腾讯云、Cloudflare 等)。
- SSL 证书:基于 ACME 协议向 Let’s Encrypt 申请,到期前自动续签。
- 反向代理:把
ip:端口映射成好记的域名,并套上 HTTPS。 - 端口转发 / STUN 穿透:没有公网 IPv4 的 NAT1 环境也能近似公网访问。
二、部署:Docker 最省事
官方推荐 host 网络模式,让 Lucky 直接拥有宿主机网络权限,避免端口映射和协议兼容问题。
version: '3.8'
services:
lucky:
image: gdy666/lucky:latest
container_name: lucky
restart: unless-stopped
network_mode: "host"
volumes:
- /root/luckyconf:/goodluck # 挂载配置,删容器不丢配置
装好后在浏览器打开 http://设备IP:16601,默认账号密码都是 666。除了 Docker,也支持二进制直装、OpenWrt 的 IPK 包、以及宝塔面板应用商店一键安装。
三、第一次登录必做两件事
- 立刻改密码:在设置里改掉默认的 666/666。
- 设置安全入口路径:例如
/mysecret,之后只能访问http://IP:16601/mysecret进后台,防止被扫描。
四、核心功能实操技巧
1. DDNS:泛域名一次配好
动态域名 → 添加任务,操作模式选“简易模式”,DNS 服务商选你买域名的平台,填入 API 密钥。域名列表填两行:
example.com
*.example.com
第二行是泛域名,后面所有子域名(nas.、ha.、alist.)的反向代理都能直接用,不用反复加解析记录。看到同步结果为“托管商记录一致”即成功。
2. SSL 证书:通配符 + 自动续期
安全管理 → 添加证书,添加方式选 ACME,证书机构 Let’s Encrypt,验证方式选 DNS(内网机器无法做 HTTP 验证)。域名同样填主域名 + *.example.com,一份证书适配所有子域。
- IPv4 环境建议开启“DNS 查询强制 IPv4”和“仅使用 TCP 通道”,提高成功率。
- 默认提前 30 天自动续签,建议改成 45 天更稳妥。
- ⚠️ Let’s Encrypt 同一域名每周最多申请 5 次,别反复点;失败先看日志(多半是 DNS 传播慢,把等待时间调长再试)。
- 国内域名必须备案,否则 HTTPS 也访问不了;不想备案可用 Cloudflare 托管 DNS。
3. 反向代理:一个域名管所有服务
Web 服务 → 添加规则,监听端口用 443(被运营商封就换 8443/9443),打开 TLS 并选刚申请的证书。然后添加子规则:
子规则名称:NAS 后台
服务类型:反向代理
前端地址:nas.example.com
后端地址:http://192.168.1.100:5000
- 需要 WebSocket(Home Assistant、Emby 弹幕等)记得勾选启用 WebSocket。
- 也可以用路径反代:前端
example.com/nas指向同一后端,适合只开放一个域名的情况。 - 证书申请成功后,务必在 Web 规则里打开 TLS 开关,Lucky 才会自动匹配证书。
4. 端口转发与 STUN 穿透
端口转发适合“IP + 端口”直连(比如运营商封了 80,就把服务映射到 16663 之类的高端口)。进阶技巧:
- 范围转发:监听端口填
8000-8002,目标端口9000-9002,自动生成多条规则。 - 白名单:重要服务开启白名单模式,只允许自己的公网 IP 访问。
- 无公网 IPv4:用 Lucky 的 STUN 穿透,在 NAT1 宽带下部署近似公网 IPv4 的反代服务。
五、性能与排错技巧
- 转发卡顿:在转发规则 Options 里把
BufferSize设为 32768(32KB),减少小包延迟;单条规则端口范围别超过 100 个连续端口。 - 443/80 绑定失败:部分系统占用这些端口,可给二进制授权:
sudo setcap 'cap_net_bind_service=+ep' /path/to/lucky后重启。 - 16601 端口冲突:在设置里改管理端口即可。
- DDNS / 证书失败:先查 AccessKey 权限、域名 DNS 是否生效、设备能否拿到公网 IP;证书失败优先看日志。
- 定期看访问日志,发现异常 IP 及时加黑名单。
六、安全最佳实践
- 改默认密码 + 设安全入口,绝不直接把管理后台暴露到公网。
- 重要服务一律上白名单 / IP 限制。
- 及时升级到最新版本(Lucky 迭代较快)。
- API Token / AccessKey 只给最小权限(如 Cloudflare 仅 Zone.DNS 的 Edit),别用 Global Key,更别截图外泄。
总结
Lucky 把一个家庭网络对外暴露需要的全部能力打包成了一个容器。配好 DDNS + 通配符 SSL + 反向代理这三步,基本就能优雅地用“域名 + HTTPS”访问家里所有服务;再叠加白名单和自动续期,长期省心。剩下的就是按上面这些技巧避开端口、备案、频率限制几个坑了。