解决云服务器上的redis端口不通以及设置redis的bind地址后启动失败问题

---------------------------------------------------2021-11-20更新----------------------------------------------------------
问题出现的场景:在云服务器上安装并启动了redis之后,使用telnet命令发现本地计算机始终无法访问redis服务端口

今天在折腾新的云服务器时,又遇到了这个奇怪的问题,突然想起这篇记录,再次梳理一下问题出现的前因后果及解决办法

首先需要保证的是(以下条件缺一不可):

  • 服务器上新装的redis是启动成功的
  • 云服务器的防火墙是开启的且开放了6379端口
  • 云厂商控制台的防火墙策略开放了6379端口(我这里用的是腾讯云)

在这里插入图片描述
在这里插入图片描述
(tips:如果此时提示“FirewallD is not running”,参考文章末尾开启防火墙文章链接)
在这里插入图片描述

此时发现我本地的机器不能访问通这个端口
在这里插入图片描述
乍一看又使我懵逼了一下,然而看了以前自己写的解决方案之后就全想起来了哈哈,同时注意到了下面的细节
在这里插入图片描述
于是打开服务器上的redis.conf文件一看,好家伙,果然是这个127.0.0.1惹的祸
在这里插入图片描述
上面一大堆英文注释的大致意思是为了不让该redis暴露给所有人,默认情况下通过“bind 127.0.0.1”来限制只能与redis同一主机的客户端来连接它,如果你确定要将该redis实例监听所有的端口,注释这一行即可。于是,我将这一行注释了,重启redis之后发现,还是不能访问该端口,这个时候就又纳闷了,等等,我好像看到了什么
在这里插入图片描述
如上图,就在”bind 127.0.0.1“的下面,有一个”protected-mode yes“的配置,阅读一下它上面的注释,不难发现,这个配置是一种安全的保护机制,为了避免redis实例暴露给互联网,当bind没有绑定具体的地址(即注释掉)且未配置redis密码时,该redis服务只监听127.0.0.1和::1或者来自Unix的套接字,如果你确定要在没有配置密码且没有使用bind配置显式的绑定接口的情况下让其他客户端连接到该redis,那么,就禁用该保护

注释已经讲的很清楚了嘛,于是我将”bind 127.0.0.1“再次注释掉且将设置改为“protected-mode no”如下图:
在这里插入图片描述
保存redis.conf并退出,重启redis服务,在自己电脑上使用"telnet 云服务器IP 6379",访问成功!

当然,为了安全起见,还是建议通过下面的那种方式,绑定云服务器内网IP,最终我还是选择了下面那种方式hhh

总结下来使云服务器redis端口能够被公网访问有以下两种方式:

  • 修改redis.conf文件中“bind 127.0.0.1”为“bind [你自己云服务器的内网地址]”(推荐,步骤见下文)
  • 修改redis.conf文件,注释“bind 127.0.0.1”并将“protected-mode yes”改为“protected-mode no”(步骤见上文)

---------------------------------------------------2021-11-20更新----------------------------------------------------------

在这里插入图片描述

如上图,我在redis.conf的bind配置了本机的公网ip,之后启动redis服务发现服务并没有跑起来,将bind地址改为127.0.0.1之后又可以跑起来了,很奇怪。查了半天资料才发现原来是这个地址配置的有错,不能写公网ip,而是要通过ifconfig得到内网ip:

在这里插入图片描述
将这个地址配置到bind之后,使用ps -ef|grep redis 或 netstat -anp|grep 6379 发现服务确实已经启动了,但是我用本地的机器telnet该redis的6379端口时连接超时

在这里插入图片描述

于是想到可能是服务器的端口没开放的原因,便开放了6379端口再次telnet,连接成功!开放端口命令见:centos7开放指定端口以及查看防火墙已开启端口命令

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值