[英]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.