Redis怎么设置登录密码保证账号安全,配置密码那些事儿你知道吗
- 问答
- 2026-01-12 13:49:26
- 3
主要综合自Redis官方文档关于安全性的章节、多个技术社区如Stack Overflow的常见问答、以及《Redis实战》等书籍中的安全实践建议)
Redis作为一个高性能的内存数据库,默认安装后是没有设置密码的,这意味着任何能连接到Redis服务器的人都可以直接执行命令,查看甚至修改数据,这无疑是非常危险的,这就好比你家的大门装了一把世界上最先进的锁,但你却从来不锁门,任何人都可以随意进出,给Redis设置一个强密码是保证其安全性的第一道,也是最重要的一道防线。
具体该怎么操作呢?其实过程并不复杂,主要分为两步:修改配置文件和重启服务。
第一步:找到并修改Redis的配置文件
Redis的所有行为都由一个叫做 redis.conf 的文件控制,这个文件的位置因安装方式不同而有所差异。
- 如果你是通过Linux系统的包管理器(比如
apt或yum)安装的,它通常位于/etc/redis/redis.conf。 - 如果你是自己下载源码编译安装的,它可能在你的Redis安装目录下。
- 在Windows系统上,它就在你解压Redis的文件夹里。
用文本编辑器(如Linux的vim、nano,Windows的记事本)打开这个文件,你需要找到关于密码设置的那一行,你可以搜索 requirepass 这个关键词,这一行是被注释掉的(行首有个号),看起来像这样:
# requirepass foobared

这一行的意思就是“要求密码”,而foobared是Redis默认提供的一个示例密码,我们的任务就是激活这个配置并修改密码,你只需要做两件事:
- 去掉行首的 号,取消注释。
- 将
foobared替换成你自己设定的、足够复杂的密码。requirepass MySuperStrongPassword123!
这里要特别强调密码的强度,千万不要使用像“123456”、“password”、“redis”这样简单易猜的密码,一个强密码应该包含大写字母、小写字母、数字和特殊符号,并且有足够的长度(建议至少12位以上)。
第二步:重启Redis服务让配置生效
仅仅修改了配置文件还不够,因为Redis服务是在内存中运行的,它不会自动感知到配置文件的变化,你必须告诉它:“嘿,我改了配置,你重新读一下!”

- 在Linux系统中,如果你使用systemd管理服务,通常可以使用命令
sudo systemctl restart redis或sudo systemctl restart redis-server(具体服务名可能略有不同)来重启。 - 如果是用源码编译直接运行的,你需要先停止Redis进程,然后再用配置文件重新启动它,
redis-server /path/to/your/redis.conf
重启之后,你的Redis就有了密码保护。
设置了密码之后怎么连接呢?
密码设好了,你再像以前那样直接用redis-cli连接进去,会发现执行任何命令都会报错,提示(error) NOAUTH Authentication required.(错误:需要认证),这说明密码已经起作用了。
这时,你有两种方式进行认证登录:

- 在连接后认证:先连接上Redis,然后输入
AUTH 你设置的密码命令进行认证。$ redis-cli 127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 127.0.0.1:6379> AUTH MySuperStrongPassword123! OK 127.0.0.1:6379> keys * # 现在可以正常执行命令了 (empty list or set) - 在连接时直接认证:更便捷的方式是在启动
redis-cli时就通过-a参数指定密码:redis-cli -a MySuperStrongPassword123!
但是需要注意的是,第二种方式虽然方便,但可能会在你的命令行历史记录中留下密码痕迹,有一定安全风险,在生产环境中,更推荐使用第一种方式,或者通过其他安全的方式传递密码。
除了设置密码,还有哪些需要注意的?
光有密码可能还不够“保险”,根据Redis官方文档和常见的安全实践,你最好还能做以下几件事来加固安全:
-
禁止外网访问:在配置文件
redis.conf中,找到bind指令,默认可能是bind 127.0.0.1,这表示只允许本机连接,千万不要将其设置为bind 0.0.0.0,除非你非常清楚这样做的后果(即允许世界上任何能访问你服务器IP的机器来连接),最安全的做法是只绑定到确需使用的内网IP地址。 -
修改默认端口:Redis的默认端口是6379,这几乎是尽人皆知的,就像小偷都知道一楼右手边的房间通常是卧室一样,你可以在配置文件中修改
port指令,将其改为一个不常用的端口号,6380,这样能避免一些简单的自动化扫描攻击,连接时就需要指定端口:redis-cli -p 6380。 -
重命名或禁用危险命令:对于一些极其危险的命令,
FLUSHALL(清空所有数据)、FLUSHDB(清空当前数据库)、CONFIG(修改配置)等,可以考虑在配置文件中将它们重命名成一个难以猜测的字符串,或者直接禁用。rename-command FLUSHALL ""# 禁用FLUSHALL命令rename-command CONFIG "a_very_long_random_string"# 将CONFIG命令重命名 这样即使有人突破了密码认证,也很难执行这些破坏性操作。
给Redis设置密码是保证数据安全的基础操作,配合绑定内网、修改端口、禁用危险命令等措施,能大大提升Redis实例的安全性,这些配置都在 redis.conf 文件中完成,修改后别忘了重启服务,安全无小事,多一层防护就少一分风险。
本文由邝冷亦于2026-01-12发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/79345.html
