Redis客户端连不上?可以通过以下方法排查,亲测可用!

858 阅读3分钟

最近在Linux系统上部署 Redis 的时候,遇到了一个看似简单却卡了我半天的小问题 —— Redis 客户端怎么也连不上服务端报Can’t connect to redis-server.。最终通过一系列排查和配置,成功解决。为了不让大家踩同样的坑,特此记录一下整个排查过程和解决方案,希望对你有帮助!

🧩 问题背景

  • 本机 IP192.168.1.1
  • Redis 服务端 IP192.168.1.2
  • Redis 已正确安装,并运行在 6379端口
  • 可以 ping 通 Redis 所在服务器,也能用 SSH 工具远程登录,但就是 Redis 客户端连接不上

🧪 1. 检查 Redis 是否正在运行

在服务器上执行以下命令:

ps -ef | grep redis

输出类似如下信息即代表 Redis 正常运行,并且只能本地访问:

xxx   2559340       1  0 14:11 ? 00:00:02 /data/.../redis-server 127.0.0.1:6379

如果本地能连通但远程不行,继续往下看。

🔍 2. 检查 Redis 配置文件 redis.conf

确认 Redis 是否绑定了正确的监听 IP 或允许外部访问。

首先先检查你的redis服务是用的哪个conf配置文件:

# 这里的redis服务名改成你自己的
systemctl cat xxx.service

这块就是你的对应redis服务用到的conf配置文件,必须在这个配置文件中修改否则无效

ExecStart=nohup /data/xxx/xxx.conf

查到之后重点检查两项配置:

bind 0.0.0.0     # 允许监听所有 IP(默认可能是 127.0.0.1,也可以直接注释掉)
protected-mode no   # 关闭保护模式,允许远程连接
requirepass yourpassword  # 可选,设置密码

修改完成后,记得重启 Redis:

sudo systemctl restart xxx.service

🔒 3. 检查服务器防火墙是否开放端口

很多时候连不上 Redis,是因为服务器防火墙没开放端口!

查看当前开放的端口:

sudo firewall-cmd --list-all

输出示例:

public (active)
  ports: 3306/tcp 9090/tcp ...

确认没有 6379?那就加上!

sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd --reload

再次 --list-all 验证是否成功添加。

🧪 4. 使用 Telnet 或 Redis 客户端进行远程连接测试


✅ 总结一下常见连不上 Redis 的原因

问题排查方法
Redis 未运行ps -efredis-cli 本地测试
redis.conf 配置不当bindprotected-mode 设置
防火墙未开放端口firewall-cmd 查看并添加端口
网络不通pingtelnet 测试
Redis 设置了密码未输入redis-cli -a 添加密码参数

🧠 小贴士

  • 不建议生产环境关闭 protected-mode,可以通过配置密码代替
  • 生产环境要设置访问控制,避免 Redis 被未授权访问
  • 使用 iptables 或云平台安全组时,也别忘了检查端口策略

亲测,这一套排查下来,Redis 远程连接基本都能搞定!

如果你也遇到了 Redis 连接不上,不妨试试这些方法。有问题欢迎评论区一起讨论哈 😊