Cloudflared Tunnel 凭据失效问题分析与解决笔记
一、问题现象
运行命令:
出现错误:
Cannot determine default origin certificate path.
No file cert.pem in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp /etc/cloudflared /usr/local/etc/cloudflared].
You need to specify the origin certificate path by specifying the origincert option in the configuration file, or set TUNNEL_ORIGIN_CERT environment variable.
Tunnel 无法列出,网站访问提示 Cloudflare Error 1033(Tunnel not found)。
二、问题根本原因
Cloudflared 使用两类凭据来验证身份与连接:
1. cert.pem
- 作用:Cloudflare 账户登录凭证,用于验证操作权限(创建/查看隧道等)。
- 默认位置:
- Root 用户:
/root/.cloudflared/cert.pem - 普通用户:
~/.cloudflared/cert.pem - 特点:长期有效,但依赖文件存在与权限正确。
- 丢失后,Cloudflare 将拒绝所有“账户级操作”(如
tunnel list、tunnel create)。
2. <TunnelID>.json
- 作用:某一条具体隧道的连接密钥(包含
TunnelSecret)。 - 位置:
/etc/cloudflared/<TunnelID>.json - 特点:只要文件未被删除或修改,Tunnel 本身仍有效;
但如果缺少
cert.pem,则无法由客户端重新建立连接。
三、常见触发原因
| 触发情形 | 说明 |
|---|---|
/root/.cloudflared 目录被清理 |
系统更新、重装或切换用户导致路径变化 |
| Cloudflared 版本更新 | 新版本要求重新验证账户 |
| 使用普通用户执行命令 | 普通用户无法访问 /root/.cloudflared/cert.pem |
| 权限或环境变量丢失 | 服务进程找不到正确凭证路径 |
四、解决步骤
1. 重新登录并生成新的证书
执行:
然后根据提示在浏览器打开链接登录 Cloudflare 账户。
成功后输出类似:
这一步会自动恢复账户凭证。
2. 再次验证隧道状态
若显示:
ID NAME CREATED CONNECTIONS
d2e4cdb7-6efb-411b-b95f-ecefe9f88091 alist-tunnel 2025-06-05T14:17:31Z 1xhkg09, 1xhkg12, 1xsjc05, 1xsjc06
表示隧道重新连接成功。
3. 检查配置文件(/etc/cloudflared/config.yml)
推荐示例:
tunnel: d2e4cdb7-6efb-411b-b95f-ecefe9f88091
credentials-file: /etc/cloudflared/d2e4cdb7-6efb-411b-b95f-ecefe9f88091.json
protocol: auto
ingress:
- hostname: alist.050626.xyz
service: http://localhost:5244
- service: http_status:404
protocol 建议使用 auto,以便自动使用 QUIC。
4. 检查 DNS 记录
进入 Cloudflare 控制台 → DNS
确保存在记录:
并且代理(橙色云朵)已启用。
5. 测试访问
浏览器访问:
若页面正常打开,则隧道恢复成功。
五、防止问题再次发生
- 备份凭据
sudo mkdir -p /etc/cloudflared/backup
sudo cp /root/.cloudflared/cert.pem /etc/cloudflared/backup/
sudo cp /etc/cloudflared/*.json /etc/cloudflared/backup/
- 固定服务运行用户 编辑 systemd 服务:
[Service]
User=root
ExecStart=/usr/bin/cloudflared --no-autoupdate --config /etc/cloudflared/config.yml tunnel run
- 保持版本更新
或手动:
sudo wget -O /usr/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
sudo chmod +x /usr/bin/cloudflared
- 可选:自动检测脚本 可编写简单脚本检测证书文件是否存在并自动登录(后续可添加)。
六、结论
| 项目 | 状态 | 说明 |
|---|---|---|
证书文件 (cert.pem) |
丢失或不可访问 | 重新登录生成后恢复正常 |
隧道凭证 (.json) |
仍然有效 | 无需重新创建隧道 |
| 服务状态 | 恢复正常 | 访问恢复 |
| 预防措施 | 已建议 | 备份 + 固定权限 + 更新 |
总结一句话:
Cloudflared 隧道异常 1033 多数情况下并非隧道损坏,而是因账户凭证
cert.pem丢失或权限错误导致身份验证失败。重新登录即可恢复。