Redis远程连接失败-“Connection reset by peer”的解决方式

Server 林涛 30℃ 0评论

但在测试Redis的远程连接时,遇到了连接失败的错误。

问题解决:
在网上查找原因,说是要将配置文件中的bind 127.0.0.1注释掉。但为什么这么做呢?

分析原因如下:

redis-server在启动时,如果没有指定配置文件的话,它使用的是默认的配置文件。

需要注意的是,这里bind选项绑定的 并不是请求连接的客户机的IP ,而是 提供redis-server服务的服务器的网络接口,或者说是 网卡 。

当配置bind 127.0.0.1时,意味着 只有127.0.0.1网络接口接收连接请求 ,而 不是只接受来自127.0.0.1的请求。

切记127.0.0.1 不等于你的本机IP,这是两个不同的网络接口。

 

当客户机使用redis-cli -h your_ip_address -p 6379 命令请求连接时,应该是your_ip_address 这个网络接口在接收请求,所以可以做出以下修改:

直接将bind 127.0.0.1注释掉 。这时,你所有的网络接口都在接收连接请求。(包括127.0.0.1, your_ip_address,…(如果还有其它接口,也在接收请求))(客户机可以远程连接)

将bind 127.0.0.1修改为 bind your_ip_address。这时,只有your_ip_address这个接口在接收请求。(客户机可以远程连接,更安全)

修改配置文件后需要重启redis-server: 命令为:sudo /etc/init.d/redis-server restart

 

在配置文件中将bind 127.0.0.1注释掉,重启Redis服务。
发现 连接成功,但数据操作时发生了错误。

查找原因,发现是需要修改配置文件中protected-mode配置项。
查看注释可知protected-mode配置项默认开启yes,redis处于保护模式状态,会拒绝来自其它主机的连接。

解决方式:将protected-mode配置项设为no,注意 要在配置文件中修改,若直接在客户端中通过config set protected-mode no命令修改,只对本次有效,redis-server重启后,还是为yes.
对比发现,Ubuntu系统中Redis配置文件中不存在此配置项,该配置项应该是较新版本才加入的(3.2版本后)。

修改为 no 后,再次测试,请求连接,数据操作均可正常使用。

 

————————————————

原文链接:https://blog.csdn.net/Ha_hha/article/details/79993929

如需转载请注明: 转载自26点的博客

本文链接地址: Redis远程连接失败-“Connection reset by peer”的解决方式

转载请注明:26点的博客 » Redis远程连接失败-“Connection reset by peer”的解决方式

喜欢 (0)or分享 (0)
0 0 投票数
文章评分
订阅评论
提醒
guest

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x