redis 绑定ip不生效,redis外网无法访问的解决方案

因为在 redis 中bind 指定的ip 其实为同一网段或localhost 监听ip,在这里配置 内网其他网段或者外网多个ip 后  重启 redis 是不会成功的,

这边建议使用 折中方案,开通防火墙 iptables 来做处理,例如: 我的是172.0.0.1 ,我想让172.1.10.5 和外网220.10.3.243 访问我服务器的redis ,

1.首先将redis.config 中的bind 全都#屏蔽

#bind 127.0.0.1

线上环境的话建议redis 配置密码

2. 在配置文件中找到  requirepass password 

password 为你设置的密码(开通外网访问)

3.配置iptables规则

通过iptables 允许指定的外网ip访问

iptables -A INPUT -s 127.0.0.1 -p tcp --dport 6379 -j ACCEPT

iptables -A INPUT -s 172.1.10.5  -p tcp --dport 6379 -j ACCEPT

iptables -A INPUT -s  220.10.3.243 -p tcp --dport 6379 -j ACCEPT

//其他ip访问全部拒绝

iptables -A INPUT -p TCP --dport 6379 -j REJECT

我遇到过一种情况,刚开始使用上面方法是行得通的,本地widows上redis desktop manager可以连上服务器redis,但是后来本地ip变了,执行上述命令却再也连不上了,后面试了下面方法才成功的。
​​​​​​​

redis是一个key-value形式的缓存服务器,在实际测试redis连接时,一直显示图片中的问题,在遇到这样的问题时可以从以下几方面来排除问题


1. bind 127.0.0.1要注释掉
通过/bind 127.0.0.1搜索到后将其注释掉


2. 要为redis配置密码
通过/requirepass foobared搜索到后将其注释打开,同时将foobared修改为你要给redis设置的密码


3. 确保6379端口开放
6379是redis的默认端口,不打开端口,其他计算机将无法访问redis,使用以下命令来尝试查看6379端口是否打开
telnet 192.168.1.17 6379

结果,显示端口连接失败。


如果提示“telnet不是内部或外部命令”,可以在控制面板“打开或关闭Windows功能”中添加“telnet客户端”就可以使用telnet命令

尝试使用 vim /etc/sysconfig/iptables打算去打开6379,因为默认该端口是不对外开放的,但是到了centos7该文件是默认不存在的,使用iptables -P OUTPUT ACCEPT随便写一条规则,使用service iptables save来保存,这样在/etc/sysconfig下就生成了这个文件,
使用vim /etc/sysconfig/iptables来编辑这个文件,添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

结果还是连不上,端口依旧没打开,查询网络发现centos7将firewall作为默认防火墙,所以使用

firewall-cmd --query-port=6379/tcp

去查看下linux里面是有没有开放这个端口,如果按照正常情况,应该提示我yes或者no,但是它提示了我firewall is not running

这才记起,原来使用centos7之前版本的端口配置方式时,将firewall防火墙给关了,使用

systemctl start firewalld.service

来将防火墙打开,将6379端口打开
firewall-cmd --add-port=6379/tcp

再测试

firewall-cmd --query-port=6379/tcp

就显示yes了

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值