问题背景

在使用Jedis连接Linux上的Redis时,可能会出现“DENIED Redis is running in protected mode”错误。Redis 3.2之后的版本默认开启了protected mode,该模式下只允许来自本地主机的连接请求。因此,如果要从远程主机连接到Linux上的Redis,就需要解决该问题。

解决方法

解决以上问题的方法主要有三种:关闭protected mode、绑定远程主机、修改Redis配置文件。

方案一:关闭protected mode

1. 首先,使用SSH登录到运行Redis的Linux服务器。

2. 打开Redis的配置文件,通常位于/etc/redis/redis.conf。

sudo vi /etc/redis/redis.conf

3. 在打开的配置文件中,找到“protected-mode yes”这一行,并将其改为“protected-mode no”。

4. 保存并关闭配置文件。

5. 重启Redis服务器,使配置生效。

sudo systemctl restart redis

通过上述操作,成功关闭了Redis的protected mode,即可允许来自任意主机的连接。

方案二:绑定远程主机

1. 使用SSH登录到运行Redis的Linux服务器。

2. 打开Redis配置文件,同样位于/etc/redis/redis.conf。

sudo vi /etc/redis/redis.conf

3. 找到并修改“bind 127.0.0.1”这一行,将其注释掉(在行首添加“#”字符),或修改为“bind 0.0.0.0”(允许来自任意IP地址的连接)。

4. 保存并关闭配置文件。

5. 重启Redis服务器,使配置生效。

sudo systemctl restart redis

通过以上操作,成功将Redis服务器绑定到了任意IP地址,即可允许来自远程主机的连接。

方案三:修改Redis配置文件

1. 使用SSH登录到运行Redis的Linux服务器。

2. 打开Redis配置文件,位于/etc/redis/redis.conf。

sudo vi /etc/redis/redis.conf

3. 找到并修改“protected-mode yes”这一行,改为“protected-mode no”。

4. 找到并修改“bind 127.0.0.1”这一行,改为“bind 0.0.0.0”。

5. 保存并关闭配置文件。

6. 重启Redis服务器,使配置生效。

sudo systemctl restart redis

通过以上操作,成功关闭了Redis的protected mode,并将其绑定到了任意IP地址。


本文由轻山版权所有,禁止未经同意的情况下转发