在日常开发或个人使用中,我们经常会遇到需要从公网访问内网服务的场景,比如远程连接家中的 NAS、访问本地搭建的 Web 服务器,或者调试内网中的 API 接口。传统的内网穿透方案往往需要购买独立 IP、配置端口映射,不仅操作繁琐,还可能面临安全风险。而今天要介绍的Cloudflare Tunnel,将彻底改变这种局面 —— 它无需公网 IP,无需暴露端口,借助 Cloudflare 的全球网络,就能安全、稳定地实现内网穿透。本文将重点介绍如何通过 Docker 部署 cloudflared,并采用无配置文件的命令行配置方式,让操作更简洁高效。

什么是 Cloudflare Tunnel

Cloudflare Tunnel 是 Cloudflare 推出的一款内网穿透工具,其核心原理是通过在本地部署一个轻量级代理程序(cloudflared),让内网服务与 Cloudflare 的全球边缘节点建立加密连接。当公网用户访问你的域名时,请求会先到达 Cloudflare 节点,再通过这条加密隧道转发到内网服务,全程无需暴露内网 IP 和端口,安全性大幅提升

与传统方案相比,它的优势显而易见:

  • 无需公网 IP:哪怕你的网络没有独立公网 IP,也能轻松穿透
  • 零端口暴露:无需在路由器上配置端口映射,避免内网暴露带来的安全隐患
  • 免费可用:基础功能完全免费,满足个人和小型团队的需求
  • 自带 CDN 加速:依托 Cloudflare 的全球节点,访问速度更快、更稳定
  • HTTPS 支持:自动配置 SSL 证书,让内网服务轻松实现 HTTPS 访问
  • 支持多平台:Windows、Linux、macOS、Docker

准备工作:这些东西你需要提前准备好

在开始配置前,请确保你已经准备好了以下内容:

  1. 一个 Cloudflare 账号:前往Cloudflare 官网注册,免费账号即可
  2. 一个已托管在 Cloudflare 的域名:需要将域名的 DNS 解析托管到 Cloudflare(如何托管?在 Cloudflare 后台添加域名,按照提示修改域名的 NS 服务器即可)
  3. 内网服务:比如本地的 Web 服务器(Nginx、Apache)、NAS 管理界面、SSH 服务等,确保服务在本地可以正常访问(例如http://10.10.10.10:8080
  4. Docker 环境:已安装 Docker 并确保服务正常运行(可通过docker --version验证)

配置步骤:

1、登录 Cloudflare 官网:https://dash.cloudflare.com
2、左侧导航栏点击Zero Trust
3、开 CloudFlare Zero Trust 工作台,绑定你的支付方式就可以了,这里我已经绑定过了就不截图了
4、在 网络 中 找到 Tunnels , 并点击右侧的 "创建隧道"
screenshot-20250729-153628.png
5、选择 Cloudflare点击下一步
screenshot-20250729-153834.png
6、输入隧道名,点击保存隧道
7、然后就来到了下载客户端的页面,这里可以根据你的需求选择下载 Cloudflare Tunnels 使用的客户端,类似于 npc,frp这种客户端软件,这个客户端可以安装到你内网中任何一台机器上,也可以将其安装到您的 OpenWrt 中进行使用,非常规设备推荐使用 Docker 进行部署
screenshot-20250729-154106.png
8、配置完成后在 Tunnels 控制台中会看到你创建的隧道为活跃状态
screenshot-20250729-154154.png
9、点击该隧道 → 添加一个 公共主机名(Public Hostname)
10、然后我们需要填写你的子域名以及托管的域名,类型选择 HTTP,URL 为内网中的IP地址+端口,就算你的内网中使用的是 HTTP 协议,Cloudflare 也会自动帮你添加 SSL 证书
screenshot-20250729-154617.png
11、访问该域名,请求成功
screenshot-20250729-155211.png

最后修改:2025 年 07 月 29 日
如果觉得我的文章对你有用,请随意赞赏