Cloudflare 免费节点方案:Workers + Tunnel + 优选 IP 完整教程

Cloudflare 免费套餐功能很强,Workers、Tunnel、DNS 都能白嫖。这篇写怎么用它搭节点。


方案一:Workers Agent

原理:Workers 相当于一个运行在 Cloudflare 边缘的反代。请求先到 CF,CF 转发到你的源站。

创建 Worker → 部署以下代码:

JAVASCRIPT
const whitelist = new Set(['/v1/chat/completions', '/api/chat', '/health']);

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  const url = new URL(request.url);
  if (!whitelist.has(url.pathname)) {
    return new Response('Not Found', { status: 404 });
  }

  const target = new URL('http://你的源站IP:11434' + url.pathname + url.search);

  const headers = new Headers(request.headers);
  headers.set('Host', target.host);

  return fetch(target, {
    method: request.method,
    headers: headers,
    body: request.method !== 'GET' ? request.body : null,
  });
}

绑定自定义域名(Workers → 触发器 → 添加自定义域名),比如 ai-proxy.yourdomain.com

这样你的本地 Ollama API 就能通过 CF 的 CDN 访问了。免费 Workers 每天 10 万次请求,个人用够了。


方案二:Cloudflare Tunnel

Tunnel 不需要开端口,不需要公网 IP,内网机器也能暴露。适合家里 NAS、公司电脑跑 Ollama 但没公网 IP 的情况。

在 Cloudflare 网页上 → Zero Trust → Networks → Tunnels → 创建 Tunnel → 选 Docker 安装方式:

BASH
docker run -d --name cloudflared 
  cloudflare/cloudflared:latest tunnel --no-autoupdate run 
  --token 你的TOKEN

然后配置路由:Tunnel 设置 → Public Hostname → 添加:

  • Subdomain: ai
  • Domain: yourdomain.com
  • Service: http://localhost:11434

访问 https://ai.yourdomain.com 就能到你的本地 Ollama。

Tunnel 的好处:不需要服务器有公网 IP,不需要开端口,不需要搞证书。坏处是走 CF 中转,速度比直连慢一些。


方案三:优选 IP

CF 的节点 IP 在国内速度差异很大。手动找一个快的:

BASH
# 用 ipip 或类似工具扫描,找一个延迟低的 CF IP
# 然后直接访问 https://你的域名 --resolve yourdomain.com:443:优选IP

或者用 cf-checker 之类的工具批量扫。找到后改 hosts 文件或路由器 DNS 指定。

优选 IP 不稳定,CF 会换。建议加 cron 定期扫描,或者用自动优选脚本。


方案对比

方案 需要公网 IP 需要域名 免费 延迟
Workers Agent 源站要有 看源站位置
Tunnel 不需要 较高(中转)
优选 IP 不需要 看选到的 IP

三个方案可以叠加使用。Tunnel + 优选 IP 是目前内网穿透最稳的组合。

发表评论