使用CloudFlare优选任何网站!

1147 字
6 分钟
使用CloudFlare优选任何网站!

优选前:

优选前 ITDOG IP数量
优选前 ITDOG IP数量
优选后:
优选后 ITDOG IP数量
优选后 ITDOG IP数量

优选原理#

简单说,Cloudflare 的小黄云会同时托管两件事——DNS 解析层和路由规则层;只要开启小黄云,你就没法单独改解析、指向更快的节点。而 Worker 路由的出现,让规则层和解析层都可以自己配置,这就是优选能落地的关键。

首先我们要知道 CDN 如何为不同域名分发不同内容。

可以将其抽象为两层:规则层解析层。当我们普通地在 Cloudflare 添加一条开启了小黄云的解析,Cloudflare 会为我们做两件事:

  • 写一条 DNS 解析指向 Cloudflare
  • 在 Cloudflare 创建一条路由规则

如果想要优选,实际上就是手动更改这条 DNS 解析,使其指向一个更快的 Cloudflare 节点。但一旦关闭小黄云,路由规则也会被删除,再访问就会变成 DNS 直接指向 IP——也就用不了了。

而 Worker 路由让自定义成为可能。

创建 Worker 路由规则(规则层)后,DNS 解析(解析层)就可以任意指向优选节点。这两件事都可以自己来做,不再依赖小黄云。

这就是经由 Worker 路由的流量能做优选的原因。

选择优选域名#

优选的核心就是选择一个国内访问速度更快的Cloudflare节点IP或域名。

常用的社区优选域名:https://cf.090227.xyz

这些优选域名通常是通过扫描Cloudflare官方IP段,找出国内延迟最低的IP整理而成。

使用优选域名#

直接使用 https://cf.090227.xyz,官方推荐优先使用自定义前缀的泛域名,例如 123.cf.090227.xyz

随后在你的域名 DNS 记录里添加一条 CNAME 记录,不要开启小黄云

添加CNAME记录
添加CNAME记录

之后想给其他站点也用这个优选,把站点 CNAME 解析到上面配置好的 123.cf.090227.xyz 即可。

各类优选方案#

Page/Worker 项目优选#

如果你需要优选 Page/Worker 项目,首先,如果你的项目是 Pages,需要先在 Pages 项目设置里迁移到 Workers。

接下来配置 Worker 路由:选择你的域名,路由模式填写 你的域名/*(例如 cf-blog.7o.nz/*)。

配置Worker路由
配置Worker路由

最后写一条 DNS 解析到上面配置的优选域名即可。

配置域名优选
配置域名优选

Worker 路由反代全球并优选#

本方法的原理是通过 Worker 反代源站,然后对 Worker 的入口节点做优选。这不是传统意义上的优选——源站收到的 Host 头仍是源站域名,所以源站不需要为优选域名额外配置 SSL/路由。

本方案可以优选Vercel,只需要将Vercel提供的域名填写进下面的配置即可。

点击计算 —> Wokers 和 Pages 创建应用程序 —> 从Hello Word!开始 —> 修改Worker name —> 点击部署 —> 右上角点击编辑代码,将下面代码粘贴进去,随后点击部署。

详情见下图:

创建CloudFlare Worker 并修改代码
创建CloudFlare Worker 并修改代码

// 域名前缀映射配置
// 示例:'cf-blog.7o.nz': 'cf-blog.'
// 则 Worker 路由 cf-blog.* 都会反代到 cf-blog.7o.nz
const domain_mappings = {
'源站.com': '最终访问头.',
};
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const url = new URL(request.url);
const current_host = url.host;
// 强制使用 HTTPS
if (url.protocol === 'http:') {
url.protocol = 'https:';
return Response.redirect(url.href, 301);
}
const host_prefix = getProxyPrefix(current_host);
if (!host_prefix) {
return new Response('Proxy prefix not matched', { status: 404 });
}
// 查找对应目标域名
let target_host = null;
for (const [origin_domain, prefix] of Object.entries(domain_mappings)) {
if (host_prefix === prefix) {
target_host = origin_domain;
break;
}
}
if (!target_host) {
return new Response('No matching target host for prefix', { status: 404 });
}
// 构造目标 URL
const new_url = new URL(request.url);
new_url.protocol = 'https:';
new_url.host = target_host;
// 创建新请求
const new_headers = new Headers(request.headers);
new_headers.set('Host', target_host);
new_headers.set('Referer', new_url.href);
try {
const response = await fetch(new_url.href, {
method: request.method,
headers: new_headers,
body: request.method !== 'GET' && request.method !== 'HEAD' ? request.body : undefined,
redirect: 'manual'
});
// 复制响应头并添加CORS
const response_headers = new Headers(response.headers);
response_headers.set('access-control-allow-origin', '*');
response_headers.set('access-control-allow-credentials', 'true');
response_headers.set('cache-control', 'public, max-age=600');
response_headers.delete('content-security-policy');
response_headers.delete('content-security-policy-report-only');
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: response_headers
});
} catch (err) {
return new Response(`Proxy Error: ${err.message}`, { status: 502 });
}
}
function getProxyPrefix(hostname) {
for (const prefix of Object.values(domain_mappings)) {
if (hostname.startsWith(prefix)) {
return prefix;
}
}
return null;
}

随后参考 Page/Worker 项目优选 进行配置即可

最后#

CloudFlare 的优选方案还有很多,外域优选、CloudFlare Tunnel 优选、CloudFlare R2 优选等,请点击这里查看更多。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
使用CloudFlare优选任何网站!
https://blog.olinl.com/posts/cf-fastip/
作者
顾拾柒
发布于
2026-06-13
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
顾拾柒
The world is big, you have to go and see.
公告
欢迎来到我的博客!
分类
标签
站点统计
文章
82
分类
8
标签
159
总字数
84,544
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.12.1
文章许可
CC BY-NC-SA 4.0

文章目录