问题背景

在连接Linux上的Redis时,有时候会出现DENIED Redis is running in protected mode的问题。protected mode是Redis的安全机制之一,用于保护Redis免受未经授权的访问。

解决方案

1. 修改Redis配置文件

通过修改Redis配置文件,可以禁用protected mode,从而解决连接Redis的问题。以下是具体的操作步骤:

  1. 使用root用户登录Linux系统。
  2. 打开Redis配置文件redis.conf。
  3. sudo vi /etc/redis/redis.conf
  4. 查找protected-mode的配置项。如果配置项的值为yes,将其改为no
  5. protected-mode no
  6. 保存并退出配置文件。
  7. 重启Redis服务。
  8. sudo systemctl restart redis

2. 修改Redis配置参数

如果Redis配置文件中并没有protected-mode配置项,可以尝试通过修改Redis启动命令中的参数来关闭protected mode。以下是具体的操作步骤:

  1. 使用root用户登录Linux系统。
  2. 编辑Redis的启动脚本。
  3. sudo vi /etc/systemd/system/redis.service
  4. 在ExecStart行的末尾添加参数--protected-mode no
  5. ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --protected-mode no
  6. 保存并退出脚本文件。
  7. 重启Redis服务。
  8. sudo systemctl restart redis

3. 检查网络和端口

如果以上两种方法都无法解决问题,就需要检查网络和端口是否正常。以下是具体的操作步骤:

  1. 确保Redis服务正在运行。
  2. sudo systemctl status redis
  3. 检查Redis监听的IP和端口是否正确。
  4. sudo netstat -tunlp | grep redis
  5. 检查防火墙配置,确保Redis服务的端口没有被阻止。
  6. sudo iptables -L
  7. 如果防火墙阻止了Redis端口,可以通过配置防火墙规则允许该端口的访问。
  8. sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
  9. 重启防火墙。
  10. sudo systemctl restart iptables