浮生闲记
2025-04-25
点 赞
2
热 度
36
评 论
0

Cloudflare Tunnels 隧道异常关闭问题诊断与解决方案

文章摘要

摘要

Cloudflare Tunnels 隧道异常关闭问题诊断与解决方案

问题现象

博主的博客使用 Docker Compose 部署 Cloudflared 建立 Cloudflare Tunnels 隧道后,某天出现网站服务中断。经检查发现:

  1. Cloudflare 控制台显示隧道状态为"关闭"
  2. 容器日志中出现关键错误信息
2025-04-24T17:18:23Z ERR Failed to dial a quic connection error="failed to dial to edge with quic: timeout: no recent network activity" connIndex=0 event=0 ip=198.41.200.193

问题排查

日志分析

错误日志表明隧道建立失败于 QUIC 协议层。而 QUIC(Quick UDP Internet Connections)是基于 UDP 的现代传输协议,众所周知的一些原因,UDP 协议在国内网络环境中常受到限制。并且 Cloudflare 默认使用 QUIC 协议,无自动降级机制,协议的切换需手动配置

解决方案

强制指定协议为http2

通过修改 Cloudflared 启动参数强制使用 HTTP/2 协议:

version: '3.8'
services:
  cloudflared:
    container_name: cloudflared
    restart: unless-stopped
    network_mode: bridge
    environment:
      - TZ=Asia/Shanghai
    command: tunnel --no-autoupdate --protocol http2 run --token <your_token>
    image: cloudflare/cloudflared:latest

配置说明:
--protocol http2 强制使用基于 TCP 的 HTTP/2 协议

可选配置方案

自动切换模式--protocol auto

  • 优先尝试 QUIC
  • 失败后自动切换至 HTTP/2

实施验证

重启容器后,观察日志发现

2023-10-13T12:01:28Z INF Registered tunnel connection connIndex=1 [...] protocol=http2
2023-10-13T12:01:28Z INF Registered tunnel connection connIndex=2 [...] protocol=http2
2023-10-13T12:01:28Z INF Registered tunnel connection connIndex=0 [...] protocol=http2

此外 Cloudflare 控制台隧道状态恢复"Active",网站服务也恢复正常访问。


用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

浮生闲记

intj 建筑师

站长

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

目录

欢迎来到浮生闲记的站点,为您导航全站动态

26 文章数
3 分类数
1 评论数
5标签数
最近评论
二十七度风

二十七度风


已Mark

访问统计