Cloudflare开源的cloudflared,不碰防火墙就能暴露内网服务

📅 2026/6/25 15:25:36
Cloudflare开源的cloudflared,不碰防火墙就能暴露内网服务
文章目录Cloudflare开源的cloudflared不碰防火墙就能暴露内网服务核心机制支持的协议安装方式版本策略适用场景Cloudflare开源的cloudflared不碰防火墙就能暴露内网服务Cloudflare维护的cloudflared项目在GitHub上获得了1.4万Star。它是一个命令行隧道客户端将Cloudflare网络的流量代理到你的源服务器过程中不需要在防火墙上开任何端口。我自己平时做开发经常遇到一个情况本地跑了一个服务想让外网的人测试一下要么部署到公网服务器要么折腾端口映射和动态DNS。cloudflared解决的就是这个问题。核心机制cloudflared在服务器上运行一个守护进程与Cloudflare边缘网络建立隧道。外部请求到达Cloudflare后经隧道转发到源服务器响应沿原路返回。源服务器始终是隧道的发起方防火墙只需允许出站连接入站端口可以全部关闭。这个设计降低了网络暴露面。支持的协议Tunnel功能服务于HTTP和WebSocket流量适合托管网站和API服务。Access功能支持在Layer 4代理TCP流量覆盖SSH、RDP、数据库连接等场景。我试过这样一个用法在一台没有公网IP的测试服务器上运行cloudflared然后从本地通过SSH直连过去中间不需要配置任何安全组规则。Cloudflare的Access策略还可以在连接层面叠加身份验证未通过认证的请求不会被转发。如果你使用了Cloudflare的WARP客户端WARP可以直接路由到隧道背后的源站不再需要单独运行Access命令。安装方式cloudflared支持的安装途径比较全macOSHomebrew安装或直接下载二进制文件Linux二进制包、Debian包、RPM包Windows独立安装步骤DockerDockerHub上有官方镜像源码编译需要Go 1.26以上执行make cloudflared安装后登录Cloudflare账号认证创建隧道并配置路由。官方文档对DNS记录公开、Load Balancer配合、WARP私有网络路由等用法都有说明。TryCloudflare功能允许不提前添加网站就创建临时隧道做测试。在正式配置之前先跑通流程省了不少事。版本策略Cloudflare对cloudflared的版本支持窗口为一年。超过一年的旧版本可能遇到兼容性问题使用者需要跟进升级。项目代码在持续更新。Go语言编写依赖capnp进行序列化构建使用Makefile。开发者可运行make test、make lint、make fmt检查代码质量提交前安装Git hooks自动校验。适用场景这个工具适合三类用户需要在本地开发环境让外部访问进行调试的开发人员运行自托管服务但不想暴露公网IP的团队使用Cloudflare系列产品做网络管理的组织cloudflared可与WARP、Access联动。局限在于依赖Cloudflare网络。如果使用其他CDN或代理方案这个工具不适用。所有流量经过Cloudflare数据合规有要求的场景需要提前评估。N或代理方案这个工具不适用。所有流量经过Cloudflare数据合规有要求的场景需要提前评估。