STUN 是打洞 P2P 穿透,不需要公网服务器,但必须是 NAT1(Full‑Cone 全锥形 NAT),对称 NAT 基本无法成功;公网映射端口会动态变化,不会固定不变。
前置条件
- 网络必须是 NAT1 (Full‑Cone 全锥形 NAT);移动宽带大多是对称 NAT,打洞成功率很低。
- Lucky 优先部署在主路由(OpenWrt/iStoreOS);如果装在 NAS/Docker 内网设备上:
- 方案 A:路由器开启 UPnP/NAT‑PMP
- 方案 B:路由器做 DMZ 指向 Lucky 设备 IP
- 方案 C:路由器手动端口转发
穿透通道监听端口→ Lucky 主机:同端口
- 光猫拨号:光猫设置 DMZ 指向路由器;路由器拨号不用处理光猫。
⚠️注意:STUN 仅做体验,不保证端口稳定不变,运营商重拨号、断网后公网端口就会改变。
基础配置步骤
进入 Lucky 后台 → STUN内网穿透 → 穿透规则列表 → 添加穿透规则
名称:随便写,如 nas‑web
操作模式:简易模式(普通用户不要用定制模式)
穿透类型:
IPv4‑TCP或IPv4‑UDP,一次只能选一种协议,不能同时 TCP+UDP穿透通道监听端口
- 填一个本机未占用端口,建议 > 10240,多条规则端口不能重复;
- 路由器开 UPnP 可以填
0,使用随机端口。
防火墙自动放行:Lucky 跑在路由器上打开;跑在 NAS/Docker 就关闭。
NAT‑PMP:Lucky 在内网设备,路由器开启 UPnP 时打开;跑主路由可以关闭。
目标地址、目标端口:填写你要暴露的内网服务 IP 和端口。
示例:NAS 的服务
192.168.1.100:8080启用使用内置转发:
- ✅打开:Lucky 软件层转发,简单,但拿不到真实客户端 IP;
- ❌关闭:由路由器防火墙端口转发,能拿到真实 IP,性能更好,需要路由器手动配置端口转发;UDP 穿透不能关闭内置转发。
保存启用规则。
查看公网访问地址
规则列表中会显示得到的公网地址,格式:公网IP:公网映射端口。
外网就用 http://公网IP:公网映射端口访问你的内网服务。
重点:这个公网映射端口会变,断线重连、拨号后端口就更新。
进阶处理端口动态变化
- Webhook 回调:STUN 规则里填写 webhook 地址,端口发生变化时 Lucky 会 POST 推送新公网 IP + 端口,可写脚本自动更新 DDNS、Cloudflare Origin Rules、路由器防火墙端口转发等。
- Web 服务场景:搭配 Lucky 内置 DDNS+Cloudflare Origin Rules,域名自动指向变化后的公网端口。
- 非 Web 服务(PT、游戏):需要脚本同步更新防火墙 / 客户端监听端口。
常见踩坑
- 打洞不成功:90% 是不是 NAT1 全锥形 NAT;iStoreOS/OpenWrt 防火墙打开 Full‑Cone NAT 选项。
- UDP 穿透:不能关闭内置转发,关闭后 UDP 直接失效。
- Docker 部署 Lucky:网络模式必须用
host,桥接模式 STUN 打洞大概率失败。 - 外网访问不通:检查路由器防火墙、光猫防火墙,不要拦截 3478 (STUN 服务器端口) 以及你的监听端口。
- 不要同时多条 STUN 规则用同一个本地监听端口。
STUN 对比 FRP
- STUN:无服务器、直连速度等于家庭宽带上行;端口动态、NAT 类型强依赖,稳定性一般。
- FRP:需要公网 VPS 服务器;端口固定,不依赖 NAT 类型,流量经过服务器带宽受限。
如果你需要长期稳定对外提供服务,优先 FRP;临时体验、PT 下载,优先 STUN。
官方文档链接
https://lucky666.cn/docs/modules/stun/
如果你告诉我你的部署环境(OpenWrt/iStoreOS/NAS Docker),我可以给你一份直接抄的配置参数。
相关视频
![]()
iStoreOS + Lucky STUN内网穿透(主路由运行Lucky)
iStoreOS上Lucky是iStore商店一键安装,跑在主路由,不是Docker旁路由,条件优先把NAT调成Full‑Cone(NAT1全锥形),否则打洞大概率失败。
一、路由器前置必做(iStoreOS设置)
- 开启Full‑Cone‑NAT(全锥形NAT) 网络 → 防火墙 → 区域设置
启用FullCone‑NAT:选择 高性能模式,保存应用。
移动宽带很多是运营商侧对称NAT,就算开了路由器FullCone,也打不通STUN。
- 光猫处理
- ✅路由器拨号(iStoreOS拨号):光猫桥接,无需DMZ。
- ⚠️光猫拨号:光猫后台设置DMZ指向iStoreOS路由器IP。
- 开启UPnP:服务 → UPnP,启动并启用,保存。
- Lucky安装:iStore商店搜索
Lucky安装,服务菜单打开Lucky后台,端口默认16601。
二、Lucky STUN规则配置(简易模式,直接抄)
进入Lucky后台 → STUN内网穿透 → 添加穿透规则
| 参数 | 设置 |
|---|---|
| 名称 | 自定义,如nas-web |
| 操作模式 | 简易模式 |
| 穿透类型 | IPv4‑TCP(网页用TCP;PT游戏选IPv4‑UDP) |
| 穿透通道监听端口 | 填大于10240空闲端口,例40000;填0使用UPnP随机端口 |
| 防火墙自动放行 | ✅打开(iStoreOS主路由,Lucky可操作防火墙) |
| NAT‑PMP | ❌关闭 |
| 目标地址 | 你内网服务IP,如192.168.1.100 |
| 目标端口 | 内网服务端口,如8080 |
| 启用使用内置转发 | ✅打开 |
⚠️UDP穿透必须开启内置转发,关闭直接失效。 ❗不要关闭内置转发:iStoreOS主路由上关闭内置转发需要你手动添加iStoreOS防火墙端口转发,新手不要碰。
保存,启用规则。等待几秒,规则列表会出现:公网IP:动态映射端口,外网直接用这个地址访问服务。
⚠️重点:公网映射端口会变,断网、重拨号之后端口更新,不是固定端口。
三、解决端口动态变化(进阶)
STUN打洞端口每次会变,两种方案:
- Webhook回调:规则填写webhook,端口变更时Lucky推送新IP+端口,可写脚本更新DDNS、Cloudflare Origin Rules,实现域名访问,不用记端口。
- Cloudflare Origin Rules:域名自动映射STUN返回的公网IP+端口,实现不带端口域名访问。
iStoreOS终端安装依赖(脚本需要)
opkg update |
四、高频踩坑排查(iStoreOS)
一直获取不到公网端口,打洞失败
- 确认防火墙Full‑Cone‑NAT高性能模式已开启,重启防火墙。
- 运营商网络是对称NAT(移动宽带常见),路由器再怎么设置也打不通STUN。
- 检查光猫是否拦截3478STUN服务器端口。
- 点规则右侧📋日志,看报错信息。
内网能访问,外网打不开
- 防火墙自动放行必须打开;如果关闭内置转发,需要iStoreOS手动添加端口转发。
- 光猫拨号必须设置光猫DMZ指向iStoreOS。
UDP完全不通 UDP穿透不支持关闭内置转发,必须保持开启。
如果你是Docker部署Lucky在iStoreOS容器魔王
Docker网络模式必须为
host,桥接模式STUN直接失效。
五、选型建议
- STUN:无服务器,直连速度等于家庭上行;端口动态,NAT依赖强,适合临时用。
- FRP:VPS服务器,端口固定,稳定性强,不依赖NAT,长期对外服务优先FRP。
官方文档:https://lucky666.cn/docs/modules/stun/
如果你告诉我:运营商(电信/移动/联通)、是路由器拨号还是光猫拨号,我可以给你一套适配你网络的完整参数。
stun打洞+cloudflare回源规则,将本地服务放进公网 - 久光本光的主页
stun 打洞+cloudflare 回源规则,将本地服务放进公网 - V2EX
正确的使用lucky,彻底告别IPV4,DDNS+反向代理+SSL证书自动续签-cqchen-86-cqchen-86-哔哩哔哩视频