网站、Home Assistant 或自托管服务突然打不开,页面显示 Cloudflare Tunnel Error 1033?先说结论:1033 的意思是 Cloudflare 找不到一个健康的 cloudflared 连接器,也就是跑隧道的那台电脑、VPS、Docker 容器或树莓派没有正常连上。多数情况下不用动网站文件,重启或修正 cloudflared 就能好。
错误 1033 是什么意思
Cloudflare Tunnel 的原理是:您的服务器主动向外连接 Cloudflare,不需要在路由器或防火墙开放 80、443 之类的入站端口。有人访问域名时,Cloudflare 通过这条已建立的连接转发请求。连接器停了或掉线,Cloudflare 就没有通路,于是显示 1033。
它与 502 不一样:1033 是隧道本身不可用;502 通常表示隧道在线,但 cloudflared 访问不到本地应用(比如入口规则指向 localhost:3000,而应用没运行)。
常见原因
- cloudflared 进程停止,或开机后服务没起来;
- 服务器、VPS 或树莓派重启过;
- Docker 容器停止或崩溃;
- 隧道令牌被替换、删除或复制错;
- 服务器断网,或出站防火墙限制;
- 配置里的隧道与实际运行的不是同一个;
- cloudflared 版本过旧或安装损坏;
- 内存或磁盘耗尽。
先确认隧道状态
登录 Cloudflare 控制台,进入“Networking → Tunnels”,找到对应隧道。状态为 Healthy 表示正常;Inactive(没有连接器连着)、Down(之前连着现在断了)或 Degraded(部分连接丢失)都说明问题大概率在运行 cloudflared 的机器上。也可以在服务器上运行 cloudflared tunnel list 核对隧道名称或 UUID。
方法 1:重启 cloudflared 服务
| 系统 | 命令 |
|---|---|
| Ubuntu/Debian/多数 Linux | sudo systemctl restart cloudflared,再用 sudo systemctl status cloudflared 检查是否 active (running) |
| 较老的 Linux | sudo service cloudflared restart |
| Windows(管理员) | sc stop cloudflared 然后 sc start cloudflared,或在“服务”面板右键重启 |
| macOS(Homebrew) | brew services restart cloudflared |
| 手动运行 | 重新执行 cloudflared tunnel run 隧道名 |
重启后等一两分钟再刷新域名,Cloudflare 需要一点时间识别连接器恢复。
方法 2:确认进程真的在运行
Linux 和 macOS 用 ps aux | grep cloudflared;Windows 在任务管理器找 cloudflared.exe。只看到 grep 本身就说明没有在运行,需要重启服务或手动启动。
方法 3:设置开机自动启动
很多 1033 出现在服务器夜里重启之后。systemd 系统运行 sudo systemctl enable cloudflared 并 sudo systemctl start cloudflared,再用 sudo systemctl is-enabled cloudflared 确认输出 enabled。
方法 4:查看日志找真正的原因
用 sudo journalctl -u cloudflared -n 100 --no-pager 看最近 100 行,或 sudo journalctl -u cloudflared -f 实时观察。常见信息含义:
- Authentication failed:令牌、凭据文件或证书可能无效;
- Failed to connect to edge:网络、DNS、防火墙或代理问题;
- No such file or directory:配置或凭据文件路径不对;
- Permission denied:服务用户读不了配置或凭据文件;
- Connection terminated:出站连接不稳定或被过滤。
方法 5:核对令牌和配置
新建、删除隧道或迁移服务器后,容易用着旧令牌。到控制台的“Networking → Tunnels”选中隧道,获取最新的安装命令(形如 cloudflared service install 令牌)。不要照搬旧服务器或旧笔记里的令牌。使用命名隧道时,检查 /etc/cloudflared/config.yml 里的隧道 ID 是否与控制台一致,凭据 JSON 路径是否有效、权限是否正确。
方法 6:重装 cloudflared 服务
sudo systemctl stop cloudflared;- 必要时
sudo cloudflared service uninstall; - 从控制台复制新的连接器命令重新安装;
sudo systemctl enable cloudflared与sudo systemctl start cloudflared;- 用
status检查,等待控制台显示 Healthy。
方法 7:更新 cloudflared
用 cloudflared --version 查看版本。通过包管理器安装的用常规方式更新;手动安装的,从 Cloudflare 官方的 cloudflared 安装说明下载最新稳定版。更新后重启服务。长期运行、很久没维护的 VPS 尤其建议检查。
方法 8:检查网络、DNS 和防火墙
cloudflared 不需要入站端口,但必须能出站联网。用 ping -c 4 1.1.1.1 测基本连通,用 ping -c 4 cloudflare.com 测 DNS。云厂商防火墙(AWS、Google Cloud、DigitalOcean、Hetzner、Vultr、Oracle 等)要确认放行出站 HTTPS。不要为了修 1033 随意开放入站端口。
方法 9:Docker 里运行的隧道
docker ps看容器是否在运行,docker ps -a看已停止的;docker restart cloudflared重启(容器名不同就替换);docker logs cloudflared --tail 100看令牌、认证、连接错误或反复重启;- Compose 里设置
restart: unless-stopped,改完用docker compose up -d重建。
方法 10:确认运行的是正确的隧道
测试时容易建好几条隧道。如果域名路由到隧道 A,服务器却跑着隧道 B,也会 1033。核对域名路由指向哪条隧道,再对照服务器上使用的隧道名、UUID 或令牌;用令牌的话,直接从控制台获取新命令最省事。
方法 11:检查内存和磁盘
用 free -h、df -h 看内存和磁盘,用 dmesg | grep -i killed 看进程是否被系统杀掉。小内存 VPS 同时跑数据库、WordPress、Docker 时尤其要留意,可以清理空间、增加交换空间或升级配置。
方法 12:最后再重启服务器
确认日志和服务状态后,仍异常可以 sudo reboot,重启后检查 cloudflared 是否自动起来;没有的话回到方法 3。
预防清单
- 开启 cloudflared 开机自启;Docker 加重启策略;
- 保持 cloudflared 更新,在控制台关注隧道健康状态;
- 记录隧道名、UUID、配置和凭据文件位置;
- 确认新隧道正常前,不要删除旧隧道凭据;
- 重要业务可再加一个备用连接器;
- 定期检查内存、磁盘和出站网络。
常见问题(FAQ)
1033 说明我的网站服务器挂了吗?
不一定。网站可能运行正常,只是隧道连接器断开了,先查 cloudflared。
要不要开放 80 或 443 端口?
不需要。应恢复出站的 cloudflared 连接,而不是把服务器暴露出去。
重启后多久恢复?
cloudflared 启动成功后通常几秒内重连,控制台和域名完全反映可能需要一两分钟。
总结
先看控制台隧道状态,再重启 cloudflared、查日志、核对令牌、检查 Docker 和出站网络,最后设置开机自启。1033 多半不是 DNS 或网站程序的问题,而是连接器没连上。