问题描述:
本地虚拟机装的Redis在宿主机中通过连接工具连接的时候访问不了
解决:
找到redis.conf
- 将
bind 127.0.0.1 -::1
这个配置项修改为bind 0.0.0.0
- 将
protected-mode yes
改为protected-mode no
重启Redis
解释:
在 Redis 中,bind
和 protected-mode
配置项控制着服务的网络访问范围和安全性。让我们分别看看它们的作用:
1. bind 0.0.0.0
- 解释:默认情况下,
bind 127.0.0.1 -::1
指定 Redis 仅监听本地回环地址127.0.0.1
(IPv4)和::1
(IPv6),这样只能在服务器本地访问 Redis,局域网或其他设备无法连接。 - 作用:当将
bind
设置为0.0.0.0
时,Redis 将监听所有网络接口,包括局域网地址和公网地址(如果服务器有公网 IP)。这样,局域网内其他设备就可以通过服务器的局域网 IP 地址连接到 Redis。
2. protected-mode no
- 解释:
protected-mode
是 Redis 为防止未经授权的访问而设计的一个保护模式。默认情况下,如果protected-mode
为yes
且没有配置密码,Redis 只允许来自bind
列表内的本地 IP 的连接请求,拒绝来自外部的请求。 - 作用:当设置
protected-mode no
后,即使有远程连接请求,Redis 也不会拒绝。因此,关闭protected-mode
会让来自局域网的设备能够成功连接到 Redis。
组合效果
将 bind
设置为 0.0.0.0
使 Redis 监听所有 IP 地址,而将 protected-mode
设置为 no
使 Redis 放松访问限制。因此,这两个配置一起作用,允许局域网设备通过服务器的局域网 IP 地址访问 Redis 服务。