Cloudflare Tunnel 配置完整步骤
Cloudflare Tunnel 可以帮助你将本地或局域网服务安全地暴露到公网,而无需直接开放服务器端口。本文整理了 Dashboard 图形化配置与命令行配置两种完整步骤,并补充常用排查命令和注意事项,方便你快速上手与后续维护。
前置条件
- 域名已托管在 Cloudflare(NS 已指向 Cloudflare)
- 局域网内的 VPS 可访问外网
- 本地服务已跑起来(例如
http://localhost:8080)
方式一:Dashboard 图形化配置
推荐初次使用者优先选择这种方式,配置流程直观,操作也更简单。
1. 进入 Zero Trust 控制台
登录 Cloudflare 后,依次进入左侧 Zero Trust → Networks → Tunnels。
2. 创建 Tunnel
- 点击 Create a tunnel
- 选择连接器类型:Cloudflared
- 输入 Tunnel 名称(如
home-vps)后点击 Save
3. 安装 cloudflared 到你的 VPS
页面会根据你的系统提供安装命令,常见的 Debian/Ubuntu 安装方式如下:
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb sudo dpkg -i cloudflared.deb
安装完成后,页面会提供一条带 token 的命令。直接复制执行即可安装并启动服务:
sudo cloudflared service install eyJhIjoi...(你的 token)
执行后回到 Dashboard,正常情况下可以看到 Connector 状态变为 Connected(绿色)。
4. 配置 Public Hostname(公网访问入口)
进入 Tunnel 详情页,打开 Public Hostname 标签,点击 Add a public hostname。
字段填写示例SubdomainappDomainyourdomain.com(下拉选择你的域名)Path留空Service TypeHTTPURLlocalhost:8080 保存后,Cloudflare 会自动创建一条 CNAME 记录。等待几秒后,访问 https://app.yourdomain.com 即可将请求转发到 VPS 上的服务。
方式二:命令行配置
这种方式更适合脚本化部署、多服务转发或需要精细管理配置文件的场景。
1. 安装 cloudflared
安装方式与上文相同,这里不再重复。
2. 登录授权
cloudflared tunnel login
执行后浏览器会弹出授权页面,选择要授权的域名。授权完成后,证书会保存到 ~/.cloudflared/cert.pem。
3. 创建 Tunnel
cloudflared tunnel create home-vps
执行后会输出 Tunnel UUID,凭证文件会保存在 ~/.cloudflared/.json。
4. 编写配置文件
编辑 ~/.cloudflared/config.yml:
tunnel:
credentials-file: /root/.cloudflared/.json
ingress:
- hostname: app.yourdomain.com
service: http://localhost:8080
- hostname: api.yourdomain.com
service: http://localhost:3000
# 兜底规则,必须放最后
- service: http_status:404
5. 绑定 DNS 记录
cloudflared tunnel route dns home-vps app.yourdomain.com cloudflared tunnel route dns home-vps api.yourdomain.com
6. 注册为系统服务并启动
sudo cloudflared service install sudo systemctl start cloudflared sudo systemctl enable cloudflared
7. 验证状态
sudo systemctl status cloudflared cloudflared tunnel list cloudflared tunnel info home-vps
常用排查命令
# 查看实时日志 sudo journalctl -u cloudflared -f # 测试配置文件语法 cloudflared tunnel ingress validate # 测试某个 URL 路由到哪个 service cloudflared tunnel ingress rule https://app.yourdomain.com
注意事项
- 凭证文件
.json是核心密钥,务必妥善备份;一旦泄露,等于放行整个 tunnel。 - service 字段应填写内网地址,例如
http://localhost:port或http://192.168.x.x:port。 - HTTPS 后端 可写为
https://localhost:443;如果使用自签证书,可加originRequest: { noTLSVerify: true }。 - TCP/SSH 等非 HTTP 服务 可写为
service: ssh://localhost:22,客户端再通过cloudflared access连接。 - 修改
config.yml后,需要执行sudo systemctl restart cloudflared才会生效。
总体来看,Cloudflare Tunnel 既适合通过 Dashboard 快速完成基础配置,也适合用命令行方式管理多服务和自动化部署。只要按步骤完成授权、Tunnel 创建、DNS 绑定和服务启动,就可以稳定地将本地服务安全地对外提供访问。
评论