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

部署Node应用后无法连接Git仓库,出现CONNECT隧道404错误求助

问题分析与解决方案

错误原因分析

从错误日志CONNECT tunnel failed, response 404和NR route_not_found来看,核心问题是部署在Kubernetes环境中的应用发起的Git仓库克隆请求,在通过代理服务器建立CONNECT隧道时被拒绝,代理服务器无法找到对应路由。

本地及本地Docker运行正常,说明代码逻辑、凭证、Git仓库地址均无问题,问题出在Kubernetes环境的网络配置上,大概率和代理规则、网络策略或服务网格路由有关。

排查与解决步骤

  • 检查Pod内的代理环境变量
    进入Pod查看是否配置了HTTP_PROXY/HTTPS_PROXY环境变量,如果存在,确认NO_PROXY变量是否包含内部GitHub域名github.companyDomain.com。内部域名通常不需要走代理,若未添加到NO_PROXY,代理服务器会尝试处理该请求但无对应路由,导致404。
    可执行命令查看环境变量:

    env | grep -E "(PROXY|proxy)"
    

    若需要修改,可在Kubernetes Deployment的env字段中添加或更新NO_PROXY配置。

  • 验证网络连通性与代理行为
    在Pod内直接执行Git克隆或curl命令,观察请求过程:

    git clone https://validUserName:validPATToken@github.companyDomain.com/owner/repo-name.git
    # 或用curl测试CONNECT请求
    curl -v -x <代理地址:端口> https://github.companyDomain.com
    

    若直接克隆成功,说明是应用层的代理配置问题(比如simple-git未继承系统代理);若仍失败,进一步确认代理服务器是否允许该域名的CONNECT请求。

  • 检查Kubernetes网络策略与服务网格配置
    如果集群使用了Istio、Linkerd等服务网格,或者配置了NetworkPolicy,需确认是否允许Pod向github.companyDomain.com:443发起出站请求,且服务网格的路由规则未错误拦截或重定向该请求。

  • 联系运维确认代理服务器规则
    若必须通过代理访问内部GitHub,联系负责代理服务器的运维团队,确认代理是否配置了github.companyDomain.com的CONNECT路由规则,避免因代理未识别该域名导致的404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:34:59