/ 19浏览

Cloudflare利用重定向以实现中国直连源站

背景

本人刚刚注册了第二个域名:aye.moe

使用Cloudflare代理流量可以加快加载和资源加载

但是使用Cloudflare进行流量代理会有一个问题,就是中国三大运营商(CT+CU+CM)与Cloudflare之间会受到很大的速率和延迟波动影响

为了解决国内与Cloudflare的速率问题和国外使用Cloudflare的需求,可以用到DNS分区解析。

但是分区解析的提供商们,海外版要么就是要绑卡,国内版又要备案

本人就是懒得去折腾这些东西,DNS完全依赖于Cloudflare

(其实华*云的国际版只需要有账号就可以使用云解析服务,没有绑卡也一样正常使用,但是华*云的海外NS地址的解析都很乱,所以就放弃使用了)


区分两个域名为直连还是代理

在我的案例中,我用aye.moe作为直连站,xyye.xyz作为CF代理站

为什么要区分

为了防止在同一个域下泄露源站IP

但不过你的服务器有一定的防御也是可以不区分的


修改需要直连的服务

如哪吒探针:

哪吒探针需要一个不经过CDN的域名/IP以实时上传

修改探针域名至未接入CDN的面板服务器域名/IP(本人案例中直接填入探针机IP)


获取Cloudflare源服务器SSL

这个流程仅适用于

1.未使用有效的公开可信的证书或者无证书加密源站与CF之间的流量

2.需要开启完全(严格)或完全的加密模式

进入域 -> SSL/TLS -> 源服务器

截屏2024-07-02 15.31.00.png

如果没有特别需求,按照默认配置创建证书即可

注意:如果有有多于*.example.com的域名需要代理时,需要特别输入。

截屏2024-07-02 15.33.27.png

复制输出的证书内容和密钥内容,手动复制入WAF添加证书并运用证书至需要代理的网站下即可

截屏2024-07-02 15.41.59.png


配置WAF设置

Cloudflare

进入域 -> 安全性

截屏2024-07-02 15.53.15.png

根据需求,添加WAF规则,速率限制,爬虫限制

建议开启自动替换polyfill功能:Replace insecure JavaScript libraries

源站

所有经过Cloudflare代理的请求都会被Cloudflare的WAF检测和阻挡所有恶意请求,所以源站没有必要对已经经过过滤的流量进行再一次检测。

修改防护模式至 观察

截屏2024-07-02 15.48.39.png


配置重定向规则

以下规则指引均为了将中国请求重定向至未被CF代理的域名

技术有限,只实现重定向至一个固定URL

进入域 -> 规则 -> 重定向规则

截屏2024-07-02 16.11.00.png

根据需求,添加匹配规则(注意And与OR的搭配)

将已经经过CF代理的网站填入主机名(如果使用URL匹配需要完全一致)

添加AND条件,匹配中国请求

最后填入重定向URL即可

示例:

https://developers.cloudflare.com/rules/url-forwarding/single-redirects/examples/

截屏2024-07-02 17.05.29.png

这样,所有中国用户在访问这个域名的时候就会被重定向到另一个域(当然这个域是没有经过代理的,不然重定向的意义就不存在了)


配置直连域名

对应重定向指向URL进行直连域名的配置

在本文的案例中,共在xyye.xyz(Cloudflare代理域)配置了3条重定向规则(仅在中国生效)

包含www.xyye.xyz/xyye.xyz -> www.aye.moe ; uptime.xyye.xyz -> uptime.aye.moe ; tz.xyye.xyz -> tz.aye.moe。

在aye.moe的DNS设置中,添加所有直连域名(*.aye.moe)的DNS

这些域名的最后解析A/AAAA结果应该为源站的IP(当然,可以是多个IP,只要是回源到同一个服务器即可)

不会建议使用CF代理这些域名!不然将中国的请求重定向就失去的意义,就是要让中国的请求直连到服务器或者自建CDN上,以避开三大ISP到CF的速率问题。

在服务器或者自建CDN上,配置上游地址,开启80/443(SSL),启用HTTPS。(如有WAF,依需求设置规则)

如果服务器上可以根据请求IP获取国家地区进行重定向的话,那就可以有更多的用法了


缺点

Cloudflare的IP有被墙的风险

(仅适用于来自中国的请求)

尽管Cloudflare不负责内容分发和网页加载,只负责在响应的时候进行重定向

但是Cloudflare的IP还是会有一定的几率被墙了

不如DNS分区解析

本文的案例只适用于无法使用DNS分区解析的情况(即解析服务商不提供根据地域/运营商返回不同的响应值,如CF)

如果在DNS层面上就已经进行了中国/国外分流的话,就不需要这些繁琐的重定向了。

也就只有我会在不想绑卡+不想备案的情况下用这种情况解决了。


Last updated: 2024/7/2 20:43

Alex
香港青山醫院 智障精神科 義工