0

我的所有 Redis 服务器配置如下:

大师:192.168.0.106:7001、192.168.0.105.7001、192.168.0.112:7001

从机:192.168.0.106:7002、192.168.0.105:7002、192.168.0.122:7002

其中 192.168.0.106:7002 服务器是 192.168.0.106:7001 服务器的从属服务器,依此类推。我让所有服务器都在运行,并且可以对所有服务器执行 redis-cli。我可以看到 17001 和 17002 端口也打开了。但是当我运行时:

./redis-trib.rb 创建--replicas 1 192.168.0.106:7001 192.168.0.105:7001 192.168.0.112:7001 192.168.0.106:7002 192.168.0.105:7002 192.168.0.112:

我收到一个错误:

创建集群

[ERR] 抱歉,无法连接到节点 192.168.0.106:7001

当所有服务器都在工作并且它们的端口都打开时,我不知道如何解决这个问题?

一件事是我确实有主人用密码保护。也许 redis-trib.rb 无法处理受密码保护的服务器?

4

3 回答 3

2

redis-trib.rb 无法处理受密码保护的 Redis 节点。

因此尝试在此类节点上使用它会导致 [ERR] 抱歉,无法连接到节点。

为什么 redis-trib.rb 实用程序不处理经过身份验证的节点?

这与以下事实有关:当 Redis 节点受密码保护时,仅其主端口(默认为 6379)上的通信受到保护。集群总线上的通信(默认端口 + 10000 = 16379),集群中的节点相互通信时不受保护。因此,当单个节点受到密码保护时,Redis 集群并没有真正受到密码保护。因此,在 Redis 集群中的各个 Redis 节点上设置密码几乎不会增加安全价值。因此 redis-trib.rb 实用程序没有实现任何身份验证。

更多信息在这里:

https://groups.google.com/forum/#!topic/redis-db/Z8lMxTfDct8

于 2016-02-19T15:55:50.637 回答
1

我遇到了同样的问题。

但是检查redis.conf我的实例时,我看到绑定选项已被注释掉,默认情况下 Redis 以*:port.

所以我添加了这个redis.conf,现在它完美地工作了:

绑定 0.0.0.0

如果这是一个安全错误,您可能需要添加密码或指定正确的 IP 范围。

于 2017-01-04T17:37:41.907 回答
1

当您使用外部 IP,而不是 127.0.0.1。您必须在 redis.conf 中添加一个新行:“protected-mode no”

在教程“ https://redis.io/topics/cluster-tutorial ”中,您将看到您必须在每个文件夹中创建一个redis.conf:7000、7001、...、7005

该教程建议:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

您只需要添加一个新行:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no

请记住在机器的防火墙内保证您的安全。

于 2017-07-20T17:16:17.420 回答