October 21, 2024

Cloudflare Workers 代理/镜像加速

工具



步骤

  1. 打开Cloudflare并登陆。

  2. 左侧边栏选择Workers和Pages

    Screenshot 2024-11-03 at 5.05.08 PM

  3. 点击创建创建Worker来创建示例Hello World Worker。

    Screenshot 2024-11-03 at 5.06.38 PM

    Screenshot 2024-11-03 at 5.08.17 PM

  4. 给Worker起个名字,点击部署

    Screenshot 2024-11-03 at 5.09.23 PM

  5. 等待部署完成后,点击分配的域名(这里为anyname.xxxx.dev)即可访问刚创建好的Hello World Worker。可以看到浏览器页面输出Hello World!

  6. 点击编辑代码

    Screenshot 2024-11-03 at 5.12.10 PM

  7. 打开Github仓库jonssonyan/cf-workers-proxy,根据自己的需求选择合适的文件,docker.js_worker.js。这里使用的是_worker.js

  8. 打开_worker.js,全选复制其中内容。

    Screenshot 2024-11-03 at 5.13.28 PM

  9. 到Worker编辑代码页面,粘贴覆盖原代码,点击部署

    Screenshot 2024-11-03 at 5.14.02 PM

  10. 返回到刚刚创建的Worker,点击设置变量和机密+添加

    Screenshot 2024-11-03 at 5.15.27 PM

  11. 变量名称输入PROXY_HOSTNAME输入想要代理的网址。例如github.com。点击部署

    Screenshot 2024-11-03 at 5.17.18 PM

  12. 域和路由,点击+添加,选择自定义域

    Screenshot 2024-11-03 at 5.19.28 PM

    Screenshot 2024-11-03 at 6.44.35 PM

  13. 输入在Cloudflare托管域名的任意子域名。子域名可以随便起。点击添加域

    Screenshot 2024-11-03 at 6.45.34 PM

  14. 这时通过Cloudflare Workers建立的代理就完成了,可以通过访问刚输入的域来对想要代理访问的网站进行访问。

    Screenshot 2024-11-03 at 6.50.38 PM

    Screenshot 2024-11-03 at 6.51.52 PM-0

  15. 为避免自己的额度被他人使用,建议添加IP筛选,只允许白名单内的IP地址访问该Worker。

    如果不知道自己的IP地址可以使用WhatIsMyIPAddress来查询自己的公网IP地址。

  16. 变量和机密,点击+添加

    Screenshot 2024-11-03 at 6.53.38 PM

  17. 变量名称输入IP_WHITELIST_REGEX填入想要允许访问此Worker的IP地址

    如果有多个IP地址可以使用|分隔。例如(111.111.111.111|222.222.222.222)

    点击部署

    Screenshot 2024-11-03 at 6.54.40 PM

  18. 至此,Cloudflare搭建Workers代理完成。

    只有在IP白名单中的IP地址才可访问此Worker,否则会返回伪装页面。

    Welcome to nginx cf worker fake page



总结

  1. 如果想要使用此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
  2. 当无法访问Worker时记得检查想要访问此Worker的IP地址是否在IP白名单中。



参考

About this Post

This post is written by Andy, licensed under CC BY-NC 4.0.

#Cloudflare#Proxy