Windows服务器Jenkins流水线出现received http code 403 from proxy after connect错误求助
Jenkins流水线git fetch/内部站点访问报403代理错误排查方案
问题背景
Windows服务器上的Jenkins流水线此前运行正常,近期执行git fetch(含公开仓库)及访问内部网站时,触发received http code 403 from proxy after connect错误。已确认:LAN代理未启用、服务器无防火墙、Git凭证在其他服务器可用;IE可直接访问目标,但脚本/CMD执行命令时出错,且ping目标站点连通。
可能原因及排查步骤
1. Jenkins进程环境变量残留代理配置
Jenkins服务启动时会加载运行账户的环境变量,即便LAN设置未勾选,系统环境变量中仍可能残留HTTP_PROXY/HTTPS_PROXY配置,导致请求被错误转发。
- 排查操作:
- 进入Jenkins脚本控制台(
Manage Jenkins->Script Console),执行:println System.getenv("HTTP_PROXY") println System.getenv("HTTPS_PROXY") - 查看Jenkins服务的运行账户(
服务-> 找到Jenkins服务 ->属性->登录),切换至该账户的环境变量(系统账户需查看系统属性->高级->环境变量中的系统变量),检查是否存在代理相关变量。
- 进入Jenkins脚本控制台(
2. Git隐藏代理配置
全局/系统级Git配置可能被遗漏,或Jenkins工作区的本地Git配置存在代理设置。
- 排查操作:
在Jenkins流水线的CMD步骤中依次执行:
若输出非空,说明存在代理配置,执行git config --global --get http.proxy git config --global --get https.proxy git config --system --get http.proxy # 需管理员权限 git config --local --get http.proxy # 进入对应job工作区执行git config --global/unset http.proxy等命令清除。
3. Jenkins全局/插件代理配置
Jenkins自身或Git插件可能被误配置代理。
- 排查操作:
- 进入
Manage Jenkins->Configure System,检查代理板块是否勾选使用代理服务器; - 进入
Manage Jenkins->Global Tool Configuration,查看Git工具的配置项,确认无代理相关设置。
- 进入
4. Jenkins服务账户与当前用户网络权限差异
Jenkins若使用Local System账户运行,其网络访问策略可能与登录用户不同(如无法加载PAC脚本、权限受限),导致请求被拦截。
- 排查操作:
- 将Jenkins服务的登录账户改为当前能正常访问IE的用户,重启服务后测试;
- 用
runas /user:服务账户名 "iexplore.exe"打开对应账户的IE,检查LAN代理设置是否与当前用户一致。
5. HTTP请求层面的伪装403错误
部分场景下,目标站点会因请求的User-Agent、请求头不符合要求返回403,错误信息被伪装成代理错误。
- 排查操作:
在CMD中用PowerShell执行详细请求日志:
查看日志中是否真的尝试连接代理,还是直接被目标服务器返回403;同时对比IE的请求头(可通过F12开发者工具查看),调整脚本/命令的请求头模拟IE请求。Invoke-WebRequest -Uri "https://目标仓库/站点地址" -Verbose
6. 组策略/注册表强制代理配置
组策略可能强制设置代理,且未在LAN设置中显示,或注册表中存在残留代理配置。
- 排查操作:
- 运行
gpedit.msc,查看计算机配置->管理模板->网络->网络连接->代理服务器,确认无强制启用代理的策略; - 运行注册表查询命令:
若reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /v ProxyServerProxyEnable值为0x1,说明代理被强制启用,需修改为0x0并重启服务器。
- 运行
内容的提问来源于stack exchange,提问作者w97802
相关产品推荐
相关产品推荐

