我想在我的产品Redis上禁用protected-mode 。 关于我从其他Redis-Sentinel实例获得的以下错误,我可以通过从运行的主机连接到Redis来禁用它。
DENIED Redis运行在保护模式,因为启用了保护模式,没有指定绑定地址,没有向客户端请求authentication密码。 在这种模式下,连接只能从回送接口接受。 如果您想从外部计算机连接到Redis,则可以采用以下解决scheme之一:
1)只要禁用保护模式,从服务器运行的同一主机连接到Redis,从回送接口发送命令“CONFIG SET保护模式no”,但如果你这样做,则不能从互联网公开访问。 使用CONFIG REWRITE使此更改永久。
2)或者,您可以通过编辑Redisconfiguration文件并将保护模式选项设置为“no”来禁用保护模式,然后重新启动服务器。
- 我如何设置Redis在Mac上自动在我的Ubuntu机器上运行
- 适用于Windows或Linux的Nginx – 推荐用于Redis群集,推荐configuration是什么?
- Redis复制中的静态主机
- 如何与厨师安装Redis?
- RedisToGo – 远程Redis服务器。 何时使用?
3)如果您只是为了testing而手动启动服务器,请使用“ – 保护模式否”选项重新启动服务器。
4)设置绑定地址或authentication密码。
注:您只需要执行上述操作之一,以便服务器开始接受来自外部的连接。
但是,当我连接,并尝试禁用它,我得到错误(error) ERR Unsupported CONFIG parameter: protected-mode 。
没有authconfiguration或其他任何东西 – 所有的安全性由防火墙规则pipe理。 redis.conf几乎是默认的。
root@svim-redis03 /etc/redis # redis-cli 127.0.0.1:6379> CONFIG GET protected* (empty list or set) 127.0.0.1:6379> CONFIG GET bind* 1) "bind" 2) "127.0.0.1" 127.0.0.1:6379> CONFIG SET protected-mode no (error) ERR Unsupported CONFIG parameter: protected-mode 127.0.0.1:6379> exit root@svim-redis03 /etc/redis # redis-server --version Redis server v=3.2.9 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=86450d2ba8219c1e
有什么我需要检查或更改之前? 我无法在文档或GitHub问题中find任何提示。
甚至无法更改绑定地址或任何其他configuration参数。 我需要先启用configuration更改吗?
127.0.0.1:6379> config set bind "127.0.0.1 11.12.13.14" (error) ERR Unsupported CONFIG parameter: bind
事实certificate,当前运行的服务器与我安装的二进制文件版本不同。
只需通过redis-cli连接到你的redis实例并inputINFO server ,它将返回一堆信息。
127.0.0.1:6379> INFO server # Server redis_version:3.0.7 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:869e89100d5ea8c2 redis_mode:standalone os:Linux 4.2.0-35-generic x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.8.4 process_id:26720 run_id:6645270dd2ac6a7f96caa054f9dbba9e66566755 tcp_port:6379 uptime_in_seconds:10971777 uptime_in_days:126 hz:10 lru_clock:6676576 config_file:/etc/redis/redis.conf
正如你所看到的,这个redis-instance运行将近127天,并使用redis_version:3.0.7 。
重新启动你的服务器,并确保你真的重新启动它! 例如,对于大多数Linux发行版,您可以通过点击以下命令来完成。
root@svim-redis03 ~ # service redis-server stop Stopping redis-server: redis-server.
通过尝试连接到redis-cli来检查它是否真的离线。 如果仍然可以连接实例仍在运行。 通过search活动的redis进程来检查这一点。
root@svim-redis03 ~ # ps -efl |grep redis 1 S redis 12418 1 0 80 0 - 10673 ep_pol 2016 ? 05:33:17 /usr/bin/redis-server 127.0.0.1:6381 1 S redis 12442 1 0 80 0 - 11697 ep_pol 2016 ? 05:33:46 /usr/bin/redis-server 127.0.0.1:6382 1 S redis 12453 1 0 80 0 - 10673 ep_pol 2016 ? 05:40:17 /usr/bin/redis-server 127.0.0.1:6383 4 S root 16570 16386 0 80 0 - 2489 wait_w 10:42 pts/7 00:00:00 tail -f /var/log/redis/redis-server-6379.log 0 S root 17064 12637 0 80 0 - 3617 pipe_w 10:47 pts/1 00:00:00 grep --color=auto redis 1 S redis 26720 1 0 80 0 - 453041 ep_pol Mar07 ? 08:37:01 /usr/bin/redis-server 127.0.0.1:6379
正如你所看到的,还有一个实例(进程号:26720)正在运行。 使用以下命令退出它。
kill 26720
在杀死进程之后,如果实例真的closures,请使用ps -efl |grep redis再次检查。
最后再次启动它
root@svim-redis03 ~ # service redis-server start Starting redis-server: redis-server.
现在检查实例是否运行正确的版本。
root@svim-redis03 ~ # redis-cli 127.0.0.1:6379> INFO server # Server redis_version:3.2.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:86450d2ba8219c1e redis_mode:standalone os:Linux 4.2.0-35-generic x86_64 arch_bits:64 multiplexing_api:epoll gcc_version:4.8.4 process_id:17135 run_id:40d6fa2e2b25e8f5b97a3c97ec1bddb8edda0014 tcp_port:6379 uptime_in_seconds:11 uptime_in_days:0 hz:10 lru_clock:6677102 executable:/usr/bin/redis-server config_file:/etc/redis/redis.conf