工具
- jonssonyan/cf-workers-proxy
- Cloudflare Workers
- 任意域名并托管在Cloudflare上(使用Cloudflare DNS解析)
步骤
打开Cloudflare并登陆。
左侧边栏选择
Workers和Pages。
点击
创建,创建Worker来创建示例Hello World Worker。

给Worker起个名字,点击
部署。
等待部署完成后,点击分配的域名(这里为
anyname.xxxx.dev)即可访问刚创建好的Hello World Worker。可以看到浏览器页面输出Hello World!点击
编辑代码。
打开Github仓库jonssonyan/cf-workers-proxy,根据自己的需求选择合适的文件,
docker.js或_worker.js。这里使用的是_worker.js。打开
_worker.js,全选复制其中内容。
到Worker编辑代码页面,粘贴覆盖原代码,点击
部署。
返回到刚刚创建的Worker,点击
设置,变量和机密,+添加。
变量名称输入PROXY_HOSTNAME,值输入想要代理的网址。例如github.com。点击部署。
域和路由,点击+添加,选择自定义域。

在
域输入在Cloudflare托管域名的任意子域名。子域名可以随便起。点击添加域。
这时通过Cloudflare Workers建立的代理就完成了,可以通过访问刚输入的域来对想要代理访问的网站进行访问。


为避免自己的额度被他人使用,建议添加IP筛选,只允许白名单内的IP地址访问该Worker。
如果不知道自己的IP地址可以使用WhatIsMyIPAddress来查询自己的公网IP地址。
变量和机密,点击+添加。
变量名称输入IP_WHITELIST_REGEX,值填入想要允许访问此Worker的IP地址。如果有多个IP地址可以使用
|分隔。例如(111.111.111.111|222.222.222.222)。点击
部署。
至此,Cloudflare搭建Workers代理完成。
只有在IP白名单中的IP地址才可访问此Worker,否则会返回伪装页面。

总结
如果想要使用此Worker作镜像加速,可以修改
变量和机密下的PROXY_HOSTNAME为镜像仓库地址即可。例如
镜像仓库 地址 docker registry-1.docker.io k8s-gcr k8s.gcr.io k8s registry.k8s.io quay quay.io gcr gcr.io ghcr ghcr.io cloudsmith docker.cloudsmith.io ecr public.ecr.aws 当无法访问Worker时记得检查想要访问此Worker的IP地址是否在IP白名单中。
参考
About this Post
This post is written by Andy, licensed under CC BY-NC 4.0.
Next
Unable to access Synology local network via Chrome on macOS Sequoia fix
Previous