修改了服务器redis的配置,改了端口号,设置了安全组,还是远程连接不上redis
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Redis远程连接失败的核心原因通常是「Redis自身未开放远程访问」「服务器网络拦截」「RDM配置错误」三类,以下是从基础到深入的分步排查+解决方法,覆盖阿里云场景的所有关键坑点:
远程连接失败先排查服务器本地是否能连,避免浪费时间在网络配置上:
登录阿里云服务器(SSH),执行以下命令检查Redis是否运行:
# 查看Redis进程
ps -ef | grep redis
# 或用systemd(CentOS7+/Ubuntu16+)
systemctl status redis
inactive (dead),先启动Redis:systemctl start redis,并设置开机自启:systemctl enable redis。本地测试Redis连接(服务器内):
# 方式1:redis-cli连接(替换为你的端口/密码)
redis-cli -p 你的Redis端口(如6379) -a 你的Redis密码
# 方式2:无密码则直接连接
redis-cli -p 你的Redis端口
127.0.0.1:6379>交互界面,执行ping,返回PONG说明Redis本地正常;tail -f /var/log/redis/redis-server.log)。阿里云服务器的Redis默认只允许本地访问,必须修改配置文件开启远程访问:
Redis配置文件常见路径:
/etc/redis/redis.conf(主流Linux发行版)/usr/local/redis/redis.conf(手动编译安装)redis-cli config get dir,返回的目录下通常有redis.confvim /etc/redis/redis.conf)| 配置项 | 错误值(默认) | 正确值 | 说明 |
|---|---|---|---|
bind | 127.0.0.1(仅允许本地访问) | 0.0.0.0(允许所有IP访问) | 若只想指定IP访问,可写bind 0.0.0.0 你的公网IP,但0.0.0.0更通用 |
protected-mode | yes(保护模式,禁止远程无密码访问) | no | 开启保护模式时,即使bind 0.0.0.0也无法远程连接 |
port | 默认6379(若你改了端口) | 你自定义的端口(如6380) | 确保和你安全组配置的端口一致 |
requirepass | 无(或注释) | 你的密码 | 必须设置密码!否则Redis暴露公网极不安全,也可能导致连接失败 |
daemonize | no | yes | 确保Redis以守护进程运行,否则服务易退出 |
# 重启Redis服务(根据你的启动方式选择)
systemctl restart redis
# 或手动重启(指定配置文件)
redis-cli shutdown
redis-server /etc/redis/redis.conf
# 查看bind配置
redis-cli config get bind
# 查看保护模式
redis-cli config get protected-mode
# 查看端口
redis-cli config get port
安全组是阿里云的「外网防火墙」,仅改Redis端口没用,必须开放对应端口:
6379/6379);0.0.0.0/0(允许所有IP访问,方便测试,后续改回你的本地公网IP更安全);112.xxx.xxx.xxx/32;TCP(Redis基于TCP协议);⚠️ 坑点:阿里云安全组修改后生效有延迟(1-2分钟),不要改完立刻测试。
阿里云安全组之外,服务器自身的防火墙(iptables/ufw)也可能拦截端口:
# 查看firewalld状态
systemctl status firewalld
# 若运行中,临时关闭测试(不影响安全组)
systemctl stop firewalld
# 永久关闭(可选,若用阿里云安全组足够)
systemctl disable firewalld
# 查看ufw状态
ufw status
# 若运行中,临时关闭
ufw disable
# CentOS/RedHat开放端口
firewall-cmd --add-port=你的Redis端口/tcp --permanent
firewall-cmd --reload
# Ubuntu/Debian开放端口
ufw allow 你的Redis端口/tcp
ufw reload
以上配置都没问题后,重点检查RDM的连接参数:
requirepass密码(注意大小写);| RDM报错提示 | 原因 | 解决方法 |
|---|---|---|
Connection refused | 1. Redis端口未开放;2. Redis服务未运行;3. bind未改0.0.0.0 | 检查Redis端口/服务状态,确认bind=0.0.0.0 |
NOAUTH Authentication required | 密码错误或未填密码 | 核对Redis的requirepass密码 |
Operation timed out | 1. 阿里云安全组未开放端口;2. 服务器防火墙拦截;3. 公网IP填错 | 检查安全组+服务器防火墙,确认Host是公网IP |
protected mode enabled | protected-mode未关闭 | 修改redis.conf中protected-mode=no,重启Redis |
Redis Desktop Manager连接阿里云Redis失败的核心解决要点:
bind=0.0.0.0+protected-mode=no+设置密码,重启服务;Redis 配置未开启远程访问(bind 0.0.0.0+protected-mode no+ 密码配置),且未重启生效;
阿里云安全组未正确放行 Redis 端口或未绑定服务器;
服务器防火墙(firewalld/iptables)拦截了 Redis 端口;
Redis Desktop Manager 连接参数填写错误(如用内网 IP、端口不匹配、密码错误)。