首页/数据/Redis 进阶速查/复制链路认证:masterauth
主从与哨兵51 条

复制链路认证:masterauth

主库启用密码后,从库必须配置 masterauth(以及 6.0+ 的用户名 masteruser)才能完成握手与同步,否则连接被拒。

Redis 进阶速查数据更新于 2026-10-13

复制链路的凭据配置

主库一旦启用密码或 ACL 认证,从库就必须带着相同凭据去连接,否则握手阶段就会被拒绝。凭据配置在从库一侧:masterauth 指定密码,6.0 起可以配合 masteruser 指定 ACL 用户名。认证不仅发生在初次握手,后续的数据流同步和故障恢复也复用同一套凭据,因此主库与从库的配置必须长期保持一致,任一侧变更都要同步处理。

基本信息

从库配置masterauth <password>
ACL 用户masteruser <username>(6.0 及以上)
配置位置从库的 redis.conf,或运行时 CONFIG SET
生效检查INFO replication 的 master_link_status
敏感度配置文件里为明文,需要收紧文件权限

典型使用场景

  • 主库启用 requirepass 后,逐台为从库补齐认证配置
  • ACL 体系下为复制单独建用户,只授予复制链路上必要的权限
  • 密码轮换:主库改密后同步更新所有从库的 masterauth,避免链路中断
  • 排查 master_link_status 为 down 时,先确认两侧凭据是否一致
  • 重建或迁移从库时,把凭据核对列进配置检查清单

配置与核对

配置与核对
redis-cli CONFIG SET masterauth 'app-password'   # 从库侧填写主库密码
redis-cli CONFIG SET masteruser appuser           # ACL 体系下指定用户名
redis-cli INFO replication | grep -E 'master_link_status|master_host|master_port'
redis-cli -h <从库> PING                          # 先确认从库自身可访问
redis-cli CONFIG REWRITE                          # 确认链路恢复后落盘
# 主库轮换密码后,所有从库的 masterauth 都要同步更新

链路状态速读

字段正常表现异常含义
master_link_statusupdown 表示握手或同步失败,凭据错误是常见原因
master_host / master_port与预期主库一致不一致说明从库挂到了别的主库
master_last_io_seconds_ago数值很小持续增大说明数据流已经断了
master_sync_in_progress0长期为 1 说明全量同步迟迟完不成
认证信息在配置文件里是明文,权限应收紧到仅 Redis 运行用户可以读取;容器化部署时不要写进镜像层,改用挂载配置文件或运行时注入的方式,减少泄露面。
ACL 复制用户的最小权限一般包含复制相关的读命令与必要的连接权限,不要图省事直接套用管理员账号:一旦从库被入侵,复制的凭据就成了横向移动的跳板。凭据轮换时,先改从库配置再改主库,可以避免链路在中间窗口完全断开。
如果从库自身也对外提供服务,它自身访问控制(requirepass 或 ACL)与 masterauth 是两件事:前者约束谁可以连这台从库,后者是这台从库连主库时出示的凭据,排查认证类报错时要先分清是哪一侧在拒绝。

易错点

  • 只改主库密码不更新从库的 masterauth,主从链路会在改密瞬间断开并持续报认证失败
  • ACL 复制用户授权不足(缺少同步与读写所需命令),握手能通过但同步阶段持续报权限错误
  • 凭据写进镜像层或提交到代码仓库,等于把主库密码公开,只能整体轮换补救
  • 只在一台从库上改配置,其余从库仍用旧凭据,发生切换后故障面反而扩大

数据来源与参考

  • Redis 官方文档:masterauth 配置说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌