为何ManusAI部署时Redis连接总是被拒绝【连通】
先说个核心判断:ManusAI部署时Redis连接被拒绝,问题几乎永远卡在服务没响应、网络不通或配置拦截这三个底层环节上——跟代码怎么写、客户端怎么配关系不大。说白了,就是应用容器和Redis服务端之间连不上。

排查的第一步,当然是确认Redis进程到底活没活着。直接上服务器,跑一下:
sudo systemctl status redis
如果看到的是
【inactive (dead)】
sudo apt update && sudo apt install redis-server -y && sudo systemctl enable --now redis
如果你是Docker部署,那就换一套:
docker ps | grep redis
确认容器状态是
Up
Exited
docker logs 容器ID
重点找“Address already in use”或“Failed to bind”这类字眼——它们能直接告诉你端口被谁占着、绑定为什么失败。
验证Redis是否监听6379且允许外部访问
服务活着只是第一步,它到底在听谁说话才是关键。跑这条命令:
ss -tlnp | grep ':6379'
看输出中监听地址那一列。如果只看到
127.0.0.1:6379
0.0.0.0:6379
这时候再检查配置文件里的两个重要开关:
① bind 这一行不能只留 127.0.0.1。要么改成 0.0.0.0,要么明确写上ManusAI所在网段的IP(比如 172.18.0.1)。
② protected-mode 必须设为 no。这一点尤其重要:即使你放开了bind,如果不设密码,protected-mode开启时Redis会静默拒绝所有非本地连接,连个报错都不会给你。
记住:改完配置文件之后必须重启Redis才能生效:
sudo systemctl restart redis
检查防火墙与Docker网络通路
服务配置都对了,还是连不上?那就得看看防火墙和网络层面有没有设卡。
方法一:宿主机防火墙放行
Ubuntu/Debian上先看防火墙状态:
sudo ufw status verbose
如果状态是
active
sudo ufw allow 6379/tcp
方法二:云服务器安全组检查
这个太常见了。登录阿里云或腾讯云的控制台,找到你用的ECS实例,点开“安全组”标签。确认入方向规则里有一条允许TCP 6379端口的——授权对象可以先写 0.0.0.0/0 做测试,生产环境最好收紧到ManusAI服务所在的VPC网段。
方法三:Docker跨网络调试
如果你的ManusAI和Redis跑在不同的Docker网络里(比如 manusai_net 和 redis_default),默认情况下它们是不互通的。解决方法很简单:
docker network connect redis_default manusai_container_name
连上之后,进入ManusAI容器内部试试连通性:
telnet redis_host 6379