跳转至

Cloudflare Tunnel教程|无公网IP免费实现本地网站公网访问【完整版】

很多个人开发者、本地建站用户都会遇到一个核心难题:本地电脑搭建的网站、Web服务、测试接口,没有公网IP、无法配置路由器端口转发,外网完全无法访问。

传统内网穿透工具大多有时长限制、随机域名、限速收费等问题,而 Cloudflare Tunnel 是 Cloudflare 官方推出的免费安全隧道服务,无需公网IP、无需开放防火墙入站端口、支持自定义域名,全程通过出站连接打通本地服务与公网,是目前个人建站、本地服务外网访问的最优方案之一。

本文结合官方最新规范,完整讲解 Cloudflare Tunnel 工作原理、核心优势、实操部署步骤,手把手教你将本地站点映射到自定义公网域名,实现永久稳定外网访问。

一、什么是 Cloudflare Tunnel?

Cloudflare Tunnel 是 Cloudflare 推出的零信任安全反向隧道服务,核心作用是将本地服务器、电脑、内网服务安全暴露至公网互联网。区别于传统端口映射,它采用 仅出站连接(outbound-only) 架构,彻底规避本地服务器IP、端口直接暴露在公网的安全风险。

该服务依托 Cloudflare 全球边缘网络运行,通过轻量级客户端程序 cloudflared 建立持久加密隧道,外网所有访问请求均经过 Cloudflare 节点转发,不会直接触碰本地内网资源,兼顾实用性与安全性。

1.1 Cloudflare Tunnel 核心工作原理

整个隧道通信流程简单清晰,全程无需公网IP、无需路由器配置,适配家庭宽带、公司受限网络等所有场景:

  1. 客户端发起出站连接:本地设备安装运行 cloudflared 守护进程,主动向 Cloudflare 全球数据中心发起出站加密连接,所有连接由本地向外建立,防火墙默认放行无需特殊配置。

  2. 创建唯一持久隧道:系统生成专属 UUID 作为隧道唯一标识,建立本地服务与 Cloudflare 边缘网络的持久逻辑链路,支持多进程并发连接,自动就近接入最优节点。

  3. 域名路由映射转发:在 Cloudflare 控制台配置域名解析规则,将自定义域名与隧道绑定,外网用户访问域名时,请求会先到达 Cloudflare 边缘服务器。

  4. 双向安全传输数据:Cloudflare 将公网请求通过加密隧道转发至本地对应服务,响应数据原路返回,实现外网访问本地站点的双向通信。

  5. 全程安全防护:所有流量经过 Cloudflare 加密校验,默认开启 DDoS 防护、SSL/TLS 加密,可搭配 Zero Trust 策略实现权限管控。

1.2 核心功能特点

  • 零公网IP、零端口转发:彻底摆脱运营商无公网IP、路由器端口映射失效问题,仅依靠出站连接即可搭建公网访问通道。

  • 免费稳定无时长限制:个人非商用场景全程免费,无 ngrok 免费版2小时强制断开、连接数限制等弊端,可长期稳定运行。

  • 自定义域名支持:无需随机临时域名,可绑定自己的备案/非备案域名,搭建专属公网访问地址。

  • 全方位安全防护:隐藏本地真实IP与端口,规避外网扫描攻击,自带 DDoS 防护、HTTPS 加密,支持访问权限白名单配置。

  • 多协议兼容:不仅支持 HTTP/HTTPS 网站服务,还可适配 SSH、RDP 远程桌面、API 接口、NAS 服务等各类内网资源。

  • 零防火墙配置:采用仅出站连接模式,无需开放本机、路由器入站端口,最大程度降低内网暴露风险。

1.3 适用使用场景

  • 本地开发网站、前端项目、后端接口,需要公网地址测试微信/钉钉 Webhook、第三方回调

  • 家用电脑、NAS、小型服务器搭建站点,无公网IP需要外网远程访问

  • 替代传统VPN,实现个人内网资源安全远程访问

  • 临时演示项目、线上调试BUG,快速生成稳定公网访问链接

  • 小微企业内网服务对外安全发布,规避公网暴露风险

1.4 Cloudflare Tunnel vs ngrok 对比优势

作为两款主流反向隧道工具,Cloudflare Tunnel 在个人使用场景中优势显著,完美解决 ngrok 免费版痛点:

  • 稳定性更强:ngrok 免费版每2小时强制断开重连,Cloudflare Tunnel 无固定时长限制,支持7×24小时挂机运行。

  • 域名更灵活:ngrok 免费版仅支持系统随机域名,Cloudflare Tunnel 支持绑定自有自定义域名。

  • 安全性更高:依托 Cloudflare 全球防护体系,自带 CDN 加速、DDoS 防护、SSL 加密,ngrok 无额外安全防护能力。

  • 性价比更高:个人基础功能完全免费,无带宽限流、无连接数硬性限制,无隐性收费。

二、实操教程:Cloudflare Tunnel 部署本地网站公网访问

下面以 Windows 系统为例,完整演示将本地 http://localhost:2175 网站服务,映射到自定义域名 自定义域名 的全过程,零基础可直接照搬操作。

2.1 前期准备

  • 注册 Cloudflare 账号,将自有域名托管至 Cloudflare DNS 解析

  • 本地正常运行网站服务(本文端口为2175,可自行替换)

  • 电脑联网正常,放行443端口出站访问(默认网络均支持)

2.2 安装 cloudflared 客户端

cloudflared 是 Cloudflare Tunnel 唯一官方客户端,也是实现隧道连接的核心程序,需从官方渠道下载安装:

官方安装地址:https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/

下载 Windows 版本 cloudflared.exe,建议统一放置在固定目录,例如C:\cloudflared\,避免路径变动导致服务失效。

2.3 绑定 Cloudflare 账户认证

以管理员身份打开 PowerShell,执行认证命令,将客户端与你的 Cloudflare 账号绑定:

1
cloudflared.exe service install eyJh...

注意:上述令牌为示例,需替换为你自己的 Cloudflare 专属认证令牌,可在 Cloudflare 仪表盘隧道配置页面获取,切勿泄露他人。

执行成功后,客户端将完成账号授权,具备创建和管理隧道的权限。

2.4 创建专属隧道

执行以下命令,创建名为 share 的自定义隧道(名称可自定义):

1
cloudflared tunnel create share

命令执行成功后,系统会自动生成隧道 UUID 和专属凭证 JSON 文件,输出示例如下:

1
2
3
Tunnel credentials written to C:\Users\Devops\.cloudflared\隧道 UUID.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.

Created tunnel share with id 隧道 UUID

重要提醒:凭证文件包含隧道权限信息,需妥善保存,泄露后可能被他人滥用,如需作废可直接在控制台删除对应隧道。

2.5 编写隧道配置文件 config.yml

在路径 C:\Users\Devops\.cloudflared\ 下新建 config.yml 配置文件,写入隧道映射规则,实现域名与本地服务绑定:

1
2
3
4
5
6
tunnel: share
credentials-file: C:\Users\Devops\.cloudflared\隧道 UUID.json
ingress:
  - hostname: 自定义域名
    service: http://localhost:2175
  - service: http_status:404

配置参数说明:

  • tunnel:对应刚刚创建的隧道名称,必须完全一致

  • credentials-file:自动生成的凭证文件完整路径,需精准对应

  • hostname:需要用于公网访问的自定义域名

  • service:本地运行的网站服务地址(端口根据自身项目修改)

  • http_status:404:非法访问返回404,避免恶意扫描探测

2.6 配置 DNS 域名解析

两种方式可完成域名与隧道的绑定,任选其一即可:

方式一:命令行自动配置(推荐)

1
cloudflared tunnel route dns share 自定义域名

方式二:控制台手动添加 CNAME 记录

登录 Cloudflare 域名控制台,新增解析记录:

记录类型 主机记录 解析目标
CNAME share 隧道 UUID.cfargotunnel.com

解析生效通常1-5分钟,部分域名需等待DNS缓存刷新。

2.7 启动 Cloudflare Tunnel 隧道

执行完整启动命令,加载配置文件并运行隧道:

1
cloudflared tunnel --config C:\Users\Devops\.cloudflared\config.yml --origin-ca-pool C:\Users\Devops\.cloudflared\ca-certificates.pem --logfile C:\Users\Devops\.cloudflared\cloudflared.log run share

参数说明:

  • --config:指定隧道配置文件路径

  • --origin-ca-pool:CA证书路径,保障连接安全(企业环境必备)

  • --logfile:日志输出路径,方便后续排查报错

启动无报错即代表隧道搭建成功,此时可通过公网域名访问本地网站。

2.8 测试公网访问

浏览器打开 https://自定义域名,即可正常访问本地 localhost:2175 服务。

访问异常排查要点:

  • 确认本地网站服务正常运行、端口未占用

  • 检查DNS解析记录是否生效、指向地址是否正确

  • 查看 cloudflared.log 日志文件,定位连接报错问题

  • 确认本地网络443端口出站未被防火墙拦截

2.9 设置 Windows 系统开机自启服务

为避免每次开机手动启动隧道,可将 Cloudflare Tunnel 注册为系统自动服务,实现永久后台运行。

管理员PowerShell执行安装服务命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 创建系统自启服务
sc create CloudflaredTunnel binPath= "C:\Program Files (x86)\cloudflared\cloudflared.exe tunnel --config C:\Users\Devops\.cloudflared\config.yml run share" start= auto DisplayName= "CloudflaredTunnel Service"

# 添加服务描述
sc description CloudflaredTunnel "Cloudflare Tunnel 本地服务公网访问隧道"

# 设置服务故障自动重启
sc failure CloudflaredTunnel reset= 30 actions= restart/5000

# 启动服务
sc start CloudflaredTunnel

卸载服务命令(无需隧道时使用):

1
sc delete CloudflaredTunnel

三、Cloudflare Tunnel 免费版使用限制

  • 带宽限制:个人免费版无明确带宽上限,正常建站、测试、日常访问无压力,仅恶意高频流量会被限流

  • 功能限制:负载均衡、高级Zero Trust权限策略、企业级监控等功能需付费套餐

  • 域名要求:需使用托管在 Cloudflare 的域名,可免费将自有域名转入

四、常见问题汇总排查

Q1:隧道启动成功,但外网无法访问?

优先检查本地服务可用性、DNS解析状态、防火墙出站规则,多数问题为端口配置错误或解析未生效导致。

Q2:隧道频繁断线、连接不稳定?

开启系统服务故障自动重启功能,同时检查本地网络稳定性,避免内网IP变动、网络重连导致隧道中断。

Q3:如何彻底关闭/删除隧道?

前台运行按 Ctrl+C 终止进程,永久删除可执行 cloudflared tunnel delete share,同时删除本地凭证文件即可。

五、总结

Cloudflare Tunnel 凭借免费、安全、稳定、无公网IP要求、支持自定义域名的核心优势,成为个人本地建站、内网服务外网访问的最佳方案。区别于传统端口映射和临时穿透工具,其仅出站的连接架构从根源上规避了服务器暴露风险,搭配 Cloudflare CDN、DDoS 防护,兼顾实用性与安全性。

按照本文完整步骤,零基础用户可快速实现本地网站、测试接口、NAS服务等资源的永久公网访问,完美适配开发测试、个人建站、远程运维等各类场景。