Cloudflare Worker简介
随着云服务发展日渐完善,以亚马逊云的 AWS Lambda 为首的 Serverless(无服务器应用)服务早在几年前就已经开始普及。
Serverless 服务商提供了一个无需预置或管理基础设施即可运行代码的环境,换句话说就是现在不仅不需要管理自己的硬件服务器、网络等,甚至连购置云服务器或者容器平台都不再需要,只要用户编写和部署代码到 Serverless 平台即可。
CF 借助于他们分布在全球每个角落的大量边缘节点的优势,与传统无服务供应商将 Serverless 部署与各个中心机房不同,CF workers 将用户的函数服务部署在 他们的边缘网络(Edge Network)中,这使函数服务更加接近于客户端测,从而提供更优质的体验。
(抄的,大家知道Cloudflare作为cdn服务商,可以利用cdn网络的优势来实现 Serverless 应用即可)
Cloudflare Worker免费方案拥有10万次/日的请求限额,对于个人使用已经足够,基本没有被墙的cdn条件也给布置一些反向代理类的应用创造了条件。
Cloudflare Worker的用法
首先登录Cloudflare账号
由于Worker的默认子域workers.dev被墙(废话这么多人用一个域名不被墙才怪),需要自己有一个域名并在Cloudflare处托管,可以按照我在Hexo搭建博客部署到Github Pages的个人经验上的写的办法,注册us.kg域名,或者也可以按照下面这个Youtube视频的办法。
打开Worker页面,点击创建
创建成功后点击编辑代码,就可以进入Workers的代码编辑器,其实是一个在线VSCode
部署之后可以到设置-域与路由处添加自定义域名
这样就可以用自己的域名访问Cloudflare Worker上部署的项目了。
Cloudflare Worker上的的DOH转发器
这个项目来自tina-hello/doh-cf-workers。弄这个的背景是我常用的代理软件Mihomo Party和Flclash都有覆写配置文件DNS的选项,我就想自己搭建一个利用Cloudflare边缘节点的dns-over-https服务器,搭配自己的域名,实现对被阻断的cloudflare官方doh的代理。
代码并不复杂,原始项目也是开源的,简单来说就是把cloudflare或者其它DOH服务进行反向代理,在请求dns解析时将解析转发给给定的DOH服务器。
1 | var __defProp = Object.defineProperty; |
另外也可以尝试一下Mozilla开源的serverless dns项目,这是基于Mozilla的Rethink DNS的DNS项目,支持DOH和DOT,还可以设置广告和追踪器过滤,我也部署了一个,打算后面改造家庭网络的过程中作为无污染DNS服务器的上游使用。
用Cloudflare Worker反代下载Docker镜像
感谢青柠大佬的帮助,在Docker镜像站大量关闭、Docker镜像拉取困难的环境下,这个反代给一般路过开发者和玩家不少选择。
在这里给出大佬的原链接,有需要的可以自己部署一个:https://qninq.cn/archives/cfdockerfast.html
用Cloudflare Worker反代Github资源
由于各种原因,Github相关的资源在中国内地访问并不顺畅,尤其是我的移动宽带,是知名的墙中墙。有一个Github的反代还是比较重要的。
其使用的是这位老哥的项目。这个项目也是可以使用Cloudflare Worker来部署的。
余谈
Cloudflare的cdn节点在全中国的访问速度依旧飘忽不定,大约在50-300ms不等,但至少比访问不上好。
优选IP的玩法我还没学会,等学会了再写吧。
在学习Cloudflare Worker的过程中,我还了解到了一个逆天玩意——用Cloudflare Worker部署Vless节点。虽然我最后还是尝试了一下,但是要知道这是明确违反Cloudflare的用户条款的
Unless otherwise expressly permitted in writing by Cloudflare, you will not and you have no right to:
…
(j) use the Services to provide a virtual private network or other similar proxy services.
所以在这里我就不推荐了,确有需要者可以自行谷歌。