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

Ale*_*na 1 java proxy jenkins

首先我想说这个问题是\xc2\xb4t重复的。

\n\n

我想在 Jenkins 中安装插件。我去了更新中心,但我无法\xc2\xb4t 安装任何东西,因为我有这个错误:

\n\n
IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required".\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是我的错误在更新中心中的样子。

\n\n

另外,说到 Java,我有 64 位的 Java。

\n\n

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

\n

小智 7

长话短说

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
Run Code Online (Sandbox Code Playgroud)



希望你现在已经明白了,但对于那些寻找答案的人(我自己在不久的将来)......

我做了很多事情,但我不确定什么最终真正起作用,但以下是我认为对我有用的事情以及我实际做了的事情。

我认为有效的

Jenkins 已知JENKINS-58567、JENKINS-56498、JENKINS-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=
Run Code Online (Sandbox Code Playgroud)

我猜我可能可以这样做 ,-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

我不记得我最后还做了什么,但我认为它们并不重要(因为它们不起作用)。

祝你好运!