概要
redis bind、protected-mode 配置
安装并启动
yum install -y redis
systemctl enable --now redis
# 使用 redis-server 命令会在前台启动运行,可以跟个 .conf 文件 根据配置文件启动
修改配置文件
# 直接编辑配置文件 (本篇文章使用此方法)
vi /etc/redis.conf# 同时redis提供交互式命令行配置
redis-cli # 进入交互命令行
# 命令行不区分大小写
config get * # 获取所有配置信息
config set # 命令修改配置参数
bind
默认配置 ↑
bind 0.0.0.0 # 允许每台远程 PC 连接到 redis 服务器 , 即允许任意IP访问
# tip: 如果此redis服务器暴露在互联网上,配置 0.0.0.0 是很危险的# 如果想让公网可以连接该redis服务 , 建议只配置允许的公网IP
bind 127.0.0.1 xx.xx.xx.xx# 但是如果 `protected-mode`是开启状态 ,需要设置用户密码才能正常连接
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf # 使用 shell 命令的方式修改 bind 地址
protected-mode
如果开启保护模式
且没有为默认用户设置密码,此时只接受来自loopback接口的连接(即只允许本地连接)
tip : 即使bind 0.0.0.0
,没有设置密码,其他服务器也无法正常连接
(错误)DENIED Redis 正在保护模式下运行,因为启用了保护模式并且没有为默认用户设置密码。在此模式下,仅接受来自环回接口的连接。如果您想从外部计算机连接到 Redis,您可以采用以下解决方案之一: 1) 只需从环回接口发送命令“CONFIG SET protected-mode no”,通过从服务器运行的同一主机连接到 Redis,禁用保护模式,但是如果您这样做,请确保 Redis 无法从互联网公开访问。使用 CONFIG REWRITE 使此更改永久生效。 2) 或者,您可以通过编辑 Redis 配置文件并将保护模式选项设置为“no”来禁用保护模式,然后重新启动服务器。 3) 如果您手动启动服务器只是为了测试,请使用“--protected-mode no”选项重新启动它。 4) 设置默认用户的验证密码。注意:您只需执行上述操作之一即可使服务器开始接受来自外部的连接。
protected-mode no # 关闭 '保护模式' 默认 'yes' 开启
sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf # shell 命令方式关闭保护模式
小结
-
在学习、测试等内网场景可简化步骤,关闭‘保护模式’,bind 0.0.0.0
-
如果redis服务器需要暴露在公网上,建议开启'保护模式',并配置密码, 'bind' 信任的公网IP