使用CF的页面规则重定向URL以固定STUN内网穿透的端口

使用CF的页面规则重定向URL以固定STUN内网穿透的端口

ZJ
ZJ
2026-01-13 / 0 评论 / 3 阅读 / 正在检测是否收录...

我们将使用CF页面规则来重定向URL以实现端口的固定和“隐藏”
此处需要两组子域名 重定向前的域名重定向后的域名
重定向前的域名此域名开启CF代理 即IP解析到CF以便进行重定向处理这也是我们需要在浏览器中输入的域名 (例如web.ie12.com)

重定向后的域名不开启CF代理 IP解析到真实的对外IP这将是重定向后的访问的域名(例如web.stun.ie12.com)

Test

设置DNS记录

由于免费账户只提供3条页面规则 所以我们需要节约使用
可通过设置泛域名解析的方法容纳大量服务

设置重定向前的域名

登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的DNS
点击添加记录 > 类型选择A > 名称填写 * > IP地址任意填写这这里使用8.8.8.8
开启代理 此处的为泛域名解析 例如.ie12.com

Test

设置重定向后的域名

登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的DNS
点击添加记录 > 类型选择A > 名称填写 *.stun > IP地址任意填写 >不开启代理
此处的为泛域名解析 例如.stun.ie12.com 这里的STUN可自定义

Test

设置DNS记录解析

完成上述配置后我们只需要更新泛域名就可以了

更新时直接填写带星号的泛域名即可

Test

创建页面规则

登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的规则 >
页面规则 > 创建规则
URL填写 重定向前的泛域名 比如*.ie12.com
选取设置:转发URL 状态代码:302
目标地址: 填写重定向后的地址 和STUN穿透端口
例如: https://$1.stun.ie12.com:2568
可以带上https 以完成HTTP重定向工作
此处的$1用于传递上面*部分的字符
这样我们就可以用一条页面规则完成无数服务的重定向
可以继续添加通配符以匹配 资源路径和查询字符串等

Test

通配符效果演示

Test

更新页面规则

在设置创建完成页面规则后我们还需要对其进行更新
即更新重定向后地址中的STUN穿透端口号
通过API可以完成更新 但我们需要先获取 区域ID 和 规则ID

获取区域ID

区域ID获取起来非常简单 点开页面规则中的API按钮
将示例URL中的区域ID复制出来即可
Test

在侧边栏的概况里面也有显示
Test

创建访问令牌

规则ID的获取相对麻烦一些 要使用API来获取
要使用API我们需要先创建访问令牌
API定义:https://developers.cloudflare.com/api/operations/page-rules-list-page-r
转到个人资料页面以创建访问令牌
点击右上角的小人图标 > 选择我的个人资料
Test

或者在已经登录CF的情况下直接访问该链接:https://dash.cloudflare.com/profile/api-tokens
切换到 API令牌 点击右侧的创建令牌
Test

选择页面底部的 自定义令牌
Test

按照图中的提示设置令牌内容 其中的名称可自定义
Test
Test

此令牌只会显示一次 复制下来 妥善保存
Test

接下来我们就可以 开始获取规则ID

获取规则ID

在创建了访问令牌后就可以开始获取规则ID了
此处使用lucky计划任务中的callweb功能来进行获取
登录lucky > 点击侧边栏的 计划任务 > 添加计划任务
任务备注 即任务名称任意填写
执行周期 仅执行一次 执行时间 :任意选择
我们将使用手动触发所以执行时间随意填写

添加子任务
备注即子任务名称 任意填写
类型 callweb
接口地址:

https://api.cloudflare.com/client/v4/zones/你的区域ID/pagerules

请求头:

Authorization: Bearer 之前获取的令牌
Content-Type: application/json

开启 禁用CallWeb调用成功字符串检测
保存规则
Test

保存规则后 关闭任务开关 并按下手动触发按钮
检查日志输出 若配置都正确可以看到下列内容

其中的 id 就我们需要的 规则ID

而value 和 url 就是之前设置的重定向前/后域名
Test

在获取完 规则ID后就可以开始更新

测试更新

我们先在计划任务测试完成后 再写到STUN穿透规则里

修改计划任务

接口地址:

https://api.cloudflare.com/client/v4/zones/区域ID/pagerules/规则ID

请求方法: PATCH
由于是测试所以这里的STUN穿透端口号可以随意填
请求主体:

{
  "actions": [
    {
      "id": "forwarding_url",
      "value": {
        "url": "https://$1.你的重定向后域名:STUN穿透端口",
        "status_code": 302
      }
    }
  ]
}

Test

保存规则 按下手动触发按钮 观察日志
查看url 字段中重定向后域名附加的端口号是否变化
以及是否有返回 "success":true"
Test

在STUN穿透规则中更新端口

在计划任务中完成更新测试后 现在要将其填写到STUN穿透规则内
设置方式与在计划任务中基本相同 需使用变量 #{port} 表示穿透得到的端口号
接口调用成功包含的字符串填写:

"success":true

Test

可以按下 上面的webhook手动测试按钮 测试参数是否填写正确
其会使用内置的演示参数 端口应该会变成6666
Test

至此我们已经基本完成了 固定/隐藏端口的设置

本文共 1322 个字数,平均阅读时长 ≈ 4分钟
0

评论 (0)

取消