阿里云ESA CDN回源访问LUCKY STUN穿透端口

相关文章:

之前发过2篇关于使用CDN搭配STUN穿透来实现完美隐藏端口号访问,现在再加上一个免费的ESA以供参考

一、添加站点

阿里的ESA注册过程就省略了,我们直接在ESA的站点管理页面添加一个站点,这里以*.a.com为例

添加完成后需要验证域名所有权,按照要求在DNS解析那里添加上相应的TXT记录即可,验证完成后就可以删除这条TXT验证记录了

此时添加一个站点记录,域名为泛域名,记录值为你的已经绑定ipv4动态域名,这里为ipv4.a.com为例。关于ipv4 ddns动态解析域名的内容,这里就不过多叙述了,如果不懂的话可以先看看这篇文章进行入门lucky+重定向解析:使用Cloudflare+CDN优选+workers重定向到lucky的ipv4-stun穿透http请求来直连飞牛OS

确保ipv4.a.com已经使用ddns固定ip

关于这里为什么要使用域名回源而不使用ip回源是因为ESA的回源默认设置不支持直接指定回源端口的,只能在SSL/TLS那里手动指定回源端口号,这样子的话需要对其进行两次更新操作——第一次是回源IP,第二次是回源端口号,这样子就增加的动态更新的复杂度。因此使用域名回源的话可以减少更新难度

网站类型选择为网站页面就可以了

最后还需要添加对应的CNAME记录到DNS解析

完成CNAME解析即可完成站点的添加了

二、配置回源端口号

在SSL/TLS->源站证书修改回源端口号为你的lucky穿透后的公网端口号,协议为https

添加完成后即可完成CDN访问

三、自动同步回源端口号

得益于完善的API体系和cli工具,阿里云cli支持使用命令行直接修改ESA的数据

官网参考链接:在Linux系统上通过Bash脚本或TGZ安装包安装阿里云CLI-阿里云CLI-阿里云

# 下载aliyun-cli
curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o aliyun-cli-linux-latest.tgz

#arm64链接
#curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-arm64.tgz -o aliyun-cli-linux-latest.tgz

#解压文件
tar xzvf aliyun-cli-linux-latest.tgz

#移动到系统目录
mv ./aliyun /usr/bin/

#验证cli是否可用
aliyun version
ShellScript

点击头像里面的权限与安全->AcessKey来创建一个令牌

创建一个RAM AccessKey

角色名随意,最后下载AccessKey到本地

在命令行输入下列命令来创建配置文件

aliyun configure set \
  --mode AK \
  --access-key-id 你的key-id \
  --access-key-secret 你的key-secret \
  --region "cn-hangzhou" \
  --language "zh"
ShellScript

默认存放在~/.aliyun/config.son下,可以使用cat ~/.aliyun/config.json查看是否生成成功

在SSL/TLS->源站证书下面有一个API调试链接打开即可进行调试,也可以点我打开

先通过站点ID获取到对应的配置id,配置id可以在ESA页面获取

填入下列信息即可完成调试修改测试

  • SiteId
  • ConfigId
  • OriginHttpsPort

此时再返回SSL/TLS,就会发现端口号改变了

点击右上角的cli示例复制到本地执行,查看是否和API调试页面的结果一致,如果一致就说明可以正常使用;如果出现认证问题,请回到2、配置AcessKey来重新配置AccessKey

这里就非常简单了,直接创建一个计划任务为手动执行的就可以了

这里建议在最后加上一行echo可以将错误信息显示出来

{STUN_EO-CDN_PORT}为lucky全局变量

最后没有问题就可以在STUN的自定义脚本触发添加上对应的命令就可以了

有时候会遇到lucky里面的计划任务没办法执行的问题,但是在shell又可以正常执行,这种问题可能是lucky内部环境的问题,暂时不知道,仅做记录

解决方法也很简单,在lucky内也执行一次配置生成就可以了

四、自动更新SSL证书

ESA支持申请免费的泛域名证书,并且进行自动续签,这样就不需要我们手动更新和上传证书了

如果使用CNAME的方式接入ESA的话需要添加一个DCV记录来委托证书签署

在SSL/TLS->边缘证书->托管 DCV处复制对应信息

在你的域名添加一个CNAME记录

  • 如果你想申请*.a.com的泛域名证书,则添加
主机记录记录类型记录值
_acme-challengeCNAMEa.com.1092xxxxxxxx240.dcv.aliyun-esa.com
  • 如果你想申请*.s.a.com的三级域名,则添加
主机记录记录类型记录值
_acme-challenge.sCNAMEs.a.com.1092xxxxxxxx240.dcv.aliyun-esa.com

添加好DCV记录后就可以直接免费申请泛域名证书了,等待几分钟就可以申请成功了

五、特定url重定向下载

和腾讯的EdgeOne一样,大文件回源下载的话还是会限速的,因此我们可以将需要大文件下载的链接加入重定向规则,这样就可以避免CDN限速来拖慢下载速度

在规则->重定向规则->新增规则来创建重定向规则

  • 主机名:cloudreve.a.com
  • URI路径:/api/v4/file/content
  • URI查询字符串:sign
  • 类型:动态
  • 表达式:concat(“https://cloudreve.s.a.com:6654”, http.request.uri.path)

这里的https://cloudreve.s.a.com:6654需要替换成你自己通过STUN直连访问的端口,通常是与CDN回源端口是保持一致的

因为openlist的下载是有两种下载规则的,一种是预览下载/p/*,另一只是直接下载/d/*,且ESA的一条重定向规则只能添加3个条件,没办法做到同时匹配/d和/p,因此我们需要给openlist创建2个重定向规则,添加的内容是和cloudreve的是类似的,只是url路径不一样而已

来自文章顶部相关文章EdgeoOne内说明

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

评论

  1. lou
    Windows
    1 月前
    2025-12-24 15:38:09

    看完学习了,等后面继续完善后再部署,继续支持

  2. 老王
    Windows
    1 月前
    2025-12-26 22:06:16

    啥时候能更新个lucky利用ipv6动态更新esa解析的就好了。现在我都是手动去改的ipv6地址,过几天就过期了。还有新增域名也只有手动。

    • 博主
      老王
      Linux
      1 月前
      2025-12-27 14:57:00

      可以的啊,你直接在ESA的回源地址填写你的IPV6域名就可以了啊

  3. 小林
    Windows
    2 周前
    2026-1-21 8:41:25

    对于不支持重定向的手机APP,如jellyfin、群晖,可以用这种方法实现访问吗?

    • 博主
      小林
      Android
      2 周前
      2026-1-21 8:58:37

      是支持的

发送评论 编辑评论


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