在国内访问 Hugging Face Spaces 速度较慢,且免费账户无法绑定自定义域名。本文记录了如何利用 Cloudflare Workers 反向代理,配合 Cloudflare for SaaS 功能,实现自定义域名访问及线路优化(优选 IP)。
前置准备
- Hugging Face 项目:已部署好的 Space(建议 Docker 或静态应用)。
- Cloudflare 账号:拥有一个托管在 CF 的域名(作为回退源,例如
delln.us.ci)。 - 国内 DNS 账号:拥有一个想绑定的对外域名(例如阿里云/腾讯云托管的
zznuo.com)。
第一步:获取 Hugging Face 直链
- 进入你的 HF Space 页面。
- 点击右上角
...-> Embed this space。 - 复制 Direct URL。
- 格式通常为:
https://用户名-项目名.hf.space - 注意:不要直接用浏览器地址栏的地址,那个带导航栏。
- 格式通常为:
第二步:部署 Cloudflare Workers
- 在 Cloudflare 后台 -> Workers & Pages -> Create Application。
- 创建一个新的 Worker,粘贴以下代码:
第三步:配置回退源 (Fallback Origin) —— 关键步骤
为了使用 SaaS 功能(CNAME 接入),我们需要配置一个“回退源域名”。假设使用 pan.delln.us.ci。
1. 添加虚拟 DNS 记录:
- 进入
delln.us.ci的 DNS 设置。 - 添加 A 记录:
- Name:
pan - IPv4:
192.0.2.1(这是个保留 IP,俗称黑洞 IP,用于占位) - Proxy Status: 必须开启 Proxied (橙色云朵)。
- Name:
2. 设置 Worker 路由 (Triggers):
- 进入刚才创建的 Worker -> Settings -> Triggers。
- 点击 Add Route (不要用 Custom Domains)。
- Route1:
pan.delln.us.ci/*(注意末尾的/*)。 - Route2:
*.zznuo.com/*(注意末尾的/*)。 - Zone: 选择
delln.us.ci。
原理:当请求到达 pan 子域名时,Worker 会拦截请求,因此流量不会真的去连
192.0.2.1。
第四步:开启 Cloudflare for SaaS
进入 delln.us.ci 的 SSL/TLS -> Custom Hostnames (自定义主机名)。
1. 设置回退源:
- Fallback Origin: 输入
pan.delln.us.ci。 - 等待状态变为 Effective (有效)。
2. 添加自定义域名:
- 点击 Add Custom Hostname。
- 输入你想对外的域名:
fp.zznuo.com。 - 按照提示,去阿里云/腾讯云添加 TXT 记录完成所有权验证。
第五步:国内 DNS 解析 (完成)
最后,去你的域名注册商(如阿里云 DNS):
- 记录类型:CNAME
- 主机记录:
fp - 记录值:
pan.delln.us.ci
进阶加速 (优选 IP): 如果你想优化国内访问速度,可以等将上面的 CNAME 记录改为 Cloudflare 优选 域名。
此处注意: 必须等自定义主机完成主机验证和证书验证后,才能将 CNAME 记录改为 Cloudflare 优选 域名,原因如下:
第六步:部署 Cloudflare Workers——应对Clouflare不定时主机验证和证书续期
- 在 Cloudflare 后台 -> Workers & Pages -> Create Application。
- 创建一个新的 Worker,粘贴以下代码:
验证
访问 https://fp.zznuo.com。 如果看到 Hugging Face 的界面,说明配置成功!
注意:如果 Hugging Face Space 处于休眠状态 (Sleep),初次访问可能需要等待几十秒用于容器冷启动,也可自行配置保活:
第七步:部署 Cloudflare Workers——Hugging Face保活
- 在 Cloudflare 后台 -> Workers & Pages -> Create Application。
- 创建一个新的 Worker,粘贴以下代码:
点击 Deploy 部署并设置定时触发。
结束:至此,整个教程结束。