詹金斯:IOException:无法通过代理隧道。代理返回“需要HTTP / 1.1 407代理身份验证”

时间:2019-03-18 06:34:14

标签: java jenkins proxy

首先,我想告诉您这个问题不是重复

我想在Jenkins中安装插件。我去了更新中心,但由于有此错误,我无法安装任何东西:

IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required".

Here is how my error looks like in Update Center.

在Java方面,我也有64位的Java。

我尝试更改JRE文件夹并为64位JRE放置东西,因为Jenkins安装了32位,但是它不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

TL; DR

java -Dhttp.proxyHost=THE_PROXY_HOST_NAME -Dhttp.proxyPort=PORT_NUMBER -Dhttp.proxyUser=USER_NAME -Dhttp.proxyPassword=MY_SUPER_SECRET_PASSWORD -Dhttp.auth.preference=basic -Djdk.http.auth.tunneling.disabledSchemes= -jar jenkins.war



希望您现在已经知道了,但是对于那些正在寻找答案的人(我自己在不久的将来)...

我做了很多事情,我不确定什么最终会奏效,但这就是我认为对我有用的以及我实际上所做的事情。

我认为有效的

Jenkins在JENKINS-58567JENKINS-56498JENKINS-48775等代理设置中发现了一些错误。因此,我认为这是可行的:

设置Java代理设置

根据您运行Jenkins的方式(即运行java -jar jenkins.war或作为守护程序systemctl start jenkins.service),您将必须提供代理配置作为Java选项。

我将其作为守护程序运行,因此我在 JENKINS_JAVA_OPTIONS 下的 / etc / sysconfig / jenkins (我不知道它在Windows中的位置)中添加了我的选项。并添加了以下java选项:

-Dhttp.proxyHost=THE_PROXY_HOST_NAME -Dhttp.proxyPort=PORT_NUMBER -Dhttp.proxyUser=USER_NAME -Dhttp.proxyPassword=MY_SUPER_SECRET_PASSWORD -Dhttp.auth.preference=basic -Djdk.http.auth.tunneling.disabledSchemes=

我猜测根据此发布的comment,我可能可以-Djdk.http.auth.tunneling.disabledSchemes=Basic而不是Dhttp.auth.preference=basic -Djdk.http.auth.tunneling.disabledSchemes=来做,但是我很懒惰,不想测试一下(我'有一天会再来完善此答案)。

我实际上做了什么

除了上述步骤之外,我还做了一些奇怪的事情(我非常绝望,我已经4个月没有更新插件了。)

  • /etc/rc.d/init.d/jenkins 中的启动脚本中添加了导出命令
    • export HTTP_PROXY=http://username:password@your-proxy-server:port
  • 在Jenkins>管理Jenkins>配置系统>全局属性>复选框环境变量上添加全局变量>添加变量名称HTTP_PROXY和值http://username:password@your-proxy-server:port

我不记得自己最终要做什么,但是我不认为它们很重要(因为它们没有用)。

祝你好运!