我们将使用CF页面规则来重定向URL以实现端口的固定和“隐藏”
此处需要两组子域名 重定向前的域名 和 重定向后的域名
重定向前的域名此域名开启CF代理 即IP解析到CF以便进行重定向处理这也是我们需要在浏览器中输入的域名 (例如web.ie12.com)
重定向后的域名不开启CF代理 IP解析到真实的对外IP这将是重定向后的访问的域名(例如web.stun.ie12.com)
设置DNS记录
由于免费账户只提供3条页面规则 所以我们需要节约使用
可通过设置泛域名解析的方法容纳大量服务
设置重定向前的域名
登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的DNS
点击添加记录 > 类型选择A > 名称填写 * > IP地址任意填写这这里使用8.8.8.8
开启代理 此处的为泛域名解析 例如.ie12.com
设置重定向后的域名
登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的DNS
点击添加记录 > 类型选择A > 名称填写 *.stun > IP地址任意填写 >不开启代理
此处的为泛域名解析 例如.stun.ie12.com 这里的STUN可自定义
设置DNS记录解析
完成上述配置后我们只需要更新泛域名就可以了
更新时直接填写带星号的泛域名即可
创建页面规则
登录CF > 点击侧边栏中的网站 > 选择你的域名 > 点击侧边栏中的规则 >
页面规则 > 创建规则
URL填写 重定向前的泛域名 比如*.ie12.com
选取设置:转发URL 状态代码:302
目标地址: 填写重定向后的地址 和STUN穿透端口
例如: https://$1.stun.ie12.com:2568
可以带上https 以完成HTTP重定向工作
此处的$1用于传递上面*部分的字符
这样我们就可以用一条页面规则完成无数服务的重定向
可以继续添加通配符以匹配 资源路径和查询字符串等
通配符效果演示
更新页面规则
在设置创建完成页面规则后我们还需要对其进行更新
即更新重定向后地址中的STUN穿透端口号
通过API可以完成更新 但我们需要先获取 区域ID 和 规则ID
获取区域ID
区域ID获取起来非常简单 点开页面规则中的API按钮
将示例URL中的区域ID复制出来即可
在侧边栏的概况里面也有显示
创建访问令牌
规则ID的获取相对麻烦一些 要使用API来获取
要使用API我们需要先创建访问令牌
API定义:https://developers.cloudflare.com/api/operations/page-rules-list-page-r
转到个人资料页面以创建访问令牌
点击右上角的小人图标 > 选择我的个人资料
或者在已经登录CF的情况下直接访问该链接:https://dash.cloudflare.com/profile/api-tokens
切换到 API令牌 点击右侧的创建令牌
选择页面底部的 自定义令牌
按照图中的提示设置令牌内容 其中的名称可自定义
此令牌只会显示一次 复制下来 妥善保存
接下来我们就可以 开始获取规则ID 了
获取规则ID
在创建了访问令牌后就可以开始获取规则ID了
此处使用lucky计划任务中的callweb功能来进行获取
登录lucky > 点击侧边栏的 计划任务 > 添加计划任务
任务备注 即任务名称任意填写
执行周期 仅执行一次 执行时间 :任意选择
我们将使用手动触发所以执行时间随意填写
添加子任务
备注即子任务名称 任意填写
类型 callweb
接口地址:
https://api.cloudflare.com/client/v4/zones/你的区域ID/pagerules请求头:
Authorization: Bearer 之前获取的令牌
Content-Type: application/json开启 禁用CallWeb调用成功字符串检测
保存规则
保存规则后 关闭任务开关 并按下手动触发按钮
检查日志输出 若配置都正确可以看到下列内容
其中的 id 就我们需要的 规则ID
而value 和 url 就是之前设置的重定向前/后域名
在获取完 规则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
}
}
]
}
保存规则 按下手动触发按钮 观察日志
查看url 字段中重定向后域名附加的端口号是否变化
以及是否有返回 "success":true"
在STUN穿透规则中更新端口
在计划任务中完成更新测试后 现在要将其填写到STUN穿透规则内
设置方式与在计划任务中基本相同 需使用变量 #{port} 表示穿透得到的端口号
接口调用成功包含的字符串填写:
"success":true
可以按下 上面的webhook手动测试按钮 测试参数是否填写正确
其会使用内置的演示参数 端口应该会变成6666
至此我们已经基本完成了 固定/隐藏端口的设置
本文共 1322 个字数,平均阅读时长 ≈ 4分钟
评论 (0)