剪藏#剪藏#知新坊

Lucky STUN内网穿透:免费获取公网 IP 实现自动域名跳转

2025 年 8 月 29 日1 分钟
分享Twitter / XTelegram微博
Lucky STUN内网穿透:免费获取公网 IP 实现自动域名跳转 封面

好多朋友在问,所以就重新使用最新引导界面发布此篇文章,使用lucky项目中的 STUN内网穿透,NAT1用户可以获取公网 IP 地址和端口,从而允许外部设备与其内网服务建立连接,无需申请公网,即可访问家里的NAS等各个项目,并通过Cloudflare实现访问域名302转跳到对应的公网IP:端口上面,直接使用lucky项目即可实现

Notion image

💠 需要具备哪些条件

  • 需要一个域名

  • 浏览器F12抓包

  • NAS安装lucky

  • 需要将域名托管到Cloudflare

  • 路由器开启DMZ

  • 光猫桥接

优点

  • 较为适合移动大内网

  • 无需申请公网ipv4,即可在外网ipv4环境下访问

缺点

  • 端口不固定,随时会变动

实现的功能是,通过STUN内网穿透获取公网ipv4:端口上传到Cloudflare,然后通过访问域名之后重定向到公网ip:端口,当然这个是全自动的实现的,端口变更后会自动更新到Cloudflare,并且会把最新的ip和端口通过消息推送到微信提醒。

安装lucky

飞牛用户应用中心下载

Notion image

域名托管

域名托管到Cloudflare申请令牌

因我的域名在腾讯云,要做的就是将域名托管到 Cloudflare。Cloudflare使用需要注册账号,这一步就不做过多赘述了,网站支持简体中文,我相信按照说明注册账号应该都能顺利完成。

Notion image

底部阻止AI抓取网页,毕竟私人用,有可能被搜索引擎收录,就能在网上找到你的地址

Notion image

选择免费套餐

Notion image

什么都不用管,继续前往激活

Notion image

去腾讯云把DNS地址修改成cloudflare提供的,下图框起来的。

Notion image

去腾讯云修改"DNS服务器”,具体如下图

Notion image

等待CF同步DNS完成,大概几分钟就好了,下面是完成的状态

Notion image

获取令牌,点击右上角,点击我的配置文件

Notion image

点击API令牌,创建令牌

Notion image

选择编辑区域 DNS,使用模板

Notion image

使用的模板权限默认,区域资源选择包括、特定区域、选择你的域名,如下图,点击继续

Notion image

点击继续以显示摘要,然后创建令牌

Notion image

记住保存你的令牌

Notion image

设置路由

我是光猫桥接路由拨号,我的是小米路由器,需要到小米路由器里面打开DMZ,如果你是其他设备请自行研究一下,如果你感觉开启这个有风险就不需要继续下去了。

Notion image

测试配置STUN内网穿透

1️⃣ 测试能否获取到公网IPV4

先简单配置一下lucky进行测试一下,如果能成功获取到公网ipv4并且能在外网访问成功之后再往下继续

  • 点击左侧STUN内网穿透->添加穿透规则

Notion image

  • 名称:随意

  • 操作模式:简易模式

  • 穿透类型:ipv4

  • 穿透端口:默认可以为0

  • 防火墙自动放行:打钩

  • 目标地址:NAS的内网IP地址

  • 目标端口:NAS的内网IP访问端口

Notion image

浏览器外网访问这个获取到的IP加端口,如果正常就能打开飞牛,就没问题,继续往下

Notion image

域名解析

以上都没问题,可以进行域名解析,打开 Cloudflare,在域名的 DNS 设置里面添加 A 记录,ip填8.8.8.8,或者其他任意IP都行,代理状态要打开

Notion image

设置重定向

左边菜单栏 规则 ->创建规则->选择重定向规则

Notion image

Notion image

规则名称不用有中文,要记牢后面要用,其他照抄就行

Notion image

表达式:(里面IP:端口随意,后面会覆盖的)

JAVASCRIPT
concat("http://192.168.31.100:1984", http.request.uri.path)

点击部署

Notion image

抓取相关参数信息,需要重新 编辑规则

Notion image

进入编辑页面之后按F12 打开开发者模式,然后点击保存,就能获取到以下信息

Notion image

如下图所示,请求URL全部复制下来

Notion image

复制下来的URL请求如下

JAVASCRIPT
https://dash.cloudflare.com/api/v4/zones/{区域ID}/rulesets/{规则集ID}/rules/{规则ID}

要替换成下面的接口,只有zones前面的不一样,zones后面都一样复制替换就行了,这个要仔细,弄错了就调用不成功了,自己比对一下就能区分出来

JAVASCRIPT
https://api.cloudflare.com/client/v4/zones/{区域ID}/rulesets/{规则集ID}/rules/{规则ID}

编辑STUN内网穿透

回到lucky 编辑最开始创建的穿透规则,打开全局WebHook(全局WebHook主要用于推送最新IP和端口到你微信)和WebHook,按照下面图片填写

lucky的一些参数,了解一下就行

Notion image

除了我说明的地方,其他地方照抄就行

Notion image

**请求接口:**前面让你复制替换的

JAVASCRIPT
https://api.cloudflare.com/client/v4/zones/{区域ID}/rulesets/{规则集ID}/rules/{规则ID}

请求方式:PATCH

**请求头:**空格不能少

JAVASCRIPT
Authorization: Bearer 你的令牌

请求主体:

JAVASCRIPT
 {
        "action": "redirect",
    "description""换成你重定向创建的规则名称",
    "expression": "(http.host eq \"换成你的域名\")",
        "action_parameters": {
          "from_value": {
            "preserve_query_string": true,
            "status_code": 301,
            "target_url": {
              "expression": "concat(\"http://#{ipAddr}\", http.request.uri.path)"
            }
          }
        }
      }

接口调用成功包含的字符串:

JAVASCRIPT
"success": true

填写完成,点击手动触发测试

Notion image

返回接口调用成功信息,如果不成功请先确认你的令牌权限那边是否设置了单一重定向,看前面创建令牌的截图

Notion image

返回到cloudflare编辑创建的规则,可以看到表达式这边的IP变成192.168.31.1:6666,这个IP和端口是手动触发模拟的IP和端口

Notion image

没问题就保存lucky创建的穿透规则

配置全局WebHook

左侧菜单栏点击 STUN内网穿透->设置

Notion image

开启全局Stun Webhook

Notion image

使用的是pushplus消息推送功能,免费额度够用无需付费。

打开www.pushplus.plus微信扫码注册登录->点击右上角头像->个人中心复制token

Notion image

接口地址:

JAVASCRIPT
https://www.pushplus.plus/send

**请求方式:**POST

请求头:

JAVASCRIPT
Content-Type: application/json

请求主体:

JAVASCRIPT
{
    "token": "你的pushplus:token",
    "title": "公网变化通知",
    "content": "#{ipAddr}",
    "template": "txt"
}

填写完成,点击手动触发测试返回下面信息就代表没问题,并且能收到微信推送的消息

Notion image

返回lucky任务列表,点击操作:开关一下,重新获取IP和端口,注意一下IP端口变化,没变化不推送的,触发结果都是:成功 就算完成了

Notion image

微信推送的消息

Notion image

使用小知识

  • 我们只需要访问cloudflare解析的域名,就会转跳到对应的IP:端口,域名访问方便之处就是不需要记IP:端口

  • 如果是外网飞牛APP和TV端使用,直接使用IP:端口就行,域名用不了,无法转跳。

  • IP:端口也不是一直变动的,有时候一天都不会变,反正变动了也会推送到你微信能第一时间拿到手,正常使用没有问题。

  • 如果NAS部署了docker代理项目,需要关掉一下,不然获取不到公网IP:端口

Notion image

原文地址: https://mp.weixin.qq.com/s?__biz=MzUzOTMwOTM2NQ==&mid=2247489580&idx=1&sn=de18bf912167cc04c0268abd1826f9d8&chksm=fb069d92482d3ce53e412a7fd019e070bc88745cfb74cdbda830c02d1d17fb8d415effb254b9&mpshare=1&scene=1&srcid=0829022EY44zK42HgtlI1WgO&sharer_shareinfo=7cc6713f0c921254947b46bc09ab2a3f&sharer_shareinfo_first=7cc6713f0c921254947b46bc09ab2a3f#rd

相关文章