问题描述:
本地虚拟机装的Redis在宿主机中通过连接工具连接的时候访问不了,设置bind为::1或*启动服务会报错:
想要监听所有网络接口,其实这里配置为:bind 0.0.0.0 即可。
在启动服务正常:
本文 protected-mode 值默认 yes,没有修改:
解释 bind 与 protected-mode 配置:
解决:
找到redis.conf
1、将 bind 127.0.0.1 -::1 这个配置项修改为 bind 0.0.0.0
2、将 protected-mode yes 改为 protected-mode no
3、重启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。
3. 组合效果
将 bind 设置为 0.0.0.0 使 Redis 监听所有 IP 地址,而将 protected-mode 设置为 no 使 Redis 放松访问限制。因此,这两个配置一起作用,允许局域网设备通过服务器的局域网 IP 地址访问 Redis 服务。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。