找回密码
 立即注册
查看: 29|回复: 2

[技术分享] [教程] 通过CloudFlare+SaaS回源优选IP使国内用户高速访问网站

[复制链接]

10

主题

8

回帖

118

积分

注册会员

积分
118
湖光倒影 发表于 昨天 00:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本片文章较长,建议前往博客阅读, 有目录功能方便快捷跳转https://dooo.ng/archives/1701171631107


前言

                               
登录/注册后可看大图
由于不可抗力因素,使用了Cloudflare开启小黄云在国内的访问速度十分堪忧,间歇性抽风
在之前我们可以使用cloudflare partner来使访问回源到一个优选过后的IP
但是在去年这个方法已经行不通了, 那么我们这些白嫖玩家又不想对接国内备案实名CDN,同时想要保证国内的高速访问
我们应该怎么做呢?
这就是我们这期要讲的主要内容,Cloudflare SaaS回源
  • 此文编写于 2023年11月28日 发布在博客与其它论坛
    截至目前测试依旧可用,但是文中提到的csgo.com可能已经不是最优解请自行寻找更好的替代
  • 在我的博客Umami中看到不少本论坛的朋友跳转到我的博客,为了方便各位大佬故在本论坛也发一份
什么是SaaS回源?

                               
登录/注册后可看大图
SaaS回源主要分为两个部分
  • 自定义主机名 (Custom Hostnames)
    • 你可以设置一个自定义主机名,来作为你的访问域名
  • 回源 (Origin Server)
    • 当用户请求特定的主机名(如客户自己的域名)时,请求会被转发到SaaS提供商的原始服务器(或称为回源服务器)。
SaaS回源有什么用?

                               
登录/注册后可看大图
  • 可能看到现在大家还是一头雾水,不过没关系,我会给大家根据实例来通俗易懂的解释一下
  • 我们可以使用支持分流的DNS解析服务(例如腾讯的DNSPOD),
    将我们需要访问的域名例如 image.dooo.ng 通过CNAME解析到任意一个Cloudflare的节点,
    例如csgo.com, visa.com,而这些域名解析到的CF的IP通常是经过大陆特殊优化的
    有些是优选线路,有些的百度云合作的IP地址
  • 将我们的 image.dooo.ng CNAME解析到 csgo.com 之后, 我们访问image.dooo.ng的请求实则是被发送到了
    经过优选后线路较好的Cloudflare IP上 这个步骤达到了我们优选IP的目的
  • 此时Cloudflare的IP收到了我们的访问请求, 会匹配我们访问的域名 image.dooo.ng 在Cloudflare中是否有匹配的 自定义主机名 如果有, 它会将我们回源到我们设置的 回源服务器
  • 这里我绘制了一个序列图来帮助大家理解

    988×770 36.2 KB
使用Cloudflare的SaaS回源
  • 我们可以设置自定义域名(例如 image.dooo.ng)。
  • 并通过CNAME记录将其解析到另一个域名(例如 csgo.com)。
  • 这样设置是为了利用Cloudflare的安全和性能特性,如DDoS防护、SSL/TLS加密、CDN加速等。
CNAME解析过程
  • 访问 image.dooo.ng 时,DNS查询会根据CNAME记录找到它实际指向的 csgo.com。
  • 由于 csgo.com 已接入Cloudflare CDN,用户的请求会被路由到Cloudflare的边缘节点。
Cloudflare边缘节点处理
  • Cloudflare的边缘节点处理请求,包括应用安全规则、进行缓存等。
  • 如果请求需要回源(即获取原始内容),Cloudflare会将请求转发到原始的回源服务器。
访问过程的理解
  • 用户访问 image.dooo.ng 实际上是在访问Cloudflare的节点。
  • 然后,根据需要,Cloudflare会从原始的回源服务器获取内容。
  • 这个过程对用户透明,用户只知道他们访问的是 image.dooo.ng,但实际上得到的内容可能是直接来自Cloudflare的缓存,或者是经过Cloudflare优化处理后的来自原始服务器的内容。
实际操作

                               
登录/注册后可看大图
准备域名

                               
登录/注册后可看大图
  • 在了解了SaaS回源的相关原理之后, 我们可以进行实操了!
  • 首先我们需要准备两个域名
    • tongyi.tw.cn ← 作为 我们的访问域名,也就是自定义主机名,稍后我们访问此域名来访问网站
    • fallback.tech ← 作为 我们的回源域名,也就是当我们访问 tongyi.tw.cn 时,cloudflare在内部回源的域名
    • 我将tongyi.tw.cn 解析在腾讯的DNSPOD上, 而fallback.tech 解析在Cloudflare上
      • 前者不是必须的,你可以都解析在Cloudflare上,我选择DNSPOD是因为它有免费的分流服务
        可以将境内境外解析到不同的cname上
      • 而后者则是必须的! 因为只有解析在cloudflare上的域名才可以启用SaaS回源
设置回源域名

                               
登录/注册后可看大图
添加DNS解析

                               
登录/注册后可看大图

image-202311281850203641900×961 100 KB

  • 首先我们先来添加一个DNS解析
  • 解析到我们的真实服务器IP地址, 正如上面所说的,这是一个回源的域名,也就是说,服务器的IP到底是什么
    只有这台回源域名知道,它的工作也只是起到回源的作用
  • 这里你可以随意填写一级域名或二级域名,我推荐填写二级域名 也就是 origin.fallback.tech 可以随意起名
  • 因为填写二级域名, 你还可以在DNS中正常解析一级域名,仅将二级域名作为回退源
添加回退源

                               
登录/注册后可看大图

image-202311281846237392560×1364 201 KB

  • 进入到Cloudflare域名管理界面 → SSL/TLS → 自定义主机名 → 添加一个回退源
  • 回退源地址即为我们刚才解析的二级域名

image-202311281853392661700×1061 97.6 KB

检查回退源是否有效

                               
登录/注册后可看大图
  • 回退源状态: 有效 即代表回退源添加成功,现在访问 origin.fallback.tech 你应该会看到如下界面

image-202311281856187501583×1248 95.7 KB

  • 这是因为虽然设置了回退源,但是我们并没有设置自定义主机名,也就是回退源并不知道要将哪个主机名回源到我们的服务器IP
设置自定义主机名

                               
登录/注册后可看大图
添加自定义主机名

                               
登录/注册后可看大图

image-202311281904019271671×1155 106 KB

设置主机名信息

                               
登录/注册后可看大图

image-202311281904173871600×810 45.6 KB

  • 自定义主机名: 填写你要解析的域名, 可以为一级或者二级均可,这里我填写 tongyi.tw.cn
  • TLS版本默认填写1.0即可
  • 证书验证方法填写TXT验证
验证域名所有权

                               
登录/注册后可看大图

image-202311281910065061617×930 114 KB

  • 这里我们需要验证我们域名的所有权和证书验证
  • 去到你的DNS解析面板添加这两个TXT解析
  • 值得注意的是你的两个TXT验证名称应该不包含主域名,
    例如直接复制下来是_acme-challenge.tongyi.tw.cn 你应该删去 tongyi.tw.cn 即为 _acme-challenge
    因为它给你的是验证的完整地址,你的解析已经包括tongyi.tw.cn
  • 二级域名同理,例如 _acme-challenge.1.tongyi.tw.cn 你应该改为 _acme-challenge.1
  • 添加好之后稍等片刻,等待CF服务器去验证
设置优选IP

                               
登录/注册后可看大图
经过我们一番折腾,最好玩的部分来了
设置分流

                               
登录/注册后可看大图

image-202311281921540832024×248 30.8 KB

  • 添加两个二级域名记录,一个线路选择境内,另一个选择境外
  • 境外我们直接解析到 1.0.0.5
  • 境内我们CNAME解析到 csgo.com
    你还可以选择很多,只要是国内访问速度不错,使用Cloudflare CDN的,你都可以cname解析上去
    可使用的CNAME优选域名参考

                                   
    登录/注册后可看大图

    Qatar2022(SAN JOSE IP) : www.qatar2022.qaIP查询 : ip.skk.moeping.pe政府网站:乌克兰🇺🇦政府www.gov.ua泰国🇹🇭政府www.thaigov.go.th卡塔尔🇶🇦政府www.gco.gov.qa瑞典🇸🇪政府www.gov.se美国🇺🇸FBI:FBI.GOV商业网站:CSGO官方网站(Cloudflare LONDON ASN):CSGO.COMDigitalOceandigitalocean.comVISA官方网站:(格式: VISA.国家顶级域名)VISA.COMVISA.CNVISA.FIVISA.HK伪AMEX:AMEX.COMSHOPIFY(推荐):SHOPIFY.COM域名注册商:Dynadot.COM其它网站:SINGAPORE.COMJAPAN.COMBRAZIL.COMMALAYSIA.COMRUSSIA.COM
添加解析

                               
登录/注册后可看大图

image-202311281927334832083×444 58 KB

  • 再将我们要访问的域名,CNAME解析到我们的CDN记录上即可,
排查错误

                               
登录/注册后可看大图
  • 注意如果要访问,我们的站点必须开启SSL证书和HTTPS访问,不然会直接404,因为回源只回源到443端口
  • 现在我们打开网站测试下能否正常访问
重定向次数过多
image-202311281930479791178×633 19.9 KB

提示我们重定向过多,这是因为HTTPS加密的问题,我们进入Cloudflare后台 → SSL/TLS → 概述
image-202311281932187252544×1355 168 KB

将SSL/TLS加密模式改为 “完全” 再次尝试访问
Invalid SSL Certificate
992×514 13.5 KB

  • 出现此问题是因为我们的回源域名 fallback.tech 在进行回源时,访问的是 tongyi.tw.cn
  • 虽然我们在验证所有权时申请了一个证书,但那个证书是用于回源之后呈现给用户端的, 在回源过程中不会生效
  • 所以我们需要给 tongyi.tw.cn 申请一个证书, 可以通过宝塔面板,NPM等等方式,只要申请一个证书并配置即可解决此问题
结果测试

                               
登录/注册后可看大图

2033×793 46.2 KB

网站访问成功! 我们去itdog Ping一下试试看
Ping 测试
image-202311281937345181942×1334 179 KB

  • 可以看到我们的网址是经过csgo.com同款的Cloudflare ASN进行解析的
  • 海外是通过 1.0.0.5 进行解析的
总结
通过这种方法,我们可以实现几乎国内全绿
Cloudflare + SaaS还有很多玩法,自建Cloudflare节点等等


回复

使用道具 举报

10

主题

8

回帖

118

积分

注册会员

积分
118
 楼主| 湖光倒影 发表于 昨天 00:33 | 显示全部楼层

Cloudflare+SaaS续篇:自建反代Cloudflare边缘节点

上一篇教程 通过 CloudFlare+SaaS 回源优选 IP,让国内用户高速访问网站,在 Nodeseek 帖子 获得了 500 个收藏,博客也有了 759 次独立浏览量,真的感谢大家的支持!
教程最后我提到了:
通过这种方法,我们几乎可以实现国内访问全绿。
其实 Cloudflare + SaaS 还有很多玩法,比如自建 Cloudflare 节点等等。
这个坑其实早就想填了,拖了一年半,今天终于补上了!
自建 Cloudflare 节点的原理
其实原理非常简单,看下面这张图就一目了然:

                               
登录/注册后可看大图
简单来说,我们实际访问的是 image.dooo.ng,但通过 CNAME 解析到了 csgo.com。而 csgo.com 是 Cloudflare 的商业用户,拥有比免费用户更好的线路。所以访问请求会通过更快的线路到达 Cloudflare 的节点,数据再通过 SaaS 回源到我们的网站,访问自然就更加顺畅了。
基于这个原理,衍生了三种流派:
  • 大厂派:域名解析到 csgo.com、SHOPIFY.COM 等,这就是我上篇教程的玩法。
  • 偷跑派:由于reality协议的特性,有些节点偷了套过CF的网站,比如Speedtest等,这些节点的IP以及域名其实是可以通过SaaS回源当作优选服务器的 所以衍生出了一些优选CF反代网站,通过fofa来扫描这些节点然后进行偷跑流量,我本人非常不推荐这种做法,也不做教学。
  • 自建派:今天的主角,使用自己线路更好的 VPS 反代 Cloudflare,实现自建 CDN 节点。
自建 Cloudflare 节点实操
我们只要用 VPS 转发流量到 Cloudflare,就完成了。
主流方法是使用 gost 工具进行转发。
第一步:安装 gost
使用以下命令安装 gost(基于 snap):
sudo snap install gost第二步:使用 gost 转发端口
我们将本机的 80 和 443 端口转发到 Cloudflare 的 IP,比如 1.0.0.5:
snap run gost -L=tcp://:80/1.0.0.5:80snap run gost -L=tcp://:443/1.0.0.5:443
当然,你也可以把 1.0.0.5 替换为你的 CNAME 回退源域名,这样更符合 Cloudflare 最新的服务条款(TOS)。
⚠️ 注意:你需要使用 screen、supervisor 或 systemctl 把 gost 进程放到后台运行,否则 SSH 一断开,转发也会失效。
第三步:防火墙放行端口
以 iptables 为例放行端口,使用 ufw 的朋友可以自行查阅或问 ChatGPT:
iptables -I INPUT -p tcp --dport 80 -j ACCEPTiptables -I INPUT -p tcp --dport 443 -j ACCEPT第四步:检查反代是否成功
打开浏览器访问你的 VPS IP 和端口号,如果看到下面的页面就说明成功啦!
  • 80端口:

                               
登录/注册后可看大图
  • 443端口:

                               
登录/注册后可看大图
最后一步:CNAME 解析
将你原本解析到 csgo.com 的域名,改为解析到你反代机的 IP 或域名即可。至此你就成功自建了一个 反代Cloudflare 的边缘节点啦!

优缺点分析优点:
  • 可以使用 Cloudflare 提供的 WAF、安全防护、缓存等强大功能。
  • 国内线路质量由你决定,更加稳定可控。
  • 国内自建节点更自由,国外使用 Cloudflare 节点则更加快速。
缺点
  • ⚠️ 反代节点可能被别人偷跑流量。(偷跑派)
  • ⚠️ 反代节点的 IP 无法隐藏。
虽然看似偷跑流量很严重,但其实我们也有解决方法。比如通过 SNIProxy 添加鉴权,允许白名单内的域名/IP 才能转发,其他的请求直接丢弃。
不过这部分内容我们放到下一篇文章中。如果本教程反响不错,我会尽快更新相关教程。当然,你也可以自行搜索实现,虽然资源不多但是研究一下也不难。

回复 支持 反对

使用道具 举报

10

主题

8

回帖

118

积分

注册会员

积分
118
 楼主| 湖光倒影 发表于 昨天 00:34 | 显示全部楼层
感谢分享,mark 一下
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|IDCeve

GMT+8, 2025-10-20 01:51 , Processed in 0.085835 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表