Redis的bind的误区
今天在搭建Redis服务集群的时候,发现自己一直以来对Redis中bind的理解的一个误区。
在今天以前,我一直认为Redis中的配置文件中的bind的作用是:用来限制Redis服务器用来接收来自哪些服务器(IP地址)的Redis连接请求。即:只有在bind指定的IP地址的计算机才可以访问这个Redis服务器。(直到今天我才知道以上的理解都是错误)
例如:
bind 127.0.0.1 就是用来限制只有本机可以连接redis服务连接
bind 0.0.0.0 就是用来允许任意计算机都可以连接redis服务连接。
注意:以上的理解都是错误的。他们正好是特例,对我们产生了一种错觉。
不信的的话你们可以试一试:(最好试一试)
bind 10.0.0.1(或者除了127.0.0.1和0.0.0.0之外的任何IP地址)
然后重启redis,就会发现启动不起来。
对于为什么启动不起来,你们知道了bind的真正意思之后,就会明白启动不起来的原因。
对于Redis中bind的正确的理解是:
bind:是绑定本机的IP地址,(准确的是:本机的网卡对应的IP地址,每一个网卡都有一个IP地址),而不是redis允许来自其他计算机的IP地址。
如果指定了bind,则说明只允许来自指定网卡的Redis请求。如果没有指定,就说明可以接受来自任意一个网卡的Redis请求。
举个例子:如果redis服务器(本机)上有两个网卡,每一个网卡对应一个IP地址,例如IP1和IP2。(注意这个IP1和IP2都是本机的IP地址)。
我们的配置文件:bind IP1。 只有我们通过IP1来访问redis服务器,才允许连接Redis服务器,如果我们通过IP2来访问Redis服务器,就会连不上Redis。
查看本地的网卡对应的IP地址:使用ifconfig命令。
从上面看出我们有两个网卡,也就是我们只能使用:127.0.0.1和172.18.235.206最为bind的地址,不然redis启动不起来。
这就说明了上面例子(bind 10.0.0.1)为什么启动不起来,因为我们没有对应的网卡IP地址。这就说明了bind并不是指定redis中可以接受来自哪些服务器请求的IP地址。
而是:bind用于指定本机网卡对应的IP地址。
附注:
bind 127.0.0.1的解释:(为什么只有本机可以连接,而其他不可以连接)
我们从ifconfig可以看出:lo网卡(对应127.0.0.1IP地址):是一个回环地址(Local Loopback),也就是只有本地才能访问到这个回环地址,而其他的计算机也只能访问他们自己的回环地址。
那么来自这个lo网卡的计算机只有本机,所以只有本机可以访问,而其他计算机不能访问。
bind 172.18.235.206的话,只要通过这个网卡地址(172.18.235.206)来的Redis请求,都可以访问redis。我使用的阿里云的服务器。我在另一个服务器上去请求 redis-cli 阿里云公网IP地址 就会连接到redis服务器。
因为公网地址的请求:都是经过这个eth0的网卡地址(172.18.235.206),从而接收到这个redis请求。
当你们不使用那个回环地址,基本上外部的计算机都可以访问本机的Redis服务器。
如果我们想限制只有指定的主机可以连接到redis中,我们只能通过防火墙来控制,而不能通过redis中的bind参数来限制。
使用阿里云的安全组,来限制指定的主机连接6379端口。
redis中的【protected-mode】的理解:
redis本身无法限制【只有指定主机】连接到redis中,就像我上面说的一样,bind指定只是用来设置接口地址(interfaces)。
1.如果你的bind设置为:bind 127.0.0.1,这是非常安全的,因为只有本台主机可以连接到redis,就算不设置密码,也是安全的,除非有人登入到你的服务器上。
2.如果你的bind设置为:bind 0.0.0.0,表示所有主机都可以连接到redis。(前提:你的服务器必须开放redis的端口)。这时设置密码,就会多一层保护,只有知道密码的才可以访问。也就是任何知道密码的主机都可以访问到你的redis。
protected-mode是redis本身的一个安全层,这个安全层的作用:就是只有【本机】可以访问redis,其他任何都不可以访问redis。这个安全层开启必须满足三个条件,不然安全层处于关闭状态:
(1)protected-mode yes(处于开启)
(2)没有bind指令。原文:The server is not binding explicitly to a set of addresses using the "bind" directive.
(3)没有设置密码。原文:No password is configured。
这时redis的保护机制就会开启。开启之后,只有本机才可以访问redis。 如果上面三个条件任何一个不满足,就不会开启保护机制。
更多精彩内容:请关注公众号:
Redis的bind的误区相关推荐
- 如何改变Redis用不好的误区
从实际案例看Redis的使用 在一个炎热的夏天,引爆了埋藏已久的大炸弹. 一 首先是一个产品线开发人员搭建起了一套庞大的价格存储系统,底层是关系型数据库,只用来处理一些事务性的操作和存放一些基础数据: ...
- 同程旅行王晓波:如何改变 Redis 用不好的误区
王晓波 同程旅行 机票事业群 CTO 读完需要 4 分钟 速读仅需 2 分钟 本章和大家分享一下同程凤凰缓存系统在基于 Redis 方面的设计与实践.如何改变 Redis 不好用的误区 本文节选自中生 ...
- Redis几个认识误区
http://timyang.net/data/redis-misunderstanding/ 前几天微博发生了一起大的系统故障,很多技术的朋友都比较关心,其中的原因不会超出James Hamilto ...
- Redis进阶-bind参数详解
文章目录 redis.conf 验证bind bind 127.0.0.1 bind 192.168.18.130 bind 192.168.18.130 127.0.0.1 redis.conf R ...
- 解决Redis修改bind域名绑定后出现Could not connect to Redis
2019独角兽企业重金招聘Python工程师标准>>> 我在linux服务器上装redis, 默认绑定的IP是127.0.0.1, 但是修改了redis.conf文件中的bind之后 ...
- 解决云服务器上的redis端口不通以及设置redis的bind地址后启动失败问题
---------------------------------------------------2021-11-20更新------------------------------------- ...
- redis远程连接不上_redis连接认证及bind的注意事项
redis连接安全相关的设置主要有三个:protected-mode,bind,requirepass.下面我们来看一下这三个设置的作用. 第一个设置:protected-mode yes 开启保护模 ...
- 对Redis配置中bind的探索
[前言] 经历了两次病毒的攻击(感兴趣的朋友参考<高校云平台(十三):Redis服务器被劫持风波>和<高校云平台(十六):解决Linux服务器被植入木马总结>)让我们对安全重视 ...
- Redis笔记-入门篇
Nosql概述 为什么要用Nosql 大数据时代, 大数据 一般的数据库无法进行分析处理了! 1.单机MySQL的年代 90年代,一个基本的访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去 ...
最新文章
- ORB 特征检测与匹配
- 消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?大量消息持续积压几个小时,怎么办?...
- sqlalchemy(一)基本操作
- 数据之路 Day8 Numpy包
- 刷前端面经笔记(十二)
- redis命令操作(1)
- uniapp返回上一页_一例万级写入并发,百亿级数据,毫秒级返回架构分享
- (建议收藏)前端面试必问的十六条HTTP网络知识体系
- misc类设备与蜂鸣器驱动
- MySQL锁机制,行锁jingran加在索引上
- 轻松使用终端开启macOS系统的隐藏功能,小白都能看得懂
- axios的请求配置
- 幼师资格证综合素质计算机知识点,幼师资格证复习资料
- css连续选取几个li_CSS高级选择器:nth-child()应用大全
- 在服务器上log4net没写日志
- python预测模型类型,多变量时间序列的预测和建模指南(附Python代码)
- Arcgis重分类无法赋新值为小数
- 171108 将Youtube自动翻译字幕转换成srt文件本地播放
- 应用程序配置不正确解决方法
- Unity Android 加载Sprite
热门文章
- 计算机教室学生上机须知,微机室上机须知
- 微软拥抱开源_拥抱开源作为视觉艺术家
- 【天光学术】民法学论文:从税收法定主义看我国税收立法之不足【开题报告 硕士研究生毕业论文】
- Hdfs的一系列坑坑洼洼,认证,认证,还是***认证
- Cisco Firepower 9300 Series FTD Software 7.2.0 ASA Software 9.18.1
- windows系统mysql安装教程<手把手教学>
- Python-Django基本笔记
- listen的第二个参数详解
- 如何与离职员工面谈沟通?
- 异构平台运维工作文档