今天申请了阿里云使用3个月的服务器,于是想在服务器上部署一下自己的项目,但是吸取了上次的教训,再也不敢随便开放redis的端口号了,就算要开放redis的端口,也要设置密码,保证不会被挖矿病毒通过redis入侵服务器,导致服务器资源都被浪费在搬砖。
于是,就遇到了在Ubuntu操作系统中,尝试了好几次,设置的密码都不生效的问题。
发这篇文章,就是为了帮助和我一样不知所措的童鞋,看完这篇文章,希望你能豁然开朗。
目录
redis.conf部分配置的说明
Ubuntu上密码设置不生效
Windows上密码设置不生效
redis.conf部分配置的说明
protected-mode:保护模式,保护模式生效时,只能在本机访问redis,外网无法访问。
- 1、设置为yes,开启保护模式;
-
protected-mode yes
- 2、设置为no,关闭保护模式;
-
protected-mode no
- 3、保护模式失效的情况:
- 使用了bind
- 设置了密码
下面就是保护模式失效的两种场景:
protected-mode yes
requirepass password
bind 127.0.0.1
protected-mode yes
只有注释掉bind并且没有设置密码的情况下,保护模式会生效
这就是保护模式生效的情况下,redis.conf的三个配置项情况。
#bind 127.0.0.1
protected-mode yes
#requirepass password
Ubuntu上密码设置不生效
在网上查了很多文章,文章内容基本都是一样的,而博主刚好是通过docker安装的redis,导致一直密码不生效,只能暂时通过不开放6379端口来防止病毒入侵。
其实密码不生效的原因很简单,如果你有认真地看过redis.conf,你会发现这个文件最开头有这样一段注释
# Redis configuration file example.
#
# Note that in order to read the configuration file, Redis must be
# started with the file path as first argument:
#
# ./redis-server /path/to/redis.conf
意思是,要想让配置文件生效,必须在redis安装目录下通过以下命令启动:
src/redis-server redis.conf
Windows上密码设置不生效
同样的,这篇文章也给出windows操作系统上修改了redis.windows.conf的requirepass,但是不认证也能通过客户端(redis-cli、redis desktop manager等)连接redis服务。
其实只需要修改一下下图这个配置文件里的requirepass即可
然后按win+R键,输入services.msc,找到redis服务,右键点重启服务就行了~