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

Jenkins服务器上Git无法解析本地网络外外部主机名问题求助

Jenkins跨节点Git访问公网GitLab故障排查方案

排查步骤

  • 第一步:校验构建节点的Git代理配置

    登录故障构建代理节点,切换至Jenkins运行任务的服务账号(禁止直接用root账号排查,两者配置相互隔离),执行git config --list --show-origin查看系统、全局、用户三个层级的Git配置:

    • 若存在http.proxy/https.proxy配置指向DMZ内部代理,执行对应层级的移除命令即可,例:
      • 移除用户级代理:git config --unset --global http.proxy
      • 移除系统级代理:git config --unset --system http.proxy
    • 同时检查是否存在insteadOf规则强制替换公网GitLab地址为内网地址,执行git config --get-regexp insteadOf验证,存在的话用git config --unset删除对应规则即可。
  • 第二步:校验Jenkins代理注入配置

    Jenkins全局代理会默认注入到所有构建节点的任务环境变量,需从两个维度排查:

    • 进入Jenkins管理后台→系统配置→代理设置,确认是否勾选了为构建代理应用全局代理选项,若勾选可直接取消,或在对应构建节点的独立配置页添加NO_PROXY环境变量,值设置为GitLab公网域名,避免该域名被强制走内部代理。
    • 检查故障任务的单独配置,确认Git仓库地址为公网URL,未填写DMZ内网地址,且任务级未配置强制代理规则。
  • 第三步:验证任务运行时实际环境

    在故障代理节点上新建一个测试自由风格任务,仅执行以下命令输出运行时参数,对比你手动排查的结果是否一致:

    # 输出当前运行账号
    whoami
    # 输出所有代理相关环境变量
    env | grep -i proxy
    # 输出当前账号生效的Git配置
    git config --list
    # 测试网络连通性
    curl -v [你的GitLab公网访问地址]
    # 测试Git克隆
    git clone -v [你的GitLab测试公网仓库地址]
    

    若任务执行输出的代理配置和你手动排查结果不一致,说明Jenkins在任务启动阶段注入了额外的代理变量,回到节点配置页清空任务级环境变量即可。

  • 第四步:排查底层域名解析规则

    确认/etc/hosts文件内未写死GitLab域名对应的内网IP,导致DNS解析被覆盖返回错误地址。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:27:00