requirepass 8f3c9a1e5b7d4c2f6a0e9b8d7c6f5a4e
bind 127.0.0.1
protected-mode yes

redis-cli -h 公网IP 直接返回 PONG,不用密码。INFO 能看到版本和连接数,CONFIG GET dir 也照常返回。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:redis.conf 里 requirepass 还是注释状态,protected-mode 又被关掉,绑定地址还是 0.0.0.0。这三项凑一起,能连到端口的人都能读写。

「Redis 未授权访问」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:先设 requirepass,密码用三十二位随机串,别复用站点数据库那套;bind 改回 127.0.0.1 或内网地址,protected-mode 打开;安全组只放行应用服务器,改完用 redis-cli 验证无密码连接被拒。

确认没问题再收工,不带密码连接返回 NOAUTH,外网 telnet 6379 不通。

作者 9823189