Jenkins服务启动失败:绑定22端口权限拒绝及配置文件读取异常
Jenkins启动异常解决方案
一、SSHD模块绑定22端口权限不足问题
问题分析
Jenkins内置SSHD模块尝试绑定系统特权端口22(1-1023端口仅root用户可绑定),但Jenkins以普通用户运行,触发权限拒绝错误,导致Failed SSHD.init。
解决步骤
- 临时禁用SSHD模块:在Jenkins启动参数中添加
-Djenkins.sshd.port=-1。Linux下修改/etc/default/jenkins的JAVA_ARGS追加该参数;Windows下修改jenkins.xml的<arguments>节点。 - 修改SSHD端口为非特权端口:
- 若能登录Jenkins后台,进入
Manage Jenkins > Configure Global Security,找到SSH Server配置项,将端口改为2222等大于1023的端口,保存后重启。 - 若无法登录,直接编辑Jenkins home目录下的
config.xml,找到<sshd>节点,将<port>22</port>改为<port>2222</port>,重启Jenkins。
- 若能登录Jenkins后台,进入
- 不推荐方案:给Java进程赋予绑定特权端口权限,执行
setcap 'cap_net_bind_service=+ep' $(which java),此操作存在安全风险,生产环境谨慎使用。
二、Global Build Stats插件配置文件读取失败问题
问题分析
/hdd2/jenkins/global-build-stats.xml文件格式损坏,导致XStream解析失败,触发Unable to read错误,即使重新创建文件也无效,大概率是插件版本不兼容或文件结构错误。
解决步骤
- 禁用插件恢复启动:进入Jenkins home目录下的
plugins文件夹,将global-build-stats.hpi和global-build-stats文件夹移至临时目录(如plugins/disabled),重启Jenkins。 - 重新安装插件:Jenkins启动正常后,从插件市场安装最新版本的Global Build Stats插件,插件会自动生成正确的配置文件。
- 手动修复配置文件:若需保留原有数据,使用正常模板替换损坏文件,示例模板:
<?xml version='1.1' encoding='UTF-8'?> <hudson.plugins.global_build_stats.GlobalBuildStatsPlugin> <jobBuildResultSharders/> <buildStatsPresets/> <pluginEnabled>true</pluginEnabled> </hudson.plugins.global_build_stats.GlobalBuildStatsPlugin>
替换后设置权限:chown jenkins:jenkins /hdd2/jenkins/global-build-stats.xml,chmod 644 /hdd2/jenkins/global-build-stats.xml,重启Jenkins。
三、其他次要问题处理
- ScriptApproval.xml格式错误:编辑
/hdd2/jenkins/scriptApproval.xml,删除或修复'Method jenkins.model.Jenkins getItemByFullName'错误签名条目,保存后重启。 - PersistentBuildQueue.txt缺失:无需手动创建,插件会自动生成;若不需要该功能,禁用Persistent Build Queue插件即可。
- GSSAPI库缺失:若无需Kerberos认证,忽略该错误;若需要,安装对应系统的GSSAPI依赖包(如Linux下安装
krb5-libs)。
内容的提问来源于stack exchange,提问作者O.Dilber
相关产品推荐
相关产品推荐

