Cloudflare Workers 介绍
Cloudflare Worker 是 Cloudflare 提供的一种轻量级、无服务器(Serverless)的计算平台,允许开发者将代码直接部署到 Cloudflare 的全球边缘网络中。通过 Cloudflare Worker,开发者可以创建和运行分布式的、快速响应的 Web 应用程序、API 或其他功能,而无需维护传统的服务器架构。
核心特点
- 运行在边缘网络
Cloudflare Worker 在 Cloudflare 的全球 200 多个数据中心运行,可以将代码部署到最接近用户的节点,从而显著降低延迟。 - 基于 JavaScript 和 Web 标准
Worker 使用标准的 JavaScript 和 Web API(如 Fetch 和 Streams),让 Web 开发者快速上手,同时支持 TypeScript。 - 无服务器架构
无需设置、维护或扩展服务器,开发者只需专注于编写代码,部署后由 Cloudflare 自动扩展并处理流量。 - 高性能
每个 Worker 在 V8 引擎(和 WebAssembly)中运行,启动时间极短(通常在几毫秒以内),可以承载大规模请求。 - 灵活计费
Cloudflare Workers 提供免费额度,并基于使用情况收费,适合小型项目和企业级应用。
适用场景
- 边缘缓存和流量优化
通过 Workers 实现动态的缓存控制、内容修改或自定义响应。例如,可以根据用户地理位置提供个性化内容。 - API 网关
Workers 可用作快速轻量的 API 网关,通过内置 KV 存储或外部服务处理请求和返回数据。 - 安全检查
可以在边缘拦截恶意请求、添加自定义安全规则或执行 WAF(Web 应用防火墙)增强功能。 - 页面重写
动态修改 HTTP 请求和响应,例如 URL 重写、Header 操作或注入内容。 - 数据处理
Workers 适合执行简单的数据计算或实时处理任务,而不依赖传统后端。
工作机制
- 触发
Worker 会在用户访问 Cloudflare 的边缘节点时被触发。开发者可以通过 Cloudflare Dashboard 或 API 为特定域名的路径或路由绑定 Worker。 - 执行
Worker 脚本会拦截 HTTP 请求,处理数据(如重写、转发、缓存),并返回 HTTP 响应。 - 部署
使用wrangler
CLI 工具进行部署,几秒钟即可让代码生效。
高级功能
- KV 存储
Workers KV 是一个分布式键值存储,用于存储少量数据并在全球节点中快速访问。 - Durable Objects
提供一种轻量级的状态存储机制,用于处理需要持久化和同步的数据。 - R2 存储
面向对象的存储解决方案,适用于大文件或持久化资源的边缘分发。 - WebAssembly
支持运行 WebAssembly 模块,提升性能和计算能力。
优势
- 全球低延迟:基于 Cloudflare 的全球网络,提供优异的响应速度。
- 开发简单:使用标准 JavaScript 和轻量工具链。
- 无缝集成:与 Cloudflare 的其他服务(如 CDN、防火墙、DNS)无缝协作。
- 高可靠性:依赖 Cloudflare 的基础架构,确保高可用性。
适合人群
- 开发者:希望快速上线轻量级功能或微服务。
- 企业:需要边缘计算优化流量,或在全球提供一致性能的服务。
- 个人项目:免费额度友好,非常适合小型应用或测试。
准备工作
搭建科学上网节点需要:
- Cloudflare 账户
注册地址:https://dash.cloudflare.com/sign-up - Cloudflare Worker
确保 Cloudflare Worker 可用(免费账户有 10 万次/月免费请求)。 - 域名
注册并在 Cloudflare 中添加一个域名(支持.us.kg
免费域名等)。
.us.kg
免费域名注册教程查看:https://www.233id.com/index.php/2025/01/05/us-kg-free-domain-name-registration-tutorial/ - 客户端工具
确保客户端(如 V2Ray、Shadorocket、Clash 等)支持 WebSocket over HTTP(S) 和伪装路径。
Cloudflare Workers 配置项目
1.创建项目
登录 cloudflare 之后,点侧边 “Workers 和 Pages”,然后点”创建 Worker”。
在这个界面我们可以在名称这里,使用默认的名称就行,之后点击部署。
点击”编辑代码”
先删掉默认的代码
2.获取 worker.js 代码
首先注册一个 Github 账户,注册地址是:https://github.com/signup
然后我们打开项目地址:https://github.com/yoyo0520/edgetunnel,然后点击 Fork ,最后点击 Create fork。
然后我们需要编辑一下 “明文源码.js”
建议编辑一下 userID,可以在 userID 生成地址 生成一个 UUID 替换上面默认的 userID ,替换之后点击 Commit changes 提交修改,然后点击 Actions。
然后点击 I understand my workflows, go ahead and enable them
点击侧边 Obfuscate and Commit ,然后点击 Run workflow 菜单里面的 Run workflow。
等个1分钟左右,我们刷新一下页面,会出现成功 Obfuscate and Commit,之后我们点击 Code。
点击更新后的_worker.js 文件
复制这个文件代码
3.在 Cloudflare Workers 部署代码
我们回到 Cloudflare Workers 页面,粘贴到 worker.js 里面,最后点击部署。
4.查看 Vless 节点订阅链接
然后我们复制 Cloudflare Workers 页面里面的链接,链接后面加上 userID,在浏览器打开就可以看到订阅链接了,之后就是去代理客户端订阅节点就可以使用了。
绑定自定义域名(可跳过)
因为 worker 的默认生成域名已经被墙,无法通过 worker 的默认生成域名订阅出来节点。如果你本身所处外网环境可以直接用 worker 的默认生成域名订阅出来节点。
如果需要自己的域名进行订阅,需要绑定一个自定义域名,实现直连访问。
如果没有自己的域名,可以免费注册一个,如何注册可以查看文章:https://www.233id.com/index.php/2025/01/05/us-kg-free-domain-name-registration-tutorial/
添加一个子域名即可,之后可以访问自己的域名,例如:https://vless.233id.us.kg/uuid
客户端如何订阅节点
客户端需要支持 Vless 协议才能订阅出节点,这里以 Clash Verge Rev 为例:
下载地址:
- Github 下载地址:https://github.com/clash-verge-rev/clash-verge-rev/releases
- 本站收藏的版本(v2.0.2):点击查看 (密码: XJoJDATBXb)
打开 Clash Verge Rev 点击侧边”订阅”,订阅文件链接框里面粘贴订阅地址,然后点击”导入“。
选择节点,点击 Clash Verge Rev 侧边”代理“,选择一个带地区的节点,有的订阅会自动选择可以不要选择。
开启代理,访问外网。点击 Clash Verge Rev 侧边”设置“,找到系统代理开关,打开它即可。然后就大功告成了,可以试试访问一下 Google 是否成功。
如何优选代理IP
Cloudflare Workers 是搭建在 Cloudflare 边缘计算网络上的,所以仍然可以通过优选 IP 的方式加速访问
默认域名为 www.visa.com.hk ,可以替换成任意套了 Cloudflare CDN 的域名(如www.gov.se speed.cloudflare.com),也可以搭配IP优选将地址改为 Cloudflare EndPoint 边缘IP。
如果直接使用 IP 可以直接访问 https://stock.hostmonit.com/CloudFlareYes 查看适合自己的IP。
选好 IP 后更换代理客户端的连接地址即可:
注意事项
Cloudflare Worker 是一个功能强大的边缘计算平台,但使用它搭建科学上网节点需要特别注意流量限制、安全性和合法性问题。合理规划并遵循相关规定,可以最大限度发挥其作用,同时避免不必要的风险。
使用 Cloudflare Worker 时需要注意以下事项,以确保服务的稳定性、安全性和合法性,同时避免违反 Cloudflare 的服务条款:
1. 合法合规使用
- 遵守法律法规:科学上网涉及敏感内容,在搭建节点时,请确保遵守所在国家/地区的法律法规。
- 符合 Cloudflare 服务条款:Cloudflare 明确禁止将其服务用于绕过地理限制或从事非法活动,滥用 Worker 功能可能会导致账户被封禁。
2. 性能与流量限制
- 免费账户限制:
- 每个 Worker 的免费请求上限为 10 万次/月。
- Worker 的最大执行时间为 50 毫秒(超出可能会被强制中断)。
- 带宽与流量计费:
- Worker 的运行不包含大流量传输优化,长时间保持连接(如 WebSocket 代理)可能会导致性能问题,建议合理规划。
- 免费账户不能完全满足高负载场景,可以选择升级为付费套餐(Workers Bundled 或 Unbound)。
3. 安全性
- 流量伪装:
- Worker 返回的内容可设计为伪装成普通的静态资源(如 HTML 页面、JSON 数据等),避免被识别为代理流量。
- 后端服务器建议同时伪装路径(如
/api
)。
- 访问控制:
- 限制客户端访问:可通过验证机制(如 Token、UUID)确保只有授权用户能够使用代理服务。
- 防止滥用:配合后端工具(如 Fail2ban)限制恶意请求。
4. Worker 脚本限制
- 脚本大小:每个 Worker 的脚本大小限制为 1 MB。
- 内存限制:Worker 的内存使用限制为 128 MB。
- 动态行为限制:
- 禁止持续运行任务(如无限循环或过长的 WebSocket 保持)。
- Worker 不适合处理高负载、长时间的大规模计算任务。
5.避免被封
- 低调使用:
- 不要大规模公开分享 Worker 节点,避免流量激增。
- 设置合理的流量控制策略,防止触发 Cloudflare 的风控机制。
- 定期维护:
- 定期检查 Worker 和后端配置,防止潜在的性能问题或安全漏洞。
“绑定自定义域名绑定自定义域名” 这一步有些问题
默认的dev被墙无法读取无法订阅,
自定义域,只能添加 vless.233id.us.kg 的形式,无法添加“https://vless.233id.us.kg/uuid”
而 vless.233id.us.kg 在软件里面无法订阅,带识别id的又无法被添加
没办法建立起自己的订阅