GitLab SSH Runner状态活跃但流水线仅超时无报错,如何排查?
GitLab SSH Runner 连接超时问题排查方案
网络连通性验证
- 登录GitLab Runner所在主机,执行以下命令测试端口连通性:
若命令无响应或提示连接失败,说明网络层面存在阻断。telnet server.dns.name 21223 # 或使用nc命令 nc -zv server.dns.name 21223 - 验证DNS解析正确性:
确认解析出的IP与日志中的nslookup server.dns.namemyip一致,避免DNS解析错误导致连接目标偏差。
防火墙/安全组规则检查
- 检查目标QEMU虚拟机的本地防火墙,确认21223端口已放行,且允许Runner所在IP的访问请求。
- 检查Proxmox宿主机的防火墙配置,确保未拦截21223端口的入站/出站流量。
- 若服务器部署在云环境,同步检查云服务商的安全组规则,确认21223端口已对外开放。
SSH登录手动验证
- 使用Runner配置的身份文件,手动尝试登录目标服务器,验证SSH配置有效性:
若登录失败,排查以下点:ssh -i /home/gitlab-runner/.ssh/id_ed25519 -p 21223 gitlab@server.dns.name- 目标服务器
/home/gitlab/.ssh/authorized_keys文件中,是否已添加Runner主机id_ed25519.pub的公钥内容。 - 目标服务器
/etc/ssh/sshd_config配置:确认允许gitlab用户登录、监听端口为21223、未禁用公钥登录方式。
- 目标服务器
Runner配置与权限检查
- 确认
identity_file路径正确,且gitlab-runner用户对该文件拥有读取权限:
文件权限需设置为ls -l /home/gitlab-runner/.ssh/id_ed25519600,避免因权限过高被SSH拒绝。 - 检查Runner配置中的端口参数,确保无多余空格或特殊字符。
Proxmox虚拟机网络配置排查
- 确认QEMU虚拟机的网络模式(如桥接模式)配置正常,虚拟机可正常访问外部网络,同时外部可访问虚拟机的21223端口。
- 检查虚拟机网卡的IP配置,确保IP地址无冲突、网络路由正常。
内容的提问来源于stack exchange,提问作者Anton Chirkov
相关产品推荐
相关产品推荐

