使用 ==‌Cloudflare Tunnel‌== 将本地地址暴露到公网(以 localhost:3000 为例)

🌟 核心原理

Cloudflare Tunnel 通过建立加密的 ==‌出站连接‌==(无需开放公网端口),将本地服务安全映射到 Cloudflare 的全球网络,并生成公网可访问的域名。

🛠️ 操作步骤

1. ==‌**安装 Cloudflare 客户端 cloudflared**‌==

1
2
3
4
5
6
# Linux/macOS
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared

# Windows(PowerShell)
Invoke-WebRequest https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-windows-amd64.exe -OutFile cloudflared.exe

2. ==‌登录 Cloudflare 账户‌==

1
./cloudflared tunnel login
  • 自动跳转浏览器,选择需要绑定的域名完成授权。

3. ==‌创建隧道‌==

1
./cloudflared tunnel create tunnel_name  # 替换为自定义隧道名称(如 my-local-app)
  • 成功后会生成隧道 UUID 和配置文件路径(默认在 ~/.cloudflared/*.json)。

4. ==‌配置路由规则‌==

创建配置文件 config.yml

1
2
3
4
5
tunnel: tunnel_uuid_or_name
credentials-file: /path/to/credentials.json
ingress:
- hostname: your-subdomain.your-domain.com # 自定义公网域名
- service: http://localhost:3000service: http_status:404 # 未匹配请求返回404

5. ==‌启动隧道‌==

1
./cloudflared tunnel run tunnel_uuid_or_name
  • 服务会持续运行,公网域名 your-subdomain.your-domain.com 已指向你的本地服务。

⚙️ 可选高级配置

==‌绑定自定义域名‌==

  • 在 Cloudflare DNS 中添加 CNAME 记录:
    1
    2
    3
    Type: CNAME
    Name: your-subdomain
    Target: tunnel_uuid.cfargotunnel.com

==‌设置访问权限‌==

  • 在 Cloudflare Zero Trust 控制台(Access -> Applications)中配置:
    • 限制访问IP/地区
    • 添加身份验证(如邮箱验证、SSO)

📌 注意事项

  1. ==‌无需公网IP/端口开放‌==:所有流量通过 Cloudflare 加密代理。
  2. ==‌免费额度‌==:免费版支持单个用户并发连接,适合个人测试。
  3. ==‌性能优化‌==:若需高并发,可在配置中启用 warp-routing 或升级付费计划。

🌐 验证访问

访问 https://your-subdomain.your-domain.com,若看到本地服务内容,则映射成功!


✅ 以上方法避免了复杂的网络配置,且天然集成 Cloudflare 的安全防护(DDoS/WAF/CDN)。适合开发测试、临时演示或轻量级生产场景。