CloudFlare自选节点:PageFunction,实现cname接入,自选ip,反代网站,详细教程
CloudFlare默认的NS接入因各种原因(面向国内速度慢 无法自定义解析 不能分流)遭到诟病,而传统CNAME接入CloudFlare从2021年11月开始被通过API禁用,现在万能的网友(mjj?)得出一个曲折的解法:
- CloudFlare SaaS CNAME接入
但这需要用户信用卡绑定,并且默认只能回源一个ip或域名,回源多个需要在服务器上做相应的配置。
笔者略读了一下CloudFlarePage文档,并提出了另辟蹊径的方案:
- CloudFlare Page Function 自定义域名接入
其原理和CFworker相同,都是通过js来控制出入站流量。
使用CFPage时绑定域名**无需信用卡**,也**可以自选域名**,只要做好TXT和海外CNAME记录即可,并且可以回源多个站点。
CloudFlarePage是无流量限制的,唯一的弊端是一天只允许**10万次**请求,超出会直接中断。
然而请注意,使用Page接入将无法使用WAF防火墙,面对攻击时防护能力较弱。此外,无论是SaaS还是Page,都无法使用ArgoTunnel功能。
笔者测试用的仓库地址 https://github.com/ChenYFan/PageFunctionTest
只需要修改/functions/_middleware.js中的样例域名即可,之后直接Fork导入Page,不需要额外配置。
根据笔者的测试,回源节点和CloudFlareFree相同,即按照访客命中的节点数据中心回源,效果不如ArgoTunnel佳。
有大佬发现新出的cf pages function能够实现无须信用卡使用cname接入,于是我便研究了一下cloudflare的相关文档,给大家写个具体的教程
教程开始:
1、首先去 github.com/xyTom/cf-page-func-proxy 下载或是Fork该仓库
2、修改该仓库_worker.js中的url.hostname为你需要反代的网址或是需要cname接入,自选ip的地址
3、然后打开Cloudflare Dashboard,进入Pages管理页面,选择创建项目,如果在第一步中选择的是fork本仓库,则选择1 Connect to Git,如果第一步中选择的是下载本仓库则选择2 Direct Upload
绑定自定义域名
1.进入Cloudflare Pages管理页面,选择刚刚创建的Pages项目,点击名称进入项目设置页面
2.选择页面中的自定义域选项卡
3.选择设置自定义域
4.在页面中输入需要绑定的域名,并点击继续,这里的域名可以是子域名
5.在设置方法中选择开始cname设置
6.按照页面给出的说明去DNS服务提供商处修改DNS解析记录,即可完成自定义域名绑定
稍等一会,等待解析生效后就可以通过绑定的域名访问了,通过这种方式绑定的域名是cname接入,理论上可以自选ip
来自hostloc