Redis怎么关闭密码认证直接登录,设置不用密码的那些事儿
- 问答
- 2026-01-18 16:02:04
- 4
主要基于Redis官方文档以及常见的运维社区经验,如Stack Overflow、Redis中国用户组等讨论)
要理解Redis默认情况下是为了追求最高的性能和最简单的部署而设计的,在初始安装后,Redis是没有设置密码的,允许任何能连接到Redis服务器的客户端直接进行操作,不需要任何认证,这在你自己的开发电脑上或者完全受信任的、隔离的内部网络中可能没问题,但放在任何可能被其他机器访问到的环境(比如云服务器)里,这就是一个极其危险的安全漏洞,相当于你把家里的大门敞开着,谁都可以进来。
我们谈论“关闭密码认证”或“设置不用密码”,其实通常是指两种情况:第一种是Redis本身有密码,你现在想把它去掉,恢复到默认的无密码状态;第二种是你确认你的环境绝对安全,主动选择不设置密码,无论如何,强烈建议在生产环境中为Redis设置一个强密码。
我们来看看具体怎么操作,整个过程的核心在于修改Redis的配置文件,这个文件通常名字叫 redis.conf,它在你的Redis安装目录下,在不同的Linux发行版中,它可能位于 /etc/redis/redis.conf 或 /usr/local/etc/redis.conf 等路径。
第一步:找到并打开配置文件
你需要用一个文本编辑器来修改这个文件,比如使用 vim 或 nano,因为修改配置文件需要管理员权限,所以命令通常是这样的:
sudo vim /etc/redis/redis.conf
第二步:找到关于密码设置的行
在这个配置文件里,你需要寻找一个叫做 requirepass 的配置项,这个配置项就是用来给Redis设置密码的,你可以用编辑器的搜索功能(在vim里按 键,然后输入 requirepass 来查找)。
你会看到类似这样的一行:
# requirepass foobared
这行最前面有个 符号,这表示这一行是注释,是不生效的。foobared 是Redis文档里举例用的一个默认密码例子,这正好说明了Redis默认是没有开启密码认证的。
如果你想从有密码状态改为无密码
如果你的Redis之前已经设置了密码,requirepass 这一行应该是没有 注释的,并且后面跟着你设置的密码,
requirepass mySuperSecretPassword123
要关闭密码认证,你只需要在这一行的最前面加上一个 符号,把它变成注释就行了,修改后应该是:

# requirepass mySuperSecretPassword123
这样,你就“关闭”了密码认证。
如果你确认要维持无密码状态
如果你的Redis本来就是无密码的,或者你刚刚完成了情况一的操作,那么你需要确保 requirepass 这一行是被注释掉的,确保它看起来像这样:
# requirepass foobared
只要这一行被注释,Redis就不会要求客户端进行密码认证。
第三步:重启Redis服务使配置生效 非常重要的一点是,仅仅修改配置文件是不会立即生效的,你必须重启Redis服务,新的配置才会被加载。 重启服务的命令因你的操作系统和安装方式而异,常见的有:
sudo systemctl restart redis # 对于使用systemd的系统,如较新的CentOS、Ubuntu
或者

sudo service redis-server restart # 对于使用init.d的系统
重启之后,你的Redis服务器就不再需要密码了。
第四步:验证是否成功
你可以用一个Redis客户端尝试连接,看看是否还需要密码,直接运行 redis-cli 命令进入交互界面,然后尝试执行一个命令,ping,如果服务器返回 PONG,说明你成功连接并且不需要密码,如果你之前有密码,现在没注释掉配置但没重启服务,或者重启失败,那么可能还会要求你输入密码。
一些非常重要的补充和警告
-
绑定地址(bind)与保护模式(protected-mode):光去掉密码还不够,在Redis较新的版本(3.2以后)中,引入了一个叫“保护模式”的安全特性,如果Redis没有设置密码(
requirepass为空),并且没有明确配置绑定IP地址(bind指令)的话,保护模式会自动开启,在保护模式下,Redis只会接受来自本机(127.0.0.1)的回环连接,会拒绝来自其他外部IP地址的连接请求,这是Redis的一道安全防线,如果你在去掉密码的同时,又需要让其他机器能够访问,你必须在配置文件里明确设置bind指令,bind 0.0.0.0(绑定到所有网络接口),但这会使得你的Redis暴露在公网上,风险极高!或者更安全地,只绑定到你信任的内网IP地址。 -
防火墙是关键:既然你选择了不使用密码这种“弱”认证方式,那么网络层面的隔离就必须做得非常严格,你必须使用服务器防火墙(如iptables、firewalld)或者云服务商的安全组规则,严格限制只有你指定的、绝对可信的IP地址才能访问Redis的端口(默认6379),这是防止陌生人扫描并直接访问你数据库的最后一道屏障。
-
命令行客户端连接:在无密码状态下,你使用
redis-cli连接就非常简单了,直接输入redis-cli即可,如果Redis有密码,你需要在连接时用-a参数指定密码,redis-cli -a yourpassword,或者在连接后使用AUTH yourpassword命令认证。
关闭Redis密码认证本身是一个简单的操作,就是注释掉配置文件里的 requirepass 行并重启服务,但真正的重点在于,你必须充分理解这个操作带来的巨大安全风险,并采取额外的网络隔离措施(如防火墙)来补偿失去密码保护后的安全性,对于绝大多数暴露在网络中的场景,设置一个强密码永远是更简单、更推荐的安全实践。
本文由畅苗于2026-01-18发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/83127.html
