现象:

原因:
一、通俗解释报错原因
Redis 为了安全,默认情况下:
- 只允许本机(服务器自己)连接,拒绝外部连接。
- 如果你没有给 Redis 设置密码,它会强制开启保护模式。
- 你的 Go 代码(运行在服务器上)虽然是本地访问,但因为时间问题修复后,Redis 的连接策略变了,导致代码连接被拒绝,服务启动失败。
二、怎么解决?(两种方案)
方案一:临时关闭保护模式(最快,推荐先试)
登录服务器终端,执行两条命令,马上修复:
bash
# 1. 临时关闭保护模式(重启 Redis 后失效,用于快速恢复服务)
redis-cli CONFIG SET protected-mode no
# 2. 重启你的 CoinClient 服务
sudo supervisorctl restart ExchangeApi-CoinClient
方案二:永久设置密码(安全,推荐生产环境用)
如果你对外暴露了 Redis 端口,必须设置密码,否则很容易被攻击。
bash
# 1. 登录 Redis
redis-cli
# 2. 设置密码(临时生效,重启失效)
127.0.0.1:6379> CONFIG SET requirepass "你的新密码"
# 3. 或者直接修改配置文件(永久生效)
# 打开配置文件
sudo vi /etc/redis/redis.conf
# 找到 # requirepass foobared,去掉注释改成 requirepass 123456(密码自己定)
# 重启 Redis
sudo systemctl restart redis
你想永久关闭 Redis 的保护模式(或永久解除连接限制),核心是修改 Redis 配置文件并重启,这样即使服务器 / Redis 重启,设置也不会失效。我给你两种永久解决方案(选一种即可),兼顾「便捷性」和「安全性」:
方案三:永久关闭保护模式(最简单,适合内网服务器)

操作步骤:
1.编辑 Redis 配置文件
bash
# Ubuntu/Debian 系统
sudo vi /etc/redis/redis.conf
# CentOS/RHEL 系统(如果是这个系统,路径不同)
sudo vi /etc/redis/6379.conf
2.找到并修改保护模式配置
在配置文件中搜索 protected-mode(按 /protected-mode 快速搜索),找到这一行:
bash
protected-mode yes # 默认是 yes(开启)
改成:
bash
protected-mode no # 永久关闭保护模式
3.重启 Redis 使配置生效
bash
# Ubuntu/Debian
sudo systemctl restart redis
# CentOS/RHEL
sudo systemctl restart redis-server
4.验证是否生效
bash
redis-cli CONFIG GET protected-mode