Cloudflare Tunnel 做内网穿透

AI摘要
Cloudflare Tunnel 是一种无需公网IP或端口映射即可安全暴露内网服务的反向隧道技术。文章介绍了两种使用场景:临时尝鲜可使用TryCloudflare功能,无需注册或域名,通过命令生成随机域名;长期使用需注册免费Cloudflare账户并托管域名,通过命令行或Web面板创建隧道并绑定域名。核心功能免费,支持CDN、DDoS防护和SSL。内容为技术知识分享,无违规风险。

Cloudflare Tunnel 是 Cloudflare 提供的一种安全反向隧道技术,可以把你本机或内网的服务(比如一个网页、API)安全地暴露到公网,不需要你有公网 IP,也不用在路由器上开端口
它会在你的设备和 Cloudflare 全球网络之间建立一个加密的长连接,别人访问你指定的域名时,流量就会通过这个隧道转发到你本地的服务上。


需要注册吗?

  • 临时尝鲜 / 临时分享不需要注册,甚至不需要有域名。Cloudflare 提供一个叫 TryCloudflare 的功能,会随机生成一个 xxx.trycloudflare.com 域名直接穿透到你的本地服务。
  • 长期使用 / 绑定自己的域名需要注册一个免费的 Cloudflare 账户,并且你要有一个自己的域名,把这个域名的 DNS 托管到 Cloudflare(也是免费的)。

需要付费吗?

普通个人 / 小项目基本免费,所有核心功能在 Free 计划 下都可以用:

  • 创建隧道:免费,数量不限
  • 流量:Cloudflare 对 Tunnel 本身不按流量收费,也不设硬性带宽上限,遵循合理使用政策
  • 同时还能免费获得 Cloudflare 的 CDN、DDoS 防护、SSL 证书等

只有当你需要企业级功能(如更精细的访问控制、日志保留更久、专属 IP 等)时,才需要升级付费套餐。


怎么用?(分两种典型场景)

下面以 macOS / Linux 为例,Windows 操作类似。


场景一:临时分享(零配置,无需账号/域名)

  1. 安装 cloudflared

    # macOS
    brew install cloudflared
    
    # Linux (amd64)
    wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
    chmod +x cloudflared-linux-amd64
    sudo mv cloudflared-linux-amd64 /usr/local/bin/cloudflared
  2. 本地启动一个服务,比如 python -m http.server 8000,或你的项目运行在 localhost:3000

  3. 运行临时隧道

    cloudflared tunnel --url http://localhost:8000

    终端会输出一个类似 https://xxx.trycloudflare.com 的随机地址,把这个地址发给任何人,对方就能直接访问你本地的服务。
    Ctrl+C 即断开。


场景二:长期部署(绑定自己的域名)

前提: 你已经注册 Cloudflare 账号,并且把你的域名(如 example.com)添加到 Cloudflare,域名状态为 Active

  1. 安装 cloudflared(同上)

  2. 登录认证

    cloudflared tunnel login

    会在浏览器打开 Cloudflare 授权页面,选择你的域名,点击授权。

  3. 创建隧道

    cloudflared tunnel create my-tunnel

    这条命令会生成隧道的凭证文件(存于 ~/.cloudflared/<tunnel-id>.json),并返回一个 Tunnel ID。

  4. 将域名指向隧道

    cloudflared tunnel route dns my-tunnel app.example.com

    这会在 Cloudflare DNS 里自动加一条 CNAME 记录,把 app.example.com 指向你的隧道。

  5. 编写配置文件
    创建 ~/.cloudflared/config.yml

    tunnel: <你的Tunnel ID>
    credentials-file: /home/你的用户名/.cloudflared/<tunnel-id>.json
    
    ingress:
      - hostname: app.example.com
        service: http://localhost:3000
      - service: http_status:404

    这里把 app.example.com 的访问转发到本地的 3000 端口。

  6. 运行隧道

    cloudflared tunnel run my-tunnel

    访问 https://app.example.com 即可到达你本地的服务(Cloudflare 会自动加上 HTTPS)。

  7. 设置开机自启 / 后台运行

    sudo cloudflared service install

    (Linux 下会注册 systemd 服务;macOS 可用 launchd 或 brew services)


额外提示:用 Web 面板管理(可视化)

你也可以直接在浏览器里操作:
进入 Cloudflare Zero Trust 仪表板 → NetworksTunnels,点 “Create a tunnel”,按向导完成安装、配置、DNS 指向,完全不用手写命令。


本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
躺平大叔 @ 躺平社区
文章
202
粉丝
18
喜欢
111
收藏
64
排名:247
访问:3.9 万
私信
所有博文