如何在Redis 3.2.6 Sentinel中禁用受保护模式?
我已尝试以下错误消息建议的所有操作: (错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码。在此模式下,只能从环回接口接受连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:1)通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,然而,若你们这样做的话,请确保Redis不能从互联网上公开访问。使用“配置重写”将此更改永久化。2) 或者,您可以通过编辑Redis配置文件,将受保护模式选项设置为“否”,然后重新启动服务器来禁用受保护模式。3) 如果只是为了测试而手动启动服务器,请使用“--protectedmodeno”选项重新启动服务器。4) 设置绑定地址或身份验证密码。注意:您只需要执行上述操作之一,服务器就可以开始接受来自外部的连接 我的如何在Redis 3.2.6 Sentinel中禁用受保护模式?,redis,sentinel,redis-sentinel,Redis,Sentinel,Redis Sentinel,我已尝试以下错误消息建议的所有操作: (错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码。在此模式下,只能从环回接口接受连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:1)通过从服务器运行的同一主机连接到Redis,从环回接口发送命令“CONFIG SET protected mode no”,即可禁用受保护模式,然而,若你们这样做的话,请确保Redis不能从互联网上公开访问。使用“配置重写”将此更改永久化。2)
/etc/redis/sentinel.conf
:
daemonize yes
sentinel myid XXX
sentinel monitor master XXX 6379 2
sentinel down-after-milliseconds master 60000
sentinel config-epoch master 0
protected-mode no
bind 0.0.0.0
port 26379
port 6379
bind 0.0.0.0
protected-mode no
我还尝试添加了sentinel auth pass master XXX
我的整个后端都在私有子网上。我通过VPN进入防火墙后面的数据中心,来自同一个专用网络,我仍然只能在本地连接,而不会收到令人沮丧的错误消息
服务器环境:Debian 8、Redis 3.2.6客户端环境:Ubuntu 16.10,redis cli 3.2.1
Redis实例:3
哨兵实例:3
我不仅做了一件事,还做了建议的三分之四的事情(没有设置命令行标志)。有人有任何指导或想法吗?很明显,我遗漏了一些我无法从错误消息、文档、Stackoverflow、Google和试用错误中找出的东西。我想我应该先在这里发布一个问题,然后再深入研究源代码 感谢您的帮助。谢谢 。。。而且,是的,我在配置更改后重新启动了守护进程。:) 正如您所知,暴露在互联网上的未受保护的Redis实例引发了几个问题。在我的博客文章中,我谈到了为什么默认情况下限制绑定到127.0.0.1可能是一个可用性问题,更糟糕的是,可能无法解决问题(请评论“bind”语句并重新启动!) 同一篇博文还介绍了一种攻击,脚本小子们大量使用这种攻击来入侵Redis实例(我猜,认真的安全研究人员已经能够做到这一点) 所以我最终决定在Redis3.2正式发布之前做点什么:保护模式就是结果,它将被合并到3.2RC2中 此提交引入的不稳定分支中已经提供了该功能。这就是它的工作原理 当且仅当: 已启用保护模式(这是配置文件和无配置默认设置中的默认设置) 如果未配置身份验证密码 如果没有使用“bind”指令将Redis限制在某些接口上 然后Redis只接受来自环回IPv4和IPv6地址的连接。接受外部连接只是为了向客户端发送一个错误,让用户知道发生了什么:
> PING
(错误)DENIED Redis正在保护模式下运行,因为已启用保护模式,未指定绑定地址,未向客户端请求身份验证密码
在此模式下,仅接受来自回溯接口的连接。如果要从外部计算机连接到Redis,可以采用以下解决方案之一:
--protectedmodeno
选项重新启动服务器
这应该以合理的方式保护错误,同时为用户提供线索,而不是拒绝连接。请分享您的反馈意见,以便我们可以根据需要对此功能进行更改,然后再将其合并到Redis 3.2 RC2中。谢谢。你修好了吗?我遇到了同样的问题:-/