我想在我的产品红宝石上禁用protected-mode。关于下面的错误,我从我的另一个Redis实例中获得,我可以通过从运行它的主机器连接到Redis来实时禁用它。
拒绝Redis在保护模式下运行,因为启用了保护模式,没有指定绑定地址,也没有向客户端请求身份验证密码。在这种模式下,连接只能从回送接口接受。如果您想从外部计算机连接到Redis,您可以采用以下解决方案之一: 1)只需禁用保护模式,通过连接服务器运行的同一台主机从回送接口发送命令“CONFIG SET - mode no”,但是如果您这样做,请确保Redis不能从internet公开访问。使用配置重写使此更改永久化。2)或者,您可以通过编辑Redis配置文件并将保护模式选项设置为'no',然后重新启动服务器,从而禁用受保护模式。3)如果只为测试而手动启动服务器,则使用“--保护模式--no”选项重新启动服务器。4)设置绑定地址或身份验证密码。注意:您只需要做上述一件事,服务器就可以开始接受来自外部的连接。
但是当我连接并试图禁用它时,我会得到错误的(error) ERR Unsupported CONFIG parameter: protected-mode。
没有配置或其他任何东西-所有的安全都是由防火墙规则管理的。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问题中找不到任何提示。
甚至不可能更改绑定地址或任何其他配置参数。我需要首先启用配置更改吗?
127.0.0.1:6379> config set bind "127.0.0.1 11.12.13.14"
(error) ERR Unsupported CONFIG parameter: bind发布于 2017-07-12 09:06:00
结果显示,当前运行的服务器与我安装的二进制文件不同。
只需通过redis-cli连接到您的redis实例,并键入INFO 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实例运行了将近127天,并使用了redis_version:3.0.7。
重新启动您的服务器,并确保您确实重新启动了它!例如,在大多数Linux发行版中,您可以通过点击以下命令来做到这一点。
root@svim-redis03 ~ # service redis-server stop
Stopping redis-server: redis-server.通过尝试连接redis-cli来检查它是否真的离线。如果仍然可以连接,则实例仍在运行。通过搜索活动的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如您所见,仍然在运行实例(process : 26720)。使用以下命令退出它。
kill 26720在您结束进程之后,再次使用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.confhttps://serverfault.com/questions/861519
复制相似问题