Jenkins Master与Slave节点连接断开 使用agent.jar及jnlp文件无法连通求助
Jenkins Slave JNLP 连接断开故障排查方案
基础环境校验
- 确认Slave节点和Master节点的网络连通性:在Slave节点执行
telnet [Jenkins Master IP] [端口号],默认Jenkins服务端口为8080,若配置了JNLP专用端口(常用为50000)也需单独测试连通性,排除防火墙、安全组、内网访问策略拦截对应端口流量的可能 - 确认Slave节点安装的JDK大版本和Master节点JDK版本一致,避免跨版本兼容性问题,可分别在两端执行
java -version核对版本信息 - 若Jenkins Master配置了HTTPS访问,确认Slave节点的JDK信任库已经导入了Master的SSL证书,避免证书校验不通过导致的连接中断
启动参数调整
- 不要直接使用默认推荐命令启动,新增连接超时、保活相关参数,示例启动命令如下:
java -jar agent.jar -jnlpUrl http://[你的Jenkins服务地址]/computer/[Slave节点名称]/slave-agent.jnlp -secret [节点专属密钥] -workDir "/你指定的Slave工作目录" -connectTimeout 30000 -readTimeout 60000
- 若为Windows系统的Slave节点,不要用普通用户权限启动命令行执行命令,右键选择「以管理员身份运行」命令行后再执行启动命令,避免权限不足导致的连接中断
Master端配置校验
- 进入Jenkins Master后台「全局安全配置」页面,确认「入站代理的TCP端口」选项未设置为「禁用」,若选择「固定端口」需确认端口值和之前测试连通性的JNLP端口一致
- 进入对应Slave节点的配置页,确认「启动方法」选择的是「通过Java Web Start启动代理」,同时节点标签、可用权限配置和使用需求匹配
精准定位问题
如果以上步骤都未解决问题,在启动agent.jar的命令末尾加上-verbose参数启动,打印详细运行日志,根据日志具体报错定位根因:
- 若报错提示
Connection refused:优先排查网络连通性和端口配置 - 若报错提示
Invalid secret:确认节点密钥是否正确,Master端是否重置过节点密钥未同步更新 - 若报错提示
Unauthorized:确认启动命令里的Jenkins地址是否和后台配置的Jenkins根地址一致,排除反向代理导致的地址跳转问题
内容的提问来源于stack exchange,提问作者Naseer Ahammed
相关产品推荐
相关产品推荐

