通过SSH隧道连接Redis出现Connection reset by peer错误求排查
故障排查与解决步骤
1. 修正Redis配置错误
你当前redis.conf中存在两行独立的bind配置,属于不符合Redis规范的写法,多数Redis版本会出现配置冲突,仅最后一条绑定规则生效或直接加载默认规则。
将现有两行bind配置删除,替换为单条配置:
bind 0.0.0.0
修改完成后重启Redis服务,在VIRTUAL_MACHINE本地执行redis-cli -h localhost -p 6379 ping确认服务正常。
2. 验证中转服务器链路连通性
你当前的SSH隧道是通过TUNNEL_SERVER转发请求,你仅验证了Redis在本地的连通性,未验证中转节点的访问权限:
登录TUNNEL_SERVER,执行以下命令测试到Redis服务的连通性:
redis-cli -h VIRTUAL_MACHINE -p 6379 ping
如果返回异常,说明链路故障出在TUNNEL_SERVER到VIRTUAL_MACHINE之间:
- 检查
VIRTUAL_MACHINE的安全组、防火墙(iptables/firewalld)规则,确认已放行了TUNNEL_SERVERIP对6379端口的入站请求 - 检查两台主机之间是否存在网络ACL限制6379端口的跨主机访问
3. 验证本地SSH隧道状态
在你的本地办公机器上执行以下命令,确认SSH隧道监听正常:
# Linux/Mac 环境执行 lsof -i:10004
确认10004端口的监听进程为SSH进程后,尝试使用本地回环地址连接测试:
redis-cli -h 127.0.0.1 -p 10004 ping
4. 验证Redis超时配置
你当前配置的timeout 60表示空闲60秒的客户端会被Redis主动断开,若测试过程中存在等待,可以临时将该值改为0测试,确认是否是超时规则导致的连接重置。
Redis连通性恢复后,依赖Redis的Flower (Celery) 服务连接问题也会同步恢复。
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

