Loading...

文章背景图

cloudflared:Cloudflare Tunnel 内网穿透客户端部署指南

2026-10-27
0
- 字
- 分钟
|

cloudflared 是 Cloudflare Tunnel 的命令行客户端,一个在 Cloudflare 网络与你的源站之间代理流量的隧道守护进程。它不需要在防火墙上开孔,源站可以保持尽可能封闭。支持 SSH、RDP 等 TCP 四层流量。

一、项目官方信息

项目 信息
GitHub 仓库 https://github.com/cloudflare/cloudflared
官方文档 https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel
开源协议 Apache-2.0
主要语言 Go(约 91.4%)
Star 数 约 16.0k

二、官方图片

cloudflared 仓库预览:

cloudflared

三、环境要求

  • 一个 Cloudflare 账号,且域名已接入 Cloudflare(修改 NS 记录)。
  • Linux/macOS/Windows,或 Docker。
  • 源站可访问 cloudflared。

四、完整部署步骤

1. 安装

Debian/Ubuntu:

sudo wget -O /usr/share/keyrings/cloudflare-main.gpg https://pkg.cloudflare.com/cloudflare-main.gpg
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install cloudflared

macOS(Homebrew):

brew install cloudflared

Docker:

docker pull cloudflare/cloudflared

Windows 到 Releases 下载 exe。

2. 登录认证

cloudflared tunnel login

浏览器会打开授权页面,选择要隧道的域名,授权后下载证书到 ~/.cloudflared/cert.pem。

3. 创建隧道

cloudflared tunnel create my-tunnel

会生成一个隧道 UUID 与凭据文件 ~/.cloudflared/<UUID>.json。

4. 配置路由

创建 config.yml:

tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json
ingress:
  - hostname: example.com
    service: http://localhost:8080
  - service: http_status:404

5. 配置 DNS

cloudflared tunnel route dns my-tunnel example.com

6. 启动

前台:

cloudflared tunnel --config config.yml run my-tunnel

系统服务:

sudo cloudflared service install

7. 验证

访问 https://example.com,应能看到本地 8080 服务。

五、使用方法

Quick Tunnel(临时测试)

无需域名,直接获得一个临时 trycloudflare.com 地址:

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

SSH 接入

cloudflared access ssh --hostname ssh.example.com

或在客户端用 cloudflared access tcp 建立本地转发。

私有网络

通过 WARP 客户端访问私有源站,无需暴露公网端口。

版本支持

Cloudflare 只维护最近一年内发布的版本;一年前的版本可能有 breaking change。

六、常见问题 FAQ

1. 登录后浏览器打不开? 手动复制终端给出的 URL 到浏览器,或在远程服务器加 --no-autoupdate 并把证书拷回本地。

2. 配置后访问 502? 检查 ingress 的 service 地址是否正确;确认本地服务已启动;用 cloudflared tunnel ingress validate 校验配置。

3. 如何同时暴露多个域名? 在 ingress 下添加多条 hostname/service 规则。

4. 如何作为系统服务运行? cloudflared service install 会注册 systemd 服务。

5. Quick Tunnel 能用多久? 临时测试用,地址随时可能变化,不适合生产。

6. 支持 TCP(SSH/RDP)吗? 支持,用 cloudflared access 或 WARP 客户端。

七、跳转链接

评论交流

文章目录