簡體   English   中英

Jenkins CLI 連接被拒絕

[英]Jenkins CLI connection refused

執行時

java -jar jenkins-cli.jar -s https://jenkins_url help

由於某種原因,我的連接被拒絕。 Jenkins 版本為 1580.3,用戶在 Jenkins 服務器上有權限,cli jar 是最新的,ssh 公鑰配置正確。 知道是什么原因造成的嗎? 如果有幫助,這是堆棧跟蹤:

Exception in thread "main" java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at hudson.cli.CLI.connectViaCliPort(CLI.java:203)
at hudson.cli.CLI.<init>(CLI.java:126)
at hudson.cli.CLIConnectionFactory.connect(CLIConnectionFactory.java:72)
at hudson.cli.CLI._main(CLI.java:466)
at hudson.cli.CLI.main(CLI.java:382)
Suppressed: java.io.EOFException: unexpected stream termination
at hudson.remoting.ChannelBuilder.negotiate(ChannelBuilder.java:331)
at hudson.remoting.Channel.<init>(Channel.java:421)
at hudson.remoting.Channel.<init>(Channel.java:400)
at hudson.remoting.Channel.<init>(Channel.java:396)
at hudson.remoting.Channel.<init>(Channel.java:385)
at hudson.remoting.Channel.<init>(Channel.java:377)
at hudson.remoting.Channel.<init>(Channel.java:353)
at hudson.cli.CLI.connectViaHttp(CLI.java:157)
at hudson.cli.CLI.<init>(CLI.java:130)
... 3 more

如果連接被拒絕,則 CLI 可能被禁用,但更有可能是防火牆或網絡問題。

對 Jenkins 的每個成功 HTTP 請求都會使用 CLI 端口作為 HTTP 標頭進行響應,因此您可以快速檢查它是否已啟用:

curl -sI http://jenkins/ | grep CLI

或者,如wiki 上所述,您可以檢查是否啟用了 TCP 端口。 http://jenkins/configureSecurity/查找“JNLP 從屬代理的 TCP 端口”

但是,由於您的堆棧跟蹤表明 CLI 客戶端正在嘗試與特定端口建立連接,這表明 CLI 已啟用,並且 Jenkins 在其 HTTP 響應中通告該端口號。

因此,您可以嘗試手動連接到該端口,以檢查它是否已打開:

telnet jenkins <cli-port>

如果您在此處還看到“連接被拒絕”,那么您就知道您的 Jenkins 和 CLI 客戶端設置似乎沒問題,但是您遇到了網絡問題。 在這種情況下,請檢查 Jenkins 服務器上的防火牆是否允許該 CLI 端口上的傳入連接。

為了讓防火牆配置更簡單,您可以在上面提到的“配置安全”頁面中從隨機端口切換到固定端口。

我在 Ubuntu 16.04 上遇到了這個問題。

注意:在設置並運行成功的構建作業之后,這個錯誤發生在我身上。 在運行了特別繁重的構建工作后,這發生在我身上。 因此,假設錯誤不是防火牆問題,我的修復程序可能會起作用。

首先,我嘗試使用jenkins-cli.jar工具通過命令行進行安全重啟:

java -jar jenkins-cli.jar -s http://localhost:8080 -auth <username>:<password> safe-restart

但也得到了相同的Connection refused錯誤消息。

所以作為最后的手段,我嘗試重新啟動服務器上的 Jenkins 服務,如下所示:

sudo systemctl restart jenkins

並修復了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM