在保证Windows主机和Linux虚拟机能够相互ping通的前提下,resp仍无法连接到Linux上的redis服务,那么需要考虑以下原因:

  1. Linux防火墙问题,Linux未关闭防火墙,或防火墙未放通6379/tcp端口;
  2. redis配置问题,需要修改redis的配置文件;

问题解决:

1、将防火墙放通6379/tcp端口或直接关闭防火墙:

#放通6379/tcp端口
firewall-cmd --zone=public --permanent --add-port=6379/tcp
firewall-cmd --reload

  或

#直接关闭防火墙
systemctl stop firewalld.service

2、若仍无法连接,则需修改redis的配置文件:/etc/redis/redis.conf

1)配置密码方式

vim /etc/redis/redis.conf

#将配置文件中的bind注释掉,或修改为:
bind 0.0.0.0
#配置登录密码:
requirepass 123456

  重启redis服务:

systemctl restart redis

  尝试连接redis服务:

Linux:

redis-cli -h 192.168.5.129 -a 123456

resp:

2)无密码方式

如果有的小伙伴不想要密码登录,也是可以的(但不推荐):

修改配置文件/etc/redis/redis.conf:

vim /etc/redis/redis.conf

#将配置文件中的bind修改为:
bind 0.0.0.0

vim /etc/redis/redis.conf

1.将配置文件中的bind注释掉
# bind 0.0.0.0
2.关闭保护模式
protected-mode yes 改为 protected-mode no

重启redis服务:

systemctl restart redis

尝试连接redis服务:

Linux:

redis-cli -h 192.168.5.129

resp:

这里博主不推荐使用无密码登录方式,因为这种方式可以让任何能够ping通redis服务器的主机连接访问redis服务,存在安全问题。

protected-mode —— 保护模式

保护模式是一层安全保护,以避免在互联网上保持打开状态的 Redis 实例会被访问和利用的情况。


当保护模式打开时,如果:
  1)服务器未使用“绑定”指令显式地绑定到一组地址。
  2)未配置密码。
那么服务器只接受来自IPv4 和 IPv6 环回地址 127.0.0.1 和 ::1客户端的连接,以及来自 Unix 域套接字的连接。

redis默认启用保护模式。只有在以下情况下才应禁用它:
仅当您确定希望其他主机的客户端连接到 Redis 时,才应禁用它,即使未配置身份验证,也没有使用 “bind” 指令显式列出一组特定的接口。

Logo

更多推荐