使用腾讯云EdgeOne +STUN来实现完美的家庭网络CDN回源访问

平替方案:

之前发过一篇使用CDN来实现最快国内最快重定向的文章,这里使用又拍云的边缘函数功能,来代替cf的workers重定向功能。现在腾讯云新出了个EdgeOne CDN,支持重定向和边缘函数,最重要的是免费使用,不限流量,这就很有搞头了

一、前提准备

  • 一个域名(强烈建议为备案域名)
  • 会使用lucky的stun功能并已经会实现重定向访问

为什么强烈建议使用备案域名,因为是可以使用国内的CDN节点,当然不备案也是可以的, 但是只能使用海外节点,速度的话肯定是没有国内的好的

二、注册EdgeOne

Edge one免费版是需要兑换码的,你可以选择自己制作任务获取兑换码,或者也可以想博主一样,直接去闲鱼花一块钱买一个兑换码

具体流程这里就不多展示可以,可以去网上找教程如何激活

三、配置EdgeOne

注册好账号后,就可以添加我们的域名了。

EdgeOne免费版只支持添加一个域名,但是对于我们自己使用的话是没什么问题的。

点击域名管理来新增一个域名,选择免费版套餐即可成功添加域名

此时还需要添加CNAME接入,但是由于博主这边已经绑定了新的域名,因此没办法继续演示了。这里就简单说说:添加CNAME到你的域名解析站点,我这里是将*.a.com添加进去,即全部站点。添加CNAME后等待几分钟就可以看到域名可以正常使用了

默认是有一个全局站点规则的,但是其并不能非常兼容我们的Web站点。例如缓存了一些动态页面的内容,导致没办法进行实时数据同步显示等

在站点加速可以直接看到全局配置的,下面说一下我的配置

  • 开启强制 HTTPS
  • 开启HTTP/2 回源
  • 开启OCSP 装订
  • 开启IPv6 访问
  • 开启WebSocket
  • 开启客户端 IP 头部设置并为EO-Client-IP
  • 开启gRPC

这些没什么好说的,自己看这些功能对应的描述即可

配置规则的内容就比较多了,可以在原来wordpress的模板进行添加

主要是添加了一个浏览器缓存一个小时:gif、png、bmp、jpeg、css、js、svg、webp、avif

TLS证书的话可以直接在腾讯云的的SSL证书页面手动上传一个泛域名证书就可以了,腾讯云是没办法申请泛域名证书的,因此只能我们自己手动上传泛域名证书

这个回源站点的话就填写自己的stun公网ip+端口号,下面我会说明如何使用API实现自动同步回源端口

四、API Explorer调试

得益于腾讯云具备完善的API调用体系,因此我们可以直接实现腾讯云在线的API接口帮我们编写好API脚本,测试通过后再部署到我们的设备上

打开腾讯云的API Explorer,点我直达

这里直接修改对应的表单数据就可以了

站点ID可以在Edgeone管理页面找到,

域名就填写你的站点域名因为之前添加的解析域名为*.a.com,因此这里也填写*.a.com

OriginType填IP_DOMAIN,意味使用IP/域名进行回源,并且在Origin填入你的公网IP地址,最后在底部的HttpsOriginPort填上你的STUN穿透端口就可以完成

此时可以点击在线调试来测试填写是信息是否生效。如果没有返回任何报错信息,就说明我们的API调用是生效的

点击签名示例打开API创建页面,也可以点我打开

创建好密钥后保存好secret_id和secret_key

在代码示例->HTTP Request处保存Shell工程到本地进行测试

修改内部的secret_id和secret_key你的secret_id和secret_key,保存后尝试运行,看看是否可以正常使用。这里建议直接在lucky内的计划任务内运行,以免不同环境对json数据的解析效果不一致

这里粘贴一下我使用的脚本,注意{STUN_EO-CDN_IP}{STUN_EO-CDN_PORT}是lucky的全局变量,请自行替换成自己的STUN穿透名称

#!/bin/bash
secret_id="你的secret_id"
secret_key="你的secret_key"
Zone_id="你的zone_id"
DomainName="你的站点域名"
IP="{STUN_EO-CDN_IP}"
PORT="{STUN_EO-CDN_PORT}"
token=""

service="teo"
host="teo.ap-guangzhou.tencentcloudapi.com"
region="ap-guangzhou"
action="ModifyAccelerationDomain"
version="2022-09-01"
algorithm="TC3-HMAC-SHA256"
timestamp=$(date +%s)
date=$(date -u -d @$timestamp +"%Y-%m-%d")
payload="{\"ZoneId\":\"$Zone_id\",\"DomainName\":\"$DomainName\",\"OriginInfo\":{\"OriginType\":\"IP_DOMAIN\",\"Origin\":\"$IP\"},\"HttpsOriginPort\":$PORT}"

# ************* 步骤 1:拼接规范请求串 *************
http_request_method="POST"
canonical_uri="/"
canonical_querystring=""
canonical_headers="content-type:application/json; charset=utf-8\nhost:$host\nx-tc-action:$(echo $action | awk '{print tolower($0)}')\n"
signed_headers="content-type;host;x-tc-action"
hashed_request_payload=$(echo -n "$payload" | openssl sha256 -hex | awk '{print $2}')
canonical_request="$http_request_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload"

# ************* 步骤 2:拼接待签名字符串 *************
credential_scope="$date/$service/tc3_request"
hashed_canonical_request=$(printf "$canonical_request" | openssl sha256 -hex | awk '{print $2}')
string_to_sign="$algorithm\n$timestamp\n$credential_scope\n$hashed_canonical_request"

# ************* 步骤 3:计算签名 *************
secret_date=$(printf "$date" | openssl sha256 -hmac "TC3$secret_key" | awk '{print $2}')
secret_service=$(printf $service | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_date" | awk '{print $2}')
secret_signing=$(printf "tc3_request" | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_service" | awk '{print $2}')
signature=$(printf "$string_to_sign" | openssl dgst -sha256 -mac hmac -macopt hexkey:"$secret_signing" | awk '{print $2}')

# ************* 步骤 4:拼接 Authorization *************
authorization="$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature"

# ************* 步骤 5:构造并发起请求 *************
curl -XPOST "https://$host" -d "$payload" -H "Authorization: $authorization" -H "Content-Type: application/json; charset=utf-8" -H "Host: $host" -H "X-TC-Action: $action" -H "X-TC-Timestamp: $timestamp" -H "X-TC-Version: $version" -H "X-TC-Region: $region" -H "X-TC-Token: $token"
ShellScript

点击手动触发看看是否可以正常解析,查看日志如果没有问题的话接下来就是实现STUN自动同步更新

在你的STUN穿透规则内粘贴上自定义和脚本触发代码即可完成自动更新

五、特定url重定向下载


📌 本文由 FishBoss_Tca 原创,转载请注明作者和原文链接。
原文链接:https://www.ytca.top/stun/2547/

评论

  1. dh
    1 月前
    2025-9-22 21:40:05

    大佬 求完善教程

    • 博主
      dh
      1 月前
      2025-9-22 23:52:57

      我还没想法好怎么表述方便,因为调试的内容太多了,我也是一直一直调试才知道行不行,如果你有兴趣的话可以先加入qq,我可以跟您讲讲如调试
      2546046421

  2. q
    1 月前
    2025-9-26 2:53:35

    免费版不支持国内加速

    • 博主
      q
      1 月前
      2025-9-27 9:07:40

      国内加速是需要备案域名才可以

  3. dh
    1 月前
    2025-9-30 17:17:36

    开了openclash后stun就会穿透不成功

    • 博主
      dh
      3 周前
      2025-10-07 10:36:07

      stun不可以和代理软件一块使用

  4. 爱你哟
    2 周前
    2025-10-15 19:25:23

    搞了哈,没有搞明白,还是等大佬完善教程🍤

    • 博主
      爱你哟
      已编辑
      2 周前
      2025-10-15 22:07:33

      基本回源是写完的了,那个重定向的只是边缘计算使用的

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇