You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Red Hat 5.9集群计算节点间SSH连接失败问题求助

排查Red Hat 5.9计算节点间SSH连接失败的方案

你这个集群场景我之前碰过类似的问题,既然头节点作为网关已经开了IPv4转发,而且头节点和计算节点之间的SSH互访都正常,那问题大概率出在计算节点本身的路由、防火墙或者SSH配置细节上,咱们一步步来排查:

第一步:确认计算节点的路由配置

先在两个计算节点上分别执行route -n命令,检查默认网关是否指向头节点的IP。比如头节点IP是192.168.1.10的话,路由表里应该有一条类似:

0.0.0.0         192.168.1.10     0.0.0.0         UG    0      0        0 eth0

的条目。

  • 如果默认网关不对,先用route add default gw <头节点IP>临时添加,再把网关配置写入/etc/sysconfig/network文件实现永久生效。

第二步:检查计算节点的防火墙规则

Red Hat 5.9默认用iptables做防火墙,先在计算节点上执行iptables -L -n查看规则:

  • 要是看到有REJECT或DROP针对22端口的规则,先临时关闭防火墙测试:service iptables stop,再尝试SSH连接。如果能通,就需要调整iptables规则,允许集群网段内的22端口流量,比如添加:
    iptables -A INPUT -s <集群网段> -p tcp --dport 22 -j ACCEPT
    
    执行完后记得用service iptables save保存规则。

第三步:验证计算节点间的基础网络连通性

先跳过SSH,先测底层网络:

  • 在compute-00-00上pingcompute-00-01的IP,看能不能通。如果ping不通,说明是底层网络问题,比如交换机端口配置、网卡参数冲突或者网段设置错误。
  • 如果ping通了,用telnet compute-00-01 22或nc -zv compute-00-01 22测试22端口是否开放。要是连不上,说明目标节点的SSH服务没监听正确的网卡,或者被防火墙拦截了。

第四步:检查计算节点的SSH服务配置

打开计算节点上的/etc/ssh/sshd_config文件,重点检查几个参数:

  • ListenAddress:是不是只绑定了头节点方向的网卡IP?如果是,改成0.0.0.0或者集群内部的网卡IP,让服务监听所有可用网卡。
  • AllowUsers/DenyUsers:有没有配置限制只有头节点的用户能登录?如果有,需要添加计算节点的用户或者删除这类限制规则。
  • 修改配置后,重启SSH服务生效:service sshd restart。

第五步:排查SELinux限制

Red Hat 5.9的SELinux可能会阻止跨节点SSH访问,先临时关闭SELinux测试:setenforce 0,再尝试连接。如果能通,就调整SELinux布尔值而非直接关闭:

setsebool -P sshd_network_connect 1

也可以修改/etc/selinux/config文件,把SELINUX设置为permissive(保持规则日志但不强制执行)。

第六步:查看SSH连接的详细日志

如果上面的步骤都没解决问题,在发起连接的计算节点上执行ssh -vvv compute-00-01,查看详细的连接日志,里面会明确提示失败环节(比如主机名解析失败、连接超时还是被服务端拒绝)。同时在目标计算节点上查看/var/log/secure日志,里面会有SSH服务的具体拒绝原因。


内容的提问来源于stack exchange,提问作者hamaor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:07:51