服务器拒绝连接:没有协议被接受。

15

当我在客户端虚拟机中将Jenkins作为Windows服务启动时,我遇到了奇怪的问题。

1) 我已经在客户端主机上(一个Windows虚拟机)将Jenkins作为Windows服务启动,并将我本地的计算机配置为从机,但我无法建立主从连接。我收到以下错误:

"java.lang.Exception: 服务器拒绝了连接:没有被接受的协议"

主机和从机都在同一网络中(客户端网络,通过VPN连接从机)。

客户端主机的域名为ABC
本地计算机的域名为xyz

控制台输出

2) 我已停止Jenkins作为Windows服务,并通过命令提示符再次启动。

"java -jar jenkins.war"

现在我能够在主节点和从节点之间建立连接而没有任何问题。

3) 现在我已经将 Jenkins 作为 Windows 服务在我的本地机器上作为主节点启动,并且在本地机器中的一个作为从节点,并成功地建立了主从连接。

为什么不能使用点(1)建立主从连接的原因是什么?

10个回答

10
在我的情况下,这与禁用协议有关。
请检查以下内容:如果您的Jenkins支持JNLPv4,请在使用之前启用它。
引用: Jenkins -> 全局安全配置 -> 代理 -> 代理协议 -> 入站TCP代理协议/4(TLS加密)

enter image description here


4
问题来自于JENKINS方面。 此漏洞已在JENKINS论坛上提出,并且状态仍为关键的未解决的

https://issues.jenkins-ci.org/browse/JENKINS-29616

根据描述:

A scheduled batch is attempting to start the slave agent with the following script:

taskkill /f /im "EXCEL.exe"
taskkill /f /im "ipy.exe"
taskkill /f /im "jp2launcher.exe"

javaws http://172.16.8.57:8080/computer/SSW73210/slave-agent.jnlp

When the slave agent opens, it fails to do anything but the enclosed error. After rebooting, this issue fails to reproduce, but this seems dramatically more common when the slave is left on overnight.


3
我有类似的问题,以下是我解决问题的方法:
在从Jenkins 1.x升级到2.x后,我从未清除过从机器的远程根目录(在我的情况下是c:\ jenkins)。每次我将从机作为服务安装时,都会出现完全相同的错误。经过无数次的尝试,我终于找到了问题所在: 一旦我清空了该目录中的内容,并将jenkins从机器作为Windows服务安装,内容就会重新填充,从机器也能够按预期连接。
希望这能帮到您。

1

我也遇到了这个问题,然后成功解决了,或许?原来同一个代理在另一台虚拟机上运行。我将其关闭,重新连接成功,不再出现错误信息。


1

我通过安装早期版本的Java解决了这个问题。我使用了1.8.0_131 JDK。


0

我遇到了类似的问题

不得不从命令提示符中运行slave-agent.jar(以管理员身份运行)

> javaws "location of slave-agent.jar"  

0

我遇到了同样的问题,在上面的答案中添加了一些内容,我在Jenkins主机上禁用了防火墙,一切都很顺利。但是,这严格来说不建议在生产环境中使用。新手不知道如何配置防火墙,所以我在家庭实验室中发现这很有用。


0

很奇怪,之前一切都顺利,但现在我遇到了同样的问题。在主机上编辑hosts文件后,在从机上运行命令时错误消失了。所以这是一个网络名称解析问题。


0

前往Jenkins --> 管理Jenkins --> 配置系统 --> http://yoursystem ip:8080/ 确保是http而不是https。 管理Jenkins --> 全局安全性 --> 代理 -->

enter image description here

创建代理节点,它将会工作。


0

我查看了LuFFy的回答中提到的问题https://issues.jenkins-ci.org/browse/JENKINS-29616,并且结合junior1024的回答,找到了一个有用的模式。具体来说,是代理可执行文件的命名:代理可执行文件的名称必须唯一

我正在Server 2019上运行,并使用WinSW将代理作为Windows服务器运行。我下载了WinSW并像这样组织我的代理:

/Agent1
-> agent.jar
-> agent.exe
-> agent.xml
/Agent2
-> agent.jar
-> agent.exe
-> agent.xml

在安装并成功单独测试每个代理后,我尝试同时运行两个代理,但遇到了问题。具体来说,无论哪个代理先启动 second 都会失败,显示在这篇文章和 Jenkins Bug 中描述的症状(无法连接、重新启动等)。

但是,如果我使用 cli 运行第二个代理java -jar agent.jar,它就可以正常工作。

最终我尝试了以下方法,并且奏效:

/Agent1
-> agent.jar
-> agent1.exe
-> agent1.xml
/Agent2
-> agent.jar
-> agent2.exe
-> agent2.xml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接