无法从SCM服务器克隆仓库 能ping通IP但报No route to host怎么办
同局域网可ping通SCM-Manager但克隆仓库报
No route to host解决方法 注:可正常ping通服务器IP说明三层网络路由连通性正常,该场景下的
No route to host报错基本为TCP端口监听异常、端口被拦截导致,无需排查IP冲突、静态路由配置类问题。
按以下优先级排查:
- 确认SCM-Manager服务已对外监听端口
SCM-Manager为Java应用,默认开放两个端口:HTTP访问端口8080、SSH克隆端口2222。在SCM服务器上执行命令ss -tulnp | grep java查看监听状态:- 如果对应端口的Local Address列显示为
127.0.0.1:8080/127.0.0.1:2222,说明服务仅绑定本地回环地址,局域网其他设备无法访问。 - 修复方式:修改SCM-Manager配置文件中的
server.address(HTTP)、ssh.bindAddress(SSH)配置项为0.0.0.0,重启SCM服务即可。
- 如果对应端口的Local Address列显示为
- 放通服务器防火墙的SCM对应端口
系统默认防火墙会拦截未授权的TCP端口访问,这是该问题最高发的原因。如果你手动修改过SCM的默认服务端口,将以下命令中的8080、2222替换为你实际配置的端口即可:- 若服务器使用firewalld(CentOS/RHEL/Fedora默认防火墙),依次执行以下命令放通端口:
firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --add-port=2222/tcp --permanent firewall-cmd --reload - 若服务器使用ufw(Ubuntu/Debian默认防火墙),依次执行以下命令放通端口:
ufw allow 8080/tcp ufw allow 2222/tcp ufw reload - 如果服务器安装了第三方安全防护软件,需同步在软件规则中放通上述两个端口。
- 若服务器使用firewalld(CentOS/RHEL/Fedora默认防火墙),依次执行以下命令放通端口:
- 核对克隆地址的端口正确性
检查SCM-Manager仓库页面给出的克隆地址,确认地址中带的端口和服务实际监听端口一致:HTTP克隆不要默认用80端口、SSH克隆不要默认用22端口,SCM-Manager默认不使用这两个端口提供服务。 - 客户端侧连通性验证
在执行克隆操作的工作站上,用telnet 192.168.1.172 8080、telnet 192.168.1.172 2222命令测试端口连通性:- 如果telnet能连通,再执行clone操作即可正常拉取代码,后续commit、push操作只要账号权限配置正确即可正常使用。
- 如果telnet依然报错,临时关闭客户端本地防火墙重试,同时检查客户端是否配置了全局代理、静态路由规则拦截了对应网段的TCP请求。
- 局域网ACL规则检查
如果是企业办公局域网,确认上联交换机、路由器没有配置端口ACL规则,拦截了终端到SCM服务器8080、2222端口的TCP请求。
内容的提问来源于stack exchange,提问作者Tushar Bhattacharyya
相关产品推荐
相关产品推荐

