如何检测弹性缓存Redis的连通性?
你是想问如何检测redis集群的存活还是只是检测redis主机的连通性?
1、redis集群检查
1)、配置多主多从,哨兵模式。保证集群高可用行
2)检测集群存活,可通过telnet redis端口,进程是否存活
2、主机连通性
1)、 ssh -v -p port username@ip
2)、telnet ip port
3)、curl ip:port
4)、wget ip:port
华为大数据平台如何查看redis集群端口
华为大数据平台redis集群端口
注:ip为安装redis的那台服务器(集群中的其中一台)的ip,password为redis的密码
集群相关信息查看
1.集群状态
redis-cli -h ip -p 9379 -a password cluster info
2.集群节点信息
redis-cli -h ip -p 9379 -a password cluster nodes
3.节点内存、cpu、key数量等信息(每个节点都需查看)
redis-cli -h ip -p 9379 -a password info
3分钟搞定springboot整合redis
不多说直接上代码:
!-- redis --
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-data-redis/artifactId
exclusions
exclusion
groupIdredis.clients/groupId
artifactIdjedis/artifactId
/exclusion
exclusion
groupIdio.lettuce/groupId
artifactIdlettuce-core/artifactId
/exclusion
/exclusions
/dependency
!-- 添加jedis客户端 --
dependency
groupIdredis.clients/groupId
artifactIdjedis/artifactId
/dependency
!--spring2.0集成redis所需common-pool2--
!-- 必须加上,jedis依赖此 --
dependency
groupIdorg.apache.commons/groupId
artifactIdcommons-pool2/artifactId
version2.5.0/version
/dependency
!-- 将作为Redis对象序列化器 --
dependency
groupIdcom.alibaba/groupId
artifactIdfastjson/artifactId
version1.2.47/version
/dependency
#Matser的ip地址
redis.hostName=172.16.44.148
#端口号
redis.port=6379
#如果有密码
redis.password=
#客户端超时时间单位是毫秒 默认是2000
redis.timeout=10000
#更大空闲数
redis.maxIdle=300
#连接池的更大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
#redis.maxActive=600
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
redis.maxTotal=1000
#更大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的更大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=true
#在空闲时检查有效性, 默认false
redis.testWhileIdle=true
package com.junsi.demo.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import com.junsi.demo.utils.RedisUtil;
import redis.clients.jedis.JedisPoolConfig;
/**
* Redis配置类
* @author pzx
* 2019年6月8日
*/
@Configuration
@PropertySource("classpath:redis.properties")
public class RedisConfig {
@Value("${redis.maxIdle}")
private Integer maxIdle;
@Value("${redis.maxTotal}")
private Integer maxTotal;
@Value("${redis.maxWaitMillis}")
private Integer maxWaitMillis;
@Value("${redis.minEvictableIdleTimeMillis}")
private Integer minEvictableIdleTimeMillis;
@Value("${redis.numTestsPerEvictionRun}")
private Integer numTestsPerEvictionRun;
@Value("${redis.timeBetweenEvictionRunsMillis}")
private long timeBetweenEvictionRunsMillis;
@Value("${redis.testOnBorrow}")
private boolean testOnBorrow;
@Value("${redis.testWhileIdle}")
private boolean testWhileIdle;
@Value("${spring.redis.cluster.nodes}")
private String clusterNodes;
@Value("${spring.redis.cluster.max-redirects}")
private Integer mmaxRedirectsac;
/**
* JedisPoolConfig 连接池
* @return
*/
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 更大空闲数
jedisPoolConfig.setMaxIdle(maxIdle);
// 连接池的更大数据库连接数
jedisPoolConfig.setMaxTotal(maxTotal);
// 更大建立连接等待时间
jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
// 逐出连接的最小空闲时间 默认1800000毫秒(30分钟)
jedisPoolConfig.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
// 每次逐出检查时 逐出的更大数目 如果为负数就是 : 1/abs(n), 默认3
jedisPoolConfig.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
// 逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
jedisPoolConfig.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
// 是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
jedisPoolConfig.setTestOnBorrow(testOnBorrow);
// 在空闲时检查有效性, 默认false
jedisPoolConfig.setTestWhileIdle(testWhileIdle);
return jedisPoolConfig;
}
/**
* @param jedisPoolConfig
* @return
*/
@Bean
public JedisConnectionFactory JedisConnectionFactory(JedisPoolConfig jedisPoolConfig){
JedisConnectionFactory JedisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig);
//连接池
JedisConnectionFactory.setPoolConfig(jedisPoolConfig);
//IP地址
JedisConnectionFactory.setHostName("172.16.44.148");
//端口号
JedisConnectionFactory.setPort(6379);
//如果Redis设置有密码
//JedisConnectionFactory.setPassword(password);
//客户端超时时间单位是毫秒
JedisConnectionFactory.setTimeout(5000);
return JedisConnectionFactory;
}
/**
* 实例化 RedisTemplate 对象
*
* @return
*/
@Bean
public RedisTemplateString, Object functionDomainRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplateString, Object redisTemplate = new RedisTemplate();
initDomainRedisTemplate(redisTemplate, redisConnectionFactory);
return redisTemplate;
}
/**
* 设置数据存入 redis 的序列化方式,并开启事务
*
* @param redisTemplate
* @param factory
*/
private void initDomainRedisTemplate(RedisTemplateString, Object redisTemplate, RedisConnectionFactory factory) {
//如果不配置Serializer,那么存储的时候缺省使用String,如果用User类型存储,那么会提示错误User can't cast to String!
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
// 开启事务
redisTemplate.setEnableTransactionSupport(true);
redisTemplate.setConnectionFactory(factory);
}
@Bean(name = "redisUtil")
public RedisUtil redisUtil(RedisTemplateString, Object redisTemplate) {
RedisUtil redisUtil = new RedisUtil();
redisUtil.setRedisTemplate(redisTemplate);
return redisUtil;
}
}
旗鱼云梯Linux端口扫描防护
端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机 *** 服务类型(这些 *** 服务均与端口号相关)。端口扫描是计算机攻击的之一步,攻击者可以通过它了解到从哪里可探寻到攻击弱点。实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。
在Linux上每个通过 *** 访问的程序都要监听一个端口,并通过此端口去访问。比如常用的端口: 22,80,443,3306,6379分别对应的是ssh服务,http服务,https服务,mysql服务,redis服务的默认端口。比如我们访问旗鱼云梯的网站 其实访问的是 或者 443. 比如MySQL开放远程权限允许远程访问的话,那么我们将通过ip:3306去访问mysql服务,redis同样如此 通过ip:6379访问redis服务。如果密码设置简单的话几下就被爆破了,mysql密码设置为123456,一下就爆破了。。。
对于常用服务除了80,443以外非常建议修改默认端口号,
说这么多,那跟端口扫描有什么关系呢?
当我们把SSH默认端口22修改为其他端口比如23456端口, 那么黑客想要继续对我服务器进行SSH爆破那怎么办呢?
演示的我就直接指定端口扫描了,不然扫描全端口扫描太慢了。黑客一般用的都是端口扫描工具进行全端口扫描。
旗鱼云梯根据客户反馈和需求,推出端口防扫描安全防护,自动检测非法端口扫描IP,超过阈值自动封禁,从源头加固主机安全。保护服务器不受端口扫描的危害,坚守之一道防线。
fscan:一键自动化、全方位漏洞扫描的开源工具
fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。
它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
源码链接:
1.信息搜集:
2.爆破功能:
3.系统信息、漏洞扫描:
4.Web探测功能:
5.漏洞利用:
6.其他功能:
简单用法
其他用法
编译命令
完整参数
这个项目的开发者参考的开源项目有这些:
0条大神的评论