Lucky STUN 内网穿透:没有公网 IPv4 也能访问家里设备

JackcatLucky1 月 前

Lucky STUN 内网穿透:没有公网 IPv4 也能访问家里设备

前两篇默认你至少有一个公网 IP。但现实是:大量家庭宽带(尤其移动)拿不到公网 IPv4,WAN 口是 100.x 开头的大内网地址。是不是就没法从外面访问家里设备了?未必。如果你的 NAT 类型是 Fullcone(NAT1)/ Endpoint-Independent,Lucky 的 STUN 内网穿透 可以「打洞」拿到一个临时公网 IP:端口,照样能连。

一、先确认你的 NAT 类型

下载 NatTypeTester,按 RFC 3489 测试,结果要是 Fullcone;或按 RFC 5780 测试,结果要是 Endpoint Independent。如果测试出来是 Port/Address Restricted,说明运营商 NAT 太严,本篇方案不适用,建议改用异地组网(Tailscale 之类)或内网穿透服务。

二、把 NAT 调到 NAT1

家用路由默认防火墙较严。进路由器后台开启 DMZ(填你跑 Lucky 那台设备的静态内网 IP),或开启 UPnP。光猫若是桥接、自己路由器拨号,就开自己路由器的 UPnP。这一步是打洞能否成功的关键。

三、在 Lucky 里添加 STUN 穿透规则

  1. 左侧 STUN 内网穿透 → 添加穿透规则
  2. 操作模式:简易模式。
  3. 穿透类型:IPv4-TCP(Web 类服务)或 IPv4-UDP(WireGuard、BT 等)。
  4. 穿透通道本地端口:填一个未占用的端口,如 26667
  5. 目标地址 / 目标端口:填你要暴露的内网服务,如 NAS 的 192.168.1.100:16666(通常就是上一篇反向代理的监听端口)。
  6. 勾选 防火墙自动放行 和(若需要)UPnP

点添加后等几秒,界面会显示获取到的 公网 IP:公网端口。用手机流量(非同一 WiFi)访问这个地址,能打开就说明穿透成功。

四、用 Cloudflare 重定向隐藏端口

公网IP:端口 这种地址又长又难记,而且 IP 一变就失效。更好的办法是配合 Cloudflare 的「重定向规则」:

  1. 在 Cloudflare DNS 里给域名加一条 A 记录(IP 随便填,如 8.8.8.8),代理状态打开。
  2. 建一条重定向规则,把 你的域名 301 跳转到 http://#{ipAddr}(动态变量)。
  3. 在 Lucky 的 STUN 规则里开启 WebHook(PATCH 方式调用 Cloudflare API),IP/端口一变就自动更新这条重定向。

这样你只需记域名,背后的 IP:端口由 Lucky 自动维护。注意 Cloudflare 免费版重定向规则上限约 10 条,一个公网映射对应一个项目。

五、IP 变了怎么知道?

开启 Lucky 的 全局 WebHook,接 pushplus(微信推送)或其他推送服务。地址一变,微信立刻收到最新 IP:端口,方便 APP / TV 端直接用 IP 访问(这类客户端往往不吃域名跳转)。

六、务必知道的局限

  • IP 和端口不固定:路由器重启、网络波动都会变,好在会自动更新 + 推送。
  • 不适合几秒一变的线路:那种 ISP 频繁重映射,体验会很差。
  • 速度看宽带:穿透是 P2P 直连,速率取决于你家上传带宽,不是中继转发。
  • 暴露风险:任何公网映射都等于把服务摆上公网,务必改密码、开 TLS、限制访问。

至此,本系列三篇覆盖了 Lucky 三大核心能力:DDNS(稳定地址)、反向代理(优雅暴露)、STUN 穿透(无公网 IP 也能连)。三者常常组合使用——用 STUN 拿到公网入口,再用反向代理把内网服务收口加密。把这几招吃透,一台 Lucky 容器基本能顶替过去 N 个独立工具。

发布评论

相关文章