ECS服务器上装了个redis,然后愉悦的一天开始了
各种连接不上啊有木有
于是各种百度,试了各种办法,对我的问题没有很全面。最后总结一下。
1.各种连不上之 bind-1
redis.conf 文件里的bind只接受0.0.0.0、127.0.0.1和ecs内网ip,否则启动失败。如ECS外网ip
2.各种连不上之 bind-2
redis.conf 文件里的bind是127.0.0.1的时候继续连不上(why?)
3.各种连不上之 安全组
连接前提——redis.conf 文件里的bind是0.0.0.0或ECS内网ip。
此时如果安全组未开放redis端口,那么继续连接不上。那么问题来了——既然我配置的是内网本机ip,我ecs本地服务访问本机redis,为什么要开放这个安全组?
== 最后,既然开放了6379端口,bind我是不敢使用0.0.0.0的,那么目前能使用的bind,只有一个——ECS内网本机ip==(被挖矿了,然后发现bind是0.0.0.0,操作失误。下面有补充)
有没有大神知道这个安全组的问题,这个端口真不想开放呀,尽管我bind本机了(强迫症?)
然后被攻击了
上图
学艺不精。开放端口被挖矿了。
定位问题
之所以需要开放端口才能访问,是因为我Tomcat配置的redis的访问ip为阿里云公网IP。
解决方案
1.生产/测试环境:因为后台项目需部署到linux,那么tomcat配置的redis的访问ip改为127.0.0.1,再将redis.config的bind也改为127.0.0.1就可以关闭安全组6379端口了。
2.开发环境:因为开发环境需要debug,必须在自己电脑进行,那么开发环境的redis最好也配置在自己的电脑上。如果redis在linux,那么需要开放端口,并且设置bind为0.0.0.0(应该是有方法配置到自己电脑ip使用的,不过我没找到),允许所有用户访问,那么是不安全的,只能将密码设置复杂一些了,并且经常更换。