Jenkins主从集群主节点IP变更后Windows从节点连接问题求助
Jenkins主节点IP变更后Windows从节点无法连接的配置解决方案
一、先核对Windows从节点的核心启动配置
- 更新slave启动命令的主节点地址:
不管是手动启动还是服务启动,确保命令里的主节点IP已经替换成新的。比如原来的java -jar slave.jar -jnlpUrl http://旧IP:8080/computer/xxx/slave-agent.jnlp,现在改成java -jar slave.jar -jnlpUrl http://新IP:8080/computer/xxx/slave-agent.jnlp。如果主节点用了域名,先在Windows从节点上ping域名,确认解析的是新IP。 - 校验JNLP文件的正确性:
从主节点的对应从节点管理页面重新下载JNLP文件,用记事本打开,找到<application-desc>里的argument内容,确认是新IP的地址。如果还是旧IP,删除本地旧文件,重新下载替换后再启动从节点。
二、Windows系统层面的网络排查与配置
- 防火墙/安全组放行端口:
Windows自带防火墙大概率会拦截连接,先临时关闭防火墙测试能不能连上——如果能,就添加放行规则:- 打开Windows Defender防火墙→高级设置→出站规则→新建规则
- 选择“端口”,输入主节点的Jenkins端口(默认8080)和JNLP端口(主节点如果设了固定TCP端口就填那个,比如50000)
- 选择“允许连接”,应用到所有网络类型,命名规则后保存
- 清理DNS缓存:
执行ipconfig /flushdns刷新本地DNS,避免旧IP的缓存记录干扰连接。 - 检查系统代理:
如果Windows从节点开了系统代理,要么确认代理能访问新IP,要么把新IP加到代理例外列表里(Internet选项→连接→局域网设置→代理服务器→高级→例外栏添加)。
三、Jenkins主节点的适配配置(针对2.9版本)
- 固定JNLP代理端口:
进入主节点→管理Jenkins→全局安全配置,把“TCP port for JNLP agents”设为固定端口(比如50000),别用随机端口——Windows对随机端口的兼容性不如Linux,固定后更容易管控。配置完重启主节点,然后给Windows从节点的启动命令加上-port 50000参数。 - 确认从节点连接权限:
检查对应Windows从节点的配置,确保“启动方式”是“通过Java Web Start启动代理”,“可用性”设为“尽可能保持代理在线”。同时确认主节点的全局安全设置里,允许从节点通过新IP连接。
四、Windows服务启动的从节点更新配置
如果是用Windows服务运行从节点,要更新服务的启动参数:
- 用管理员权限打开命令提示符,执行:
sc config JenkinsSlave binPath= "java -jar D:\JenkinsSlave\slave.jar -jnlpUrl http://新IP:8080/computer/xxx/slave-agent.jnlp -secret 你的从节点密钥"
(注意路径、新IP、密钥要对应实际情况,binPath后面的等号要有空格) - 重启服务:
net stop JenkinsSlave && net start JenkinsSlave
五、日志排查定位问题
要是上面的步骤都没用,就看日志找线索:
- 手动启动slave.jar时看控制台输出,或者去事件查看器→Windows日志→应用程序里看服务日志
- 主节点的系统日志(管理Jenkins→系统日志)里找Windows从节点的连接错误信息,比如权限拒绝、端口不通这类提示
内容的提问来源于stack exchange,提问作者somsom
相关产品推荐
相关产品推荐

