EC2实例Redis Sentinel报错:SYNC套接字连接被拒绝如何解决?
Redis主从同步SYNC连接拒绝报错排查方案
你遇到的Error condition on socket for SYNC: Connection refused报错本质是Redis从节点无法和日志中指定的主节点12.205.144.275:6379建立TCP连接,导致主从同步流程无法启动。
常见触发原因
- 主节点Redis进程未正常运行,或未监听6379端口
- EC2安全组规则限制:主节点入站规则未开放两个从节点IP的6379端口访问权限
- 主节点Redis配置限制:
bind参数仅绑定127.0.0.1,未对外暴露服务;或protected-mode处于开启状态且未配置访问密码、白名单 - 故障转移后主节点IP发生变更,但从节点的主节点指向仍为旧IP
- 操作系统层面防火墙(iptables、firewalld等)或网络ACL拦截了从节点到主节点6379端口的流量
- 日志中记录的主节点IP
12.205.144.275本身为无效IP(IPv4每个分段取值范围为0-255),配置错误直接导致连接失败
排查解决步骤
- 验证主节点服务状态:登录主节点EC2执行
ps aux | grep redis确认进程存活,执行ss -tunlp | grep 6379确认Redis正常监听6379端口,且监听地址不是仅绑定127.0.0.1 - 验证网络连通性:在从节点EC2执行
nc -zv 12.205.144.275 6379或telnet 12.205.144.275 6379测试端口连通性,若不通优先排查网络规则 - 检查EC2安全组配置:确认主节点EC2的入站安全组,开放了两个从节点IP对6379端口的访问权限,同时确认从节点出站规则未限制6379端口访问
- 调整主节点Redis配置:查看主节点redis.conf文件,
bind参数建议配置为0.0.0.0或同时绑定本机服务IP;若protected-mode为yes,可改为no,或配置requirepass访问密码,同时在从节点配置masterauth参数填写对应密码 - 校验故障转移后主节点指向:登录Sentinel节点执行
SENTINEL get-master-addr-by-name <你的主节点集群名称>确认当前生效的主节点IP端口,对比从节点日志中的IP是否一致,若不一致检查Sentinel配置是否正确,是否能正常触发从节点的主节点切换逻辑 - 修正IP配置错误:若确认日志中的12.205.144.275为填错的无效IP,修改Sentinel配置或从节点的
replicaof配置中的主节点IP为正确地址即可 - 排查系统防火墙规则:登录主节点执行
iptables -L或firewall-cmd --list-all确认操作系统层面没有拦截6379端口的访问请求,如有规则调整放行对应从节点IP的访问即可
内容的提问来源于stack exchange,提问作者krishnakumar Balasubramaniam
相关产品推荐
相关产品推荐

