You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Cloudflared Docker容器后遇内存分配等错误的解决咨询

报错日志(中文翻译)

2024-05-10T07:11:09Z INF 启动隧道 tunnelID=已编辑
2024-05-10T07:11:09Z INF 版本 2024.4.1
2024-05-10T07:11:09Z INF GOOS: linux, GOVersion: go1.21.5-devel-cf, GoArch: amd64
2024-05-10T07:11:09Z INF 设置: map[no-autoupdate:true token:*****]
2024-05-10T07:11:09Z INF 生成连接器ID: 已编辑
2024-05-10T07:11:09Z INF 初始协议 quic
2024-05-10T07:11:09Z INF ICMP代理将使用172.17.0.3作为IPv4源地址
2024-05-10T07:11:09Z INF ICMP代理将使用::作为IPv6源地址
2024-05-10T07:11:09Z WRN 运行cloudflared进程的用户GID(组ID)不在ping_group_range范围内。你可能需要将该用户添加到该范围内的组,或者通过修改/proc/sys/net/ipv4/ping_group_range来更新范围,使其包含用户已在的组。否则cloudflared将无法ping通此网络 error="组ID 65532不在ping组1到0之间"
2024-05-10T07:11:09Z WRN ICMP代理功能已禁用 error="无法创建ICMPv4代理: 组ID 65532不在ping组1到0之间,也无法创建ICMPv6代理: socket: 权限被拒绝"
2024-05-10T07:11:09Z INF 在127.0.0.1:33081/metrics启动指标服务器
2024/05/10 07:11:09 未能充分增加接收缓冲区大小(当前: 208 kiB,期望: 2048 kiB,实际获得: 416 kiB)。
2024-05-10T07:11:09Z ERR 服务QUIC连接失败 error="接受QUIC流失败: INTERNAL_ERROR (本地): write udp [::]:49307->198.41.200.113:7844: sendmsg: 无法分配内存" connIndex=0 event=0 ip=198.41.200.113
2024-05-10T07:11:09Z ERR 服务隧道错误 error="接受QUIC流失败: INTERNAL_ERROR (本地): write udp [::]:49307->198.41.200.113:7844: sendmsg: 无法分配内存" connIndex=0 event=0 ip=198.41.200.113
2024-05-10T07:11:09Z INF 最多2秒后重试连接 connIndex=0 event=0 ip=198.41.200.113
2024-05-10T07:11:09Z INF 隧道服务器已停止
2024-05-10T07:11:09Z ERR 启动关机流程 error="接受QUIC流失败: INTERNAL_ERROR (本地): write udp [::]:49307->198.41.200.113:7844: sendmsg: 无法分配内存"
2024-05-10T07:11:09Z INF 指标服务器已停止
接受QUIC流失败: INTERNAL_ERROR (本地): write udp [::]:49307->198.41.200.113:7844: sendmsg: 无法分配内存
解决方案

1. 优先解决内存分配失败问题

这是导致隧道启动失败的核心原因:

  • 检查宿主机内存状态:执行free -h查看剩余内存,关闭无关进程释放内存,或升级宿主机内存配置。
  • 限制容器内存配额:
    • Docker Run命令添加参数:--memory 256m --memory-reservation 128m
    • Docker Compose配置添加:
      services:
        cloudflared:
          # 其他配置
          mem_limit: 256m
          mem_reservation: 128m
      

2. 调整UDP缓冲区大小

针对日志中缓冲区不足的提示,修改宿主机内核参数:

  • 临时生效:
    sysctl -w net.core.rmem_max=2500000
    sysctl -w net.core.wmem_max=2500000
    
  • 永久生效:编辑/etc/sysctl.conf,添加以下内容后执行sysctl -p加载配置:
    net.core.rmem_max=2500000
    net.core.wmem_max=2500000
    

3. 修复ICMP代理权限警告(可选)

该警告不影响隧道核心功能,若需启用ICMP代理可按以下操作:

  • 修改宿主机ping组范围:
    sysctl -w net.ipv4.ping_group_range="0 65535"
    
    永久生效需将上述配置写入/etc/sysctl.conf并执行sysctl -p。
  • 或给容器添加RAW套接字权限:
    • Docker Run命令添加:--cap-add NET_RAW
    • Docker Compose配置添加:
      services:
        cloudflared:
          # 其他配置
          cap_add:
            - NET_RAW
      

内容的提问来源于stack exchange,提问作者Kamil Stanczykiewicz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:31:00