前言

总所周知,通过STUN进行内网穿透之后,对于不同变化的ip和端口,会感到很头疼.

解决的方案一般是通过将lucky用反向代理到公网服务器,然后进入管理后台查看stun的地址

最近我看到一篇不错的文章,思路是通过域名的重定向功能配合lucky的webhook调用服务商的api设置重定向地址以达到伪DDNS的功能

这里一般可以用Cloudflare和YOURLS两个方式实现,以下记录了我用Cloudflare的实现方式

实现

第一步:

首先将域名绑定到Cloudflare,设置nameserver

第二步:

进入Rules->Page Rules设置重定向规则

第三步:

创建规则,url填入test.yourdomain.com/*,域名根据你自己的域名去修改,setting选择Forwarding URL,code为301,

跳转的url我们暂时填入http://192.168.31.1:5209/$1,这里的地址我们后面要用webhook去修改

第四步:

编辑lucky中的stun穿透中你需要做跳转的规则:

接口地址填入Cloudflare的api地址:https://api.cloudflare.com/client/v4/zones/{zones}/pagerules/{pagerules}其中zones和pagerules可以用F12在Cloudflare修改的时候拿到

请求方法选择PUT

请求头填入Cloudflare的账号和你创建的token:

1
2
X-Auth-Email: 
X-Auth-Key:

请求主体替换你的域名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"targets": [
{
"target": "url",
"constraint": {
"operator": "matches",
"value": "你的域名/*"
}
}
],
"actions": [
{
"id": "forwarding_url",
"value": {
"url": "http://#{ipAddr}/$1",
"status_code": 301
}
}
],
"priority": 1,
"status": "active"
}

这样我们就完成了伪DDNS