首页 > 数据库 >Redis 时遇到错误信息 DENIED Redis is running in protected mode because protected mode is enabled and no pas

Redis 时遇到错误信息 DENIED Redis is running in protected mode because protected mode is enabled and no pas

时间:2024-12-30 23:52:58浏览次数:1  
标签:保护模式 Redis redis protected mode 服务器

当你在使用 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 服务器,需要采取相应的措施来禁用保护模式或设置密码。以下是解决这个问题的几种方法:

方法 1:禁用保护模式

使用 CONFIG SET 命令

  1. 连接到 Redis 服务器:
    • 使用 Redis 客户端(如 redis-cli)从同一台主机连接到 Redis。
  2. 禁用保护模式:
    • 执行 CONFIG SET protected-mode no 命令来禁用保护模式。
  3. 使更改永久生效:
    • 执行 CONFIG REWRITE 命令将配置更改写入 redis.conf 文件。
      示例

        # 连接到 Redis 服务器
        redis-cli
      
        # 禁用保护模式
        CONFIG SET protected-mode no
      
        # 使更改永久生效
        CONFIG REWRITE
      

注意事项

  • 安全性:
    • 禁用保护模式后,Redis 服务器将不再限制来自非本地接口的连接。
    • 确保 Redis 服务器不直接暴露在互联网上,或者使用防火墙和安全组来限制访问。

方法 2:编辑 redis.conf 文件

  1. 编辑 redis.conf 文件:
    • 找到 protected-mode 配置项,将其设置为 no。
  2. 重启 Redis 服务器:
    • 保存文件并重启 Redis 服务器以使更改生效。
      示例

        # 编辑 redis.conf 文件
        sudo nano /etc/redis/redis.conf
      
        # 找到 protected-mode 配置项,将其设置为 no
        protected-mode no
      
        # 保存并退出编辑器
        Ctrl + X
        Y
        Enter
      
        # 重启 Redis 服务器
        sudo systemctl restart redis
      

方法 3:启动 Redis 时禁用保护模式

如果你只是手动启动 Redis 服务器进行测试,可以在启动命令中添加 --protected-mode no 选项。
示例

		# 启动 Redis 服务器并禁用保护模式
		redis-server --protected-mode no

方法 4:设置密码

设置密码是一种更安全的解决方案,它允许你通过身份验证来访问 Redis 服务器。

  1. 编辑 redis.conf 文件:
    • 找到 requirepass 配置项,设置一个强密码。
  2. 重启 Redis 服务器:
    • 保存文件并重启 Redis 服务器以使更改生效。
      示例

        # 编辑 redis.conf 文件
        sudo nano /etc/redis/redis.conf
      
        # 找到 requirepass 配置项,设置一个强密码
        requirepass yourStrongPassword
      
        # 保存并退出编辑器
        Ctrl + X
        Y
        Enter
      
        # 重启 Redis 服务器
        sudo systemctl restart redis
      

在客户端中使用密码

  1. 连接到 Redis 服务器:
    • 使用密码连接到 Redis 服务器。
  2. 验证密码:
    • 使用 AUTH 命令进行身份验证。
      示例

        # 连接到 Redis 服务器
        redis-cli
      
        # 验证密码
        AUTH yourStrongPassword
      

建议的最佳实践

  • 设置密码:
    • 使用密码是最安全的解决方案,可以有效防止未经授权的访问。
  • 使用防火墙:
    • 即使禁用保护模式,也应使用防火墙或安全组来限制对 Redis 服务器的访问。
  • 绑定到特定 IP:
    • 在 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
      

总结

  • 禁用保护模式:
    • 使用 CONFIG SET protected-mode no 和 CONFIG REWRITE 命令。
    • 或者编辑 redis.conf 文件将 protected-mode 设置为 no 并重启服务器。
    • 或者在启动 Redis 时添加 --protected-mode no 选项。
  • 设置密码:
    • 在 redis.conf 文件中设置 requirepass 配置项。
    • 使用 AUTH 命令在客户端进行身份验证。
  • 最佳实践:
    • 建议设置密码并结合防火墙规则来提高安全性。
    • 避免将 Redis 服务器直接暴露在互联网上。
      通过这些方法,可以解决 Redis 保护模式导致的连接问题,并确保 Redis 服务器的安全性和稳定性。

参考资源

标签:保护模式,Redis,redis,protected,mode,服务器
From: https://www.cnblogs.com/chenshibao/p/18642760

相关文章

  • 《docker高级篇(大厂进阶):1.Docker复杂安装详说》包括:安装mysql主从复制、安装redis集群
    @目录二、高级篇(大厂进阶)1.Docker复杂安装详说1.1安装mysql主从复制1.2安装redis集群1.2.1面试题:1~2亿条数据需要缓存,请问如何设计这个存储案例哈希取余分区一致性哈希算法分区哈希槽分区1.2.23主3从redis集群扩缩容配置案例架构说明整体流程图知识点总结图使用步骤:注意点说明......
  • [论文速览] Language Model Beats Diffusion - Tokenizer is Key to Visual Generatio
    Pretitle:LanguageModelBeatsDiffusion-TokenizerisKeytoVisualGenerationaccepted:ICLR2024paper:https://arxiv.org/abs/2310.05737code:non-officialref:https://mp.weixin.qq.com/s/oYlV93VHFfTjzYKUIld8JA关键词:tokenizer,languagemodel,diffusi......
  • UHP Modem Add
    UHPModemAdd  ==========End ......
  • 基于Redis有序集合实现滑动窗口限流
    滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数。通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化。整个限流可以概括为两个主要步骤:统计窗口内的请求数量应用限流规则Redis有序集合每个......
  • redis-4
    1.发布订阅模式(redis做消息中间件)1.1简介redis可以做消息中间件(MQ=messagequeue),通常通过订阅发布模式来实现(消息订阅发布模式),还可以使用基本数据类型List实现(点到点模式,可以使用lpush,lpop实现消息先进先出)。1.2消息中间件好处1.3redis实战发布者publisher/生产者produ......
  • Redis7在linux的下载与安装
    源码地址:https://github.com/redis/redis下载地址:https://redis.io/docs/latest/operate/rs/release-notes/配置安装环境:1、查询gcc环境是否配备gcc-v2、gcc安装命令yum-yinstallgcc-c++3、解压tar-zxvfredis-7.0.0.tar.gz4、安装(默认安装目录是:/usr/local/bin......
  • Redis可视化工具推荐:Another Redis Desktop Manager下载与详细使用教程
    Redis可视化工具推荐:AnotherRedisDesktopManagerRedis是一种高性能的键值数据库,广泛应用于缓存和消息队列等场景。对于开发者来说,命令行工具固然强大,但操作繁琐。而一款高效易用的可视化工具可以极大地提升使用效率。本篇将为大家推荐一款开源、跨平台且功能强大的Redis可......
  • 纯配时效服务-双Redis集群设计
    作者:京东物流王运成一、概述纯配时效服务作为物流下单环节中计算时效的重要组成部分,直接决定了下单的成功与否。其性能与稳定性至关重要,因为它们直接影响整个物流下单系统的运行效率及客户满意度。一个高效且稳定的纯配时效服务能够确保预计送达时间准确无误地展示给用户,从而提......
  • nuxt 添加 redis 缓存
    这个文章的主要目的是通过redis缓存nuxt2中服务端渲染的页面。从而优化加载速度以及减轻服务端的压力。Nuxt是什么Nuxt.js是一个基于Vue.js的开源框架,旨在为开发者提供一个简单的方式来构建高性能的Vue应用。它提供了许多功能,使得开发服务器端渲染(SSR)、静态站点生成......
  • MCP(Model Context Protocol)模型上下文协议 进阶篇2 - 消息格式和功能
    在开发前,首先带大家熟悉一下MCP协议的消息格式,和所有可能需要进行协商的功能:MCP协议通过JSON-RPC2.0规范定义了请求、响应和通知三种消息类型,确保通信的标准化和一致性。能力协商机制使客户端和服务器能够动态确定支持的协议功能,提升协议的灵活性和扩展性。子能力的引入进一......