在虚拟机版本Centos7环境下连接redis

[root@localhost ~]# redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379> 

但是使用IP连接报错,提示如下:

[root@localhost ~]# redis-cli -h 192.168.133.136 -p 6379         
Could not connect to Redis at 192.168.133.136:6379: Connection refused
Could not connect to Redis at 192.168.133.136:6379: Connection refused
not connected

查看配置文件发现:
运行Redis的计算机直接暴露于绑定到所有接口是危险的,会暴露互联网上每个人的实例。
遵循bind指令,这将强制Redis只监听 IPv4回退接口地址(这意味着Redis将能够只接受来自同一台计算机的连接运行)。

解决办法:
1、在redis配置文件/etc/redis.conf中添加本地IP地址

bind 127.0.0.1 192.168.133.136
1
2、注释掉redis配置文件/etc/redis.conf中bind指令

# bind 127.0.0.1

连接redis

[root@localhost ~]# redis-cli -h 192.168.133.136 -p 6379
192.168.133.136:6379> 

设置redis远程访问

首先,要配置redis远程访问,需要明确redis.conf配置文件中三个配置项的概念和作用:

bind配置的作用:用来指定允许访问的本机网卡对应的IP地址。

其中192.168.18.8是ens33网卡地址,127.0.0.1是lo回环地址。redis.conf默认是bind 127.0.0.1,即默认redis只允许本机访问。

protected-mode模式含义:一个安全保护层,目的是防止redis被互联网随意访问。假如protected-mode模式开启,当未bind特定IP地址,并且未设置访问密码的时候,只允许本地lo回环地址、unix主机名访问。

requirepass:访问密码。设置后,连接redis必须使用该密码,否则无法设置和查看数据。

结合上面三个配置项的说明,我们可以有以下几种方案实现redis外部访问:

1、不设置bind参数(注释掉所有bind行),关闭protected-mode模式,不设置访问密码。

2、不设置bind参数(注释掉所有bind行),关闭protected-mode模式,设置访问密码。

3、不设置bind参数,开启protected-mode模式,设置访问密码。

4、设置bind参数,开启protected-mode模式,不设置访问密码

5、设置bind参数,开启protected-mode模式,设置访问密码

 原因:没有启动服务端。。。。。。。。

暴力解决方案

#进入redis配置目录

cd /opt/soft/redis6379/

#手动开启服务端

 redis-server

#另开一个窗口直接运行 

 redis-cli -h 192.168.64.138 -p 6379

方案二

#本机ip或者改成应用服务所在的ip
bind 127.0.0.1
#保护模式保持默认关闭即可
protected-mode no
#redis密码设置
requirepass redispwd 

 

连接成功!!! 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐