当你在使用 Redis 时遇到错误信息 DENIED Redis is running in protected mode because protected mode is enabled and no password is set for the default user,这意味着 Redis 服务器出于安全考虑,只接受来自本地回环接口(loopback interface)的连接。如果你需要从外部连接到 Redis 服务器,需要采取相应的措施来禁用保护模式或设置密码。以下是解决这个问题的几种方法:
执行 CONFIG REWRITE 命令将配置更改写入 redis.conf 文件。
示例
# 连接到 Redis 服务器
redis-cli
# 禁用保护模式
CONFIG SET protected-mode no
# 使更改永久生效
CONFIG REWRITE
注意事项
保存文件并重启 Redis 服务器以使更改生效。
示例
# 编辑 redis.conf 文件
sudo nano /etc/redis/redis.conf
# 找到 protected-mode 配置项,将其设置为 no
protected-mode no
# 保存并退出编辑器
Ctrl + X
Y
Enter
# 重启 Redis 服务器
sudo systemctl restart redis
如果你只是手动启动 Redis 服务器进行测试,可以在启动命令中添加 --protected-mode no 选项。
示例
# 启动 Redis 服务器并禁用保护模式
redis-server --protected-mode no
设置密码是一种更安全的解决方案,它允许你通过身份验证来访问 Redis 服务器。
保存文件并重启 Redis 服务器以使更改生效。
示例
# 编辑 redis.conf 文件
sudo nano /etc/redis/redis.conf
# 找到 requirepass 配置项,设置一个强密码
requirepass yourStrongPassword
# 保存并退出编辑器
Ctrl + X
Y
Enter
# 重启 Redis 服务器
sudo systemctl restart redis
在客户端中使用密码
使用 AUTH 命令进行身份验证。
示例
# 连接到 Redis 服务器
redis-cli
# 验证密码
AUTH yourStrongPassword
建议的最佳实践
在 redis.conf 文件中设置 bind 配置项,绑定到特定的 IP 地址,而不是 0.0.0.0。
示例:绑定到特定 IP
# 编辑 redis.conf 文件
sudo nano /etc/redis/redis.conf
# 找到 bind 配置项,绑定到特定的 IP 地址
bind 127.0.0.1 192.168.1.100
# 保存并退出编辑器
Ctrl + X
Y
Enter
# 重启 Redis 服务器
sudo systemctl restart redis
总结
参考资源
参与评论
手机查看
返回顶部