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 ACCEPTservice 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
相关产品推荐
相关产品推荐

