在保证Windows主机和Linux虚拟机能够相互ping通的前提下,resp仍无法连接到Linux上的redis服务,那么需要考虑以下原因:
- Linux防火墙问题,Linux未关闭防火墙,或防火墙未放通6379/tcp端口;
- redis配置问题,需要修改redis的配置文件;
问题解决:
1、将防火墙放通6379/tcp端口或直接关闭防火墙:
#放通6379/tcp端口firewall-cmd --zone=public --permanent --add-port=6379/tcpfirewall-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.conf1.将配置文件中的bind注释掉# bind 0.0.0.02.关闭保护模式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” 指令显式列出一组特定的接口。
来源地址:https://blog.csdn.net/m0_60861848/article/details/129455739