Redis 7.0 远程连接失败主因是配置路径错误(应改 /etc/redis/redis.conf 而非 /www/server/redis/)、protected-mode 未设为 no、bind 未改为 0.0.0.0,以及系统防火墙和云安全组未同步放行 6379 端口。

宝塔面板里 Redis 7.0 默认拒绝远程连接,不是配置没改对,而是改错位置、漏关保护模式、或防火墙/云厂商策略没同步放开——这三处任一缺失都会导致 redis-cli -h x.x.x.x -p 6379 连不上,报 Connection refused 或卡在认证阶段。
确认 Redis 实际加载的配置文件路径
宝塔一键安装 Redis 后,/www/server/redis/redis.conf 是“看起来像配置文件”的假路径;真实生效的是 /etc/redis/redis.conf(可通过 systemctl status redis.service 输出中的 ExecStart=... 行确认)。直接改宝塔界面显示的路径无效。
- 执行
systemctl status redis.service,查找类似ExecStart=/usr/bin/redis-server /etc/redis/redis.conf的行 - 用
vim /etc/redis/redis.conf编辑该文件,别碰/www/server/redis/下的任何.conf - 若看到
include /opt/redis/redis.conf等引入语句,也要顺藤摸瓜改被 include 的那个文件
修改 bind 和 protected-mode 配置项
Redis 7.0 默认启用 protected-mode yes 且绑定 bind 127.0.0.1,两者叠加等于彻底封死外网。必须同时调整:
- 把
bind 127.0.0.1改成bind 0.0.0.0(不建议留空,否则可能 fallback 到 127.0.0.1) - 把
protected-mode yes改为protected-mode no;仅注释掉该行无效,必须显式设为no - 如果已设置
requirepass,确保密码不含特殊字符(如$、#),否则客户端解析可能出错;建议用英文+数字组合
放行 6379 端口(系统防火墙 + 云厂商安全组)
只开系统防火墙不够——阿里云/腾讯云/华为云后台的安全组默认拦截所有入向流量,6379 必须手动添加规则。
- 系统防火墙:运行
firewall-cmd --zone=public --add-port=6379/tcp --permanent再firewall-cmd --reload - 若用
ufw:执行ufw allow 6379并ufw reload - 云厂商控制台:进「安全组」→「入方向规则」→ 添加 TCP:6379,源 IP 建议限制为可信 IP 段(如
192.168.10.0/24),而非全放开0.0.0.0/0
验证连接时注意 Redis 7.0 的认证变化
Redis 7.0 默认用户是 default,但如果你只配了 requirepass,就仍走老式密码认证;若启用了 ACL,则必须指定用户名(否则报 WRONGPASS invalid username-password pair)。
- 测试命令优先用
redis-cli -h x.x.x.x -p 6379 -a your_password(明文密码,仅调试用) - 若提示
NOAUTH Authentication required,说明密码未生效,检查requirepass是否拼写错误、是否在正确配置文件中、是否被include覆盖 - 若提示
WRONGPASS且你确定密码没错,大概率是启用了 ACL 但没给default用户开权限,需连本地执行ACL setuser default on allcommands ~* >your_password
最容易被忽略的是:改完配置后忘记 systemctl restart redis,或者重启了但没检查 systemctl status redis 确认服务真正拉起来了——有时候配置语法错误会导致服务启动失败,状态显示 failed 却被当成“重启成功”。


















