LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

[点晴永久免费OA]内网穿透终极方案:cloudflared免费隧道,无需公网IP,5分钟上手

zhenglin
2026年7月22日 9:34 本文热度 229

家里 NAS、树莓派、本地开发环境想对外提供服务,却没有公网 IP?传统方案要么找运营商要公网 IP(难如登天),要么折腾端口映射(安全隐患一大堆)。今天给你介绍一个优雅到不行的解决方案——用 Docker 跑一个 cloudflared,把本地服务直接接入 Cloudflare 的全球网络,免费、安全、零配置 SSL。

什么是 cloudflared?

cloudflared 是 Cloudflare 官方开源的 Tunnel 客户端。它的核心思路很简单:在你的服务器上运行一个轻量级代理,主动与 Cloudflare 的边缘节点建立加密隧道。外部用户访问你的域名时,流量先到达 Cloudflare 的全球 CDN,然后通过隧道安全地转发到你的内网服务。

说白了,你不需要公网 IP,不需要路由器端口映射,甚至不需要开放任何防火墙规则。Cloudflare 帮你把一切搞定。

核心特性

完全免费:Cloudflare Tunnel 本身免费使用,无需付费套餐。你只需要拥有一个绑定到 Cloudflare 的域名即可。

零 SSL 配置:Cloudflare 自动为你的服务提供 HTTPS 证书,无需自己折腾 Let's Encrypt 或手动续期。

隐藏源站 IP:外部流量经过 Cloudflare 边缘节点,你的服务器真实 IP 完全不可见,天然防 DDoS。

支持多种协议:HTTP/HTTPS、TCP、SSH、RDP、VNC、WebSocket……几乎所有协议都能通过 Tunnel 暴露。

多服务共享一个 Tunnel:一个 cloudflared 实例可以通过路由规则同时暴露多个本地服务,比如 8080 端口放博客,8443 端口放监控面板。

跨平台 Docker 部署:官方提供 Docker 镜像,Linux/macOS/Windows 都能一键跑起来。

部署指南

第一步:准备一个 Cloudflare 账号

  1. 注册 Cloudflare[1] 账号(免费)
  2. 将你的域名添加到 Cloudflare(只需修改 DNS 服务商即可,不需要迁移网站)
  3. 安装 Cloudflare CLI 工具:npm install -g @cloudflare/cloudflared

第二步:创建 Tunnel

# 登录认证
cloudflared tunnel login

# 创建 Tunnel(会生成一个 Tunnel ID)
cloudflared tunnel create my-tunnel

执行后会输出类似这样的信息:

Tunnel credentials saved to /home/user/.cloudflared/<tunnel-id>.json
Created tunnel my-tunnel with id abcdef12-3456-7890-abcd-ef1234567890

记下这个 Tunnel ID,后面要用。

第三步:配置路由规则

创建一个配置文件 config.yml

tunnel: abcdef12-3456-7890-abcd-ef1234567890
credentials-file: /etc/cloudflared/creds.json

ingress:
  - hostname: blog.example.com
    service: http://localhost:8080
  - hostname: monitor.example.com
    service: http://localhost:9090
  - service: http_status:404

这里定义了两个子域名的路由规则:

  • blog.example.com → 本地的 8080 端口(比如你的博客)
  • monitor.example.com → 本地的 9090 端口(比如 Grafana)
  • 其他所有请求返回 404

DNS 记录会自动创建,指向 *.abcdef12-3456-7890-abcd-ef1234567890.cfargotunnel.com

第四步:Docker 一行命令启动

创建 docker-compose.yml

version: "3"
services:
  cloudflared:
    image: cloudflare/cloudflared:latest
    container_name: cloudflared
    restart: unless-stopped
    command: tunnel --no-autoupdate run --token $(cat /run/secrets/tunnel-token)
    secrets:
      - tunnel_token
    networks:
      - default

secrets:
  tunnel_token:
    file: ./tunnel-token.txt

或者更简单的方式,直接用 token 启动(推荐新手):

# 先生成一次性 token
cloudflared tunnel token my-tunnel > tunnel-token.txt

# 一行命令启动
docker run -d --name cloudflared --restart unless-stored \
  cloudflare/cloudflared:latest \
  tunnel --no-autoupdate run --token $(cat tunnel-token.txt)

就这么简单!Docker 容器启动后,你的本地服务就已经可以通过域名从公网访问了。

第五步:验证

打开浏览器访问 https://blog.example.com,你会发现流量已经通过 Cloudflare 的安全隧道到达了你的本地 8080 端口。检查响应头,你会看到 cf-ray 字段,证明流量确实经过了 Cloudflare 网络。

效果对比

方案
需要公网 IP
需要端口映射
SSL 配置
安全性
成本
传统端口映射
✅ 必须
✅ 必须
手动折腾
⚠️ 源站暴露
FRP 内网穿透
❌ 不需要
需要 VPS
手动配置
🟡 中等
Cloudflare Tunnel
❌ 不需要
❌ 不需要
全自动🟢 最高免费

可以看到,Cloudflare Tunnel 在安全性、成本和易用性上都是碾压级的。

实际应用场景

场景一:本地开发调试 在本地写了个 Web 应用,想发给客户演示。不用部署到测试服务器,直接用 cloudflared 生成一个临时公网链接,5 分钟搞定。

场景二:智能家居服务 家里的 Home Assistant、NAS 管理面板、监控摄像头想远程访问。不用折腾路由器,不用担心端口暴露给全网扫描。

场景三:个人博客/网站 本地搭建 WordPress 或 Hugo 博客,通过 Cloudflare 提供全球 CDN 加速和 HTTPS,成本几乎为零。

场景四:SSH 跳板机 通过 Tunnel 暴露 SSH 服务,配合 Cloudflare Access 做身份验证,比传统的 SSH 密钥登录更安全。

常见问题

Q:Tunnel 挂了怎么办? A:cloudflared 支持多实例部署。你可以同时在多台机器上运行同一个 Tunnel,Cloudflare 会自动负载均衡。Docker Compose 里加个 restart: unless-stopped 就能保证自动恢复。

Q:带宽有限制吗? A:Tunnel 本身的带宽取决于你域名的 Cloudflare 计划。免费计划下,Cloudflare 的缓存会帮你分担大量流量。对于静态内容,走 CDN 缓存几乎不消耗源站带宽。

Q:可以自定义域名吗? A:当然可以!只要域名解析到了 Cloudflare,你就可以为任意子域名配置 Tunnel 路由规则,数量没有限制。

Q:对延迟有影响吗? A:理论上会增加一跳延迟(约 10-30ms),但 Cloudflare 在全球有 300+ 节点,大多数情况下用户连接到的边缘节点比你直接连源站更快。

总结

cloudflared 是近年来最优雅的"内网暴露"方案之一。它把复杂的隧道、SSL、DNS、CDN 全部打包成一个 Docker 容器,一行命令搞定。对于没有公网 IP 的个人开发者、家庭实验室爱好者、以及中小团队来说,这几乎是必装神器。

行动建议:

  1. 如果你还没有 Cloudflare 账号,先去注册一个(完全免费)
  2. 找一个你一直想暴露到公网的内网服务试试手
  3. 用上面的 Docker 命令一键启动,5 分钟内就能看到效果

互动时间: 你有哪些"想对外提供访问但没有公网 IP"的服务?留言告诉我,我来帮你出主意!也欢迎分享你用 cloudflared 搭建了什么有趣的项目 👇

如果你觉得这篇文章有用,别忘了点赞收藏,分享给同样被公网 IP 折磨的朋友~

引用链接

[1]Cloudflare: https://cloudflare.com


阅读原文:https://mp.weixin.qq.com/s/WGznwEBB5rPD3neOkYF2Fw


该文章在 2026/7/22 11:28:39 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号