前言:为什么我们需要“穿透”?
折腾 NAS 或者家庭服务器的朋友,最终都会面临一个终极问题:当我不在此地 WiFi 环境下时,如何访问家里的服务?
你可能在家里搭建了群晖/威联通 NAS、Jellyfin 影音库、Home Assistant 智能家居中控,甚至是一个私人的 WordPress 博客。在局域网内,输入 192.168.x.x:端口 就能流畅访问。但一旦出了门,切换到 5G 网络或公司的 WiFi,这些服务就全部“失联”了。
传统的解决方案通常是“全家桶”式的折腾:
- 你需要搞定 DDNS (动态域名解析),因为家里的公网 IP 是会变的。
- 你需要配置 端口转发 (Port Forwarding),在路由器上打洞。
- 为了安全和浏览器不报红,你还需要申请 SSL 证书 上 HTTPS。
- 为了不用记那一串丑陋的端口号 (如
:5000,:8096),你还需要配置 Nginx 反向代理。
这一套下来,足以劝退 80% 的新手。
但是,现在我们有了 Lucky。
Lucky 是一个专为简化这一过程而生的“神器”。它在一个简洁的 Web 界面里,把上面所有的功能(DDNS、SSL 证书自动续签、反向代理 Web 服务)全部集成了。今天这篇教程,就手把手教你如何用 Lucky,优雅地把家里的服务发布到公网。
准备工作 (必读)
在开始之前,请确保你满足以下核心条件。Lucky 的核心原理是基于公网 IP 的直连,而不是服务器中转。
- 公网 IP (关键): 你需要拥有公网 IPv4 或 公网 IPv6。
- 如何判断? 登录你的光猫或路由器后台,查看 WAN 口获得的 IP 地址,然后去百度搜索“IP”,如果两者一致,大概率是公网 IP。(如果是 10.x, 100.x, 172.x 开头的通常是内网 IP,这种情况下 Lucky 的大部分功能无法直接使用,需要找运营商申请改公网)。
- 一个域名: 你需要购买一个顶级域名(如阿里云、腾讯云、Cloudflare 等)。几块钱一年的那种就足够了。
- 运行环境: 一台能 24 小时开机的设备(NAS、OpenWrt 路由器、树莓派或一台常开的 PC)。
第一步:安装 Lucky
Lucky 支持多种安装方式,最推荐使用 Docker,干净卫生,不影响宿主机。
(注:如果你的 OpenWrt 路由器固件自带 Lucky,可以直接跳过此步,在服务菜单中找到它)
在你的 NAS 或服务器终端中,执行以下 Docker 命令(建议使用 host 网络模式,最省心):
Bash
docker run -d \
--name lucky \
--restart=always \
--net=host \
-v /你的配置路径/lucky_conf:/goodluck/config \
gdy666/lucky
- 请将
/你的配置路径/lucky_conf替换为你实际想用来保存 Lucky 配置文件的文件夹路径。
安装完成后,在浏览器输入 http://你的设备局域网IP:16601 (默认端口是 16601),默认账号密码通常是 666/666,登录后请务必第一时间修改密码。

第二步:配置 DDNS (解决 IP 变动问题)
我们的目标是,无论家里宽带 IP 怎么变,输入域名都能找到家。
- 在 Lucky 左侧菜单栏,点击 【动态域名(DDNS)】 -> 【添加 DDNS 任务】。
- DNS 服务商:选择你购买域名的厂商(例如 Cloudflare, Aliyun, TencentCloud 等)。
- Token/密钥:根据提示,去你域名服务商的后台申请 API Key/Token 并填入。这是 Lucky 操作你域名的“授权书”。
- 域名列表:填写你想使用的二级域名,例如
nas.yourdomain.com。 - IP 类型:如果你有公网 IPv4 就选 IPv4;如果是移动宽带通常只有 IPv6,就选 IPv6。
- 点击 【添加】。
稍等片刻,查看任务日志,如果显示“更新成功”,并且你的域名解析后台多了一条 A 记录或 AAAA 记录,指向了你当前的公网 IP,说明 DDNS 配置成功!

第三步:申请 SSL 证书 (让访问变绿锁)
现在浏览器对 HTTP 非常不友好,为了安全和美观,我们需要上 HTTPS。Lucky 内置了 ACME,申请证书比喝水还简单。
- 点击左侧菜单 【安全管理】 -> 【SSL 证书】 -> 【添加证书】。
- 申请方式:选择 【ACME】。
- DNS 服务商:选择和上一步 DDNS 一样的服务商(因为它需要用 DNS 验证域名所有权)。
- 域名:填写你刚才做 DDNS 的域名,例如
nas.yourdomain.com。为了方便,你也可以申请泛域名证书*.yourdomain.com,这样以后增加新服务就不用再申请了。 - 邮箱:随便填一个你的邮箱用于接收通知。
- 点击 【添加】。
等待几十秒,状态栏变成绿色的“颁发成功”,就说明证书到手了!

第四步:配置 Web 服务 (核心:反向代理)
这是最关键的一步,我们将把外网的访问请求,通过 Lucky 转发给内网的实际服务端口,并隐藏掉丑陋的端口号。
假设需求:我要把内网群晖的登录页 http://192.168.1.100:5000,映射到外网 https://nas.yourdomain.com 访问。
- 点击左侧菜单 【Web 服务】 -> 【添加 Web 服务规则】。
- 服务名称:随便填,例如“群晖 NAS”。
- 监听端口:这是你希望在外网访问时使用的端口。
- 注意: 国内家庭宽带通常封锁了 80 和 443 端口。所以我们通常需要用一个冷门端口,比如
8443或6666。 - 这里我们填入
8443,并勾选 【SSL】(开启 HTTPS)。
- 注意: 国内家庭宽带通常封锁了 80 和 443 端口。所以我们通常需要用一个冷门端口,比如
- 默认 SSL 证书:选择你上一步申请好的证书。
- [重要] 添加子规则:在下方找到子规则区域。
- 前端域名/地址:填写你的域名
nas.yourdomain.com。 - 后端地址:填写你内网服务的真实地址,例如
http://192.168.1.100:5000。
- 前端域名/地址:填写你的域名
- 点击 【添加】 保存。

第五步:路由器端口映射 (最后一步!)
Lucky 配置好了,但你家路由器的防火墙还在拦着外网的请求。你需要告诉路由器:“如果有人访问家里的 8443 端口,请放行,并交给 Lucky 处理。”
- 登录你家主路由器的后台。
- 找到 【端口转发】 或 【虚拟服务器】 功能。
- 添加一条规则:
- 外部端口:
8443(你在 Lucky 里设置的监听端口)。 - 内部 IP 地址:运行 Lucky的那台设备的局域网 IP。
- 内部端口:
8443(和外部保持一致即可)。 - 协议:TCP。
- 外部端口:
- 保存生效。
见证奇迹的时刻
拿出你的手机,关掉 WiFi,使用 5G 网络。
在浏览器输入: https://nas.yourdomain.com:8443
如果一切顺利,你将会看到那把熟悉的安全“绿锁”,并且成功加载出你家 NAS 的登录界面!
恭喜你,你已经成功打通了回家的路!
总结
通过 Lucky,我们只用了一个工具、一个界面,就替代了以往需要 DDNS 脚本、Nginx 配置、ACME 脚本三个东西才能完成的工作。
以后如果你想添加新的服务,比如 Jellyfin,只需要重复“第四步”,在同一个 Web 服务下添加一条新的子规则:域名填 jellyfin.yourdomain.com,后端填 Jellyfin 的内网地址即可,无需再配置 DDNS 和证书,非常方便。
