讲师中心 微信公众号
AI工具推荐 视频效率加速

Redis集群如何防范Redis未授权访问_配置requirepass与集群密码认证

风婷姑娘_1262

风婷姑娘_1262

发布时间:2026-05-14 18:30:11

|

557人浏览过

|

来源于php中文网

原创

Redis集群中requirepass无效,因其仅作用于客户端端口(如6379),不约束集群总线端口(如16379);节点间通信明文进行,需依赖网络隔离、ACL及正确配置cluster-announce-ip等措施保障安全。

redis集群如何防范redis未授权访问_配置requirepass与集群密码认证

Redis集群中 requirepass 为什么无效

直接在 redis.conf 中设置 requirepass,单节点能生效,但集群模式下会失效——因为 Redis 集群通信(如 CLUSTER MEET、心跳、槽迁移)默认走的是无认证的内部端口(cluster-port,通常是 redis-port + 10000),且集群总线(cluster bus)不校验密码。

这意味着:即使你给每个节点配了 requirepass,客户端仍可能绕过认证直连主节点;更严重的是,集群内部节点互相握手时若未同步密码或配置错位,会导致 CLUSTER NODES 显示 fail 或无法完成槽分配。

  • 集群启动后执行 CLUSTER NODES,若看到节点状态为 fail 或 noaddr,大概率是节点间认证失败或端口不通
  • requirepass 只作用于客户端连接端口(如 6379),对集群总线端口(如 16379)完全无约束
  • 6.0+ 版本前,Redis 原生不支持集群级统一密码,必须靠外部手段补足

Redis 6.0+ 的 cluster-enabled yes + requirepass 组合是否够用

不够。6.0 引入了 cluster-require-full-coverage 和 ACL 支持,但仍未将 requirepass 扩展到集群总线层。即使所有节点都配了相同 requirepass,集群总线通信仍明文进行,攻击者只要能访问集群总线端口(如 16379),就能伪造 CLUSTER FAILOVER、重置配置甚至清空数据。

真正起效的是 cluster-enabled yes 搭配 cluster-announce-ip + 网络隔离,而非密码本身。

Redis Skill - 高性能缓存管理
Redis Skill - 高性能缓存管理

Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。

下载
  • 必须显式设置 cluster-announce-ip 和 cluster-announce-port,否则节点可能广播内网地址,导致外部可连
  • 6.0+ 推荐用 ACL 替代 requirepass,但 ACL 同样只管控客户端命令入口,不影响集群总线
  • 若用 requirepass,所有节点必须设**完全相同的密码**,否则 CLUSTER NODES 里会显示 noauth 并拒绝握手

生产环境必须做的三件事(比加密码更重要)

防范未授权访问,密码只是最后一道防线;网络层和部署层的控制才决定攻击面大小。

  • 禁用公网暴露:确保 Redis 集群所有端口(客户端 6379、集群总线 16379)**仅绑定内网 IP**,如 bind 10.0.1.10,绝不要写 bind 0.0.0.0 或留空
  • 防火墙封死集群总线端口:用 iptables 或云安全组限制仅允许集群内节点 IP 访问 16379,例如:
    iptables -A INPUT -p tcp --dport 16379 -s 10.0.1.10 -j ACCEPT<br>iptables -A INPUT -p tcp --dport 16379 -j DROP
  • 启用 protected-mode yes(默认开启),它会在未配置 bind 且无 requirepass 时拒绝外部连接——但这不是替代方案,只是兜底

客户端连接集群时如何传密码

多数客户端库(如 Jedis、redis-py、node-redis)不自动将密码透传到集群发现后的各个节点。如果只在初始连接时带密码,后续重定向到其他节点就会因认证失败报 NOAUTH Authentication required。

  • redis-py-cluster 要求初始化时传 password 参数:
    from rediscluster import RedisCluster<br>startup_nodes = [{"host": "10.0.1.10", "port": "6379"}]<br>rc = RedisCluster(startup_nodes=startup_nodes, password="mypass")
  • JedisCluster 构造时需传 JedisPoolConfig + password 字符串,且底层 pool 必须支持密码(低版本 Jedis 不支持,需 3.0+)
  • 原生命令行工具 redis-cli -c -a mypass -h 10.0.1.10 -p 6379 可用,但脚本中硬编码密码风险高,建议配合配置中心或环境变量注入

密码泄露风险常来自客户端日志或配置文件明文存储——别为了“方便调试”把 requirepass 写进 git 或容器环境变量裸露字段里。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

1935

2023.11.27

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4189

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3675

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6572

2024.04.02

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

623

2024.04.07

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

736

2024.04.07

mysql和redis怎么保证双写一致性
mysql和redis怎么保证双写一致性

确保 mysql 和 redis 双写一致性的技术包括:1、事务性更新:同时更新 mysql 和 redis,保证一致性;2、主从复制:mysql 主服务器更改同步到 redis 从服务器;3、基于事件的更新:mysql 记录更改并发送到 redis等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6082

2024.04.07

redis缓存一般存些什么数据
redis缓存一般存些什么数据

redis缓存中存储的数据类型包括:字符串、哈希、列表、集合、有序集合、位图、地理空间数据和hyperloglog。这些数据类型适用于存储各种数据,从简单信息到复杂对象和地理位置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1140

2024.04.07

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

0

2026.09.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn