Redis默认仅监听127.0.0.1,需修改redis.conf中bind为实际IP或0.0.0.0、关闭protected-mode,并重启服务;再检查防火墙、云安全组、虚拟机网络及Navicat连接参数是否正确。
确认Redis服务是否监听在公网/可访问地址
navicat连不上,第一反应常是“网络不通”,但更大概率是redis压根没对外提供连接——它默认只监听 127.0.0.1,本地能 redis-cli ping 成功,远程却超时,十有八九卡在这儿。
- 检查
/etc/redis/redis.conf中的bind配置:若只有bind 127.0.0.1或带::1,需补充服务器真实IP(如bind 127.0.0.1 192.168.56.10)或改用bind 0.0.0.0(仅限可信内网) - 同时确认
protected-mode no,否则即使绑定了非本地地址,Redis也会拒绝外部连接 - 改完必须重启服务:
sudo systemctl restart redis,光 reload 不生效
验证6379端口是否真正在监听且可达
“端口开着”不等于“能通”。防火墙、云厂商安全组、虚拟机网络模式都会拦截流量,得一层层过筛。
- 在Redis服务器上执行:
ss -tlnp | grep :6379,看到LISTEN且进程为redis-server才算真正监听中 - 从Navicat所在机器(比如你的Windows笔记本)执行:
telnet your_redis_ip 6379,如果连接失败或超时,说明网络链路未打通 - 常见断点:
- Linux服务器防火墙:
sudo firewall-cmd --list-ports看是否含6379/tcp;没有就加:sudo firewall-cmd --add-port=6379/tcp --permanent && sudo firewall-cmd --reload - 腾讯云/阿里云等控制台:进“安全组”,手动放行入方向的
6379端口(协议选TCP) - VirtualBox/VMware虚拟机:确保网络模式是“桥接”或“NAT+端口转发”,别用仅主机(Host-Only)
- Linux服务器防火墙:
Navicat连接设置里最容易填错的三项
参数看着都对,但一个空格、一个大小写、一个端口偏差,就会导致超时而非报错密码错误——因为连接根本建立不起来。
-
主机(Host):填虚拟机或云服务器的**实际业务IP**,不是
localhost,也不是你本机的192.168.x.x。查法:ip a | grep "inet " | grep -v "127.0.0.1" -
端口(Port):默认是
6379,但如果你改过配置(比如启用了哨兵或集群),可能要用26379或其他;确认 Redis 的port配置项值 -
认证(Authentication):密码必须和
requirepass配置值完全一致(区分大小写、不可多空格);若未设密码,此处留空,**不要填 "null" 或 "none"**
超时本身不是问题,而是信号:它暴露了底层阻塞点
单纯调大Navicat里的“超时时间”(比如从3秒改成30秒)只是掩盖症状。真正该盯的是:为什么3秒内没响应?
- 先排除Redis假死:
redis-cli -h your_ip -p 6379 ping在客户端机器直连测试,如果也卡住,说明不是Navicat的问题,是网络或服务层问题 - 如果命令行能通但Navicat超时,注意Navicat 17对Redis 7+ 的部分新特性(如ACL用户、RESP3协议)支持不完整,降级到
redis-cli验证最可靠 - 还有个隐蔽坑:某些国产云主机的“内网DNS解析慢”,会导致Navicat解析主机名耗尽超时。解决方法是直接填IP,别填域名
redis-cli -h 实际IP -p 6379 ping 这一步——不是 localhost,不是 127.0.0.1,就是那个你要填进Navicat里的IP。










