linux Connection reset by peer 连接原因 如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。 Socket默认连接60秒,60秒之内没有进行心跳交互,即读写数据,就会自动关闭连接。 一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。 简单的说就是在连接断开后的读和写操作引起的。 Connection reset by peer的常见具体原因 1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭; 如果知道实际连接服务器的并发客户数没有超过服务器的承载量,则有可能是中了病毒或者木马,引起网络流量异常。可以使用netstat -an查看网络连接情况。
other X.509证书内容详解 证书内容提取 blog.liu-kevin.com.pem证书内容查看 $ openssl x509 -in blog.liu-kevin.com.pem -text -noout Certificate: Data: Version: 3 (0x2) Serial Number: 0f:81:31:2d:dc:26:74:75:16:95:29:cd:
java FontConfiguration NullPointerException 问题 java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219) at sun.awt.FontConfiguration.init(FontConfiguration.java:107) at sun.awt.X11FontManager.createFontConfiguration(
java pinpoint 监控问题 获取PtxId pinpoint通过agent的方式运行 如果通过MDC.get("PtxId")获取pinpint中的事物id,需要在pinpoint.config中开启日志 profiler.log4j.logging.transactioninfo=true profiler.logback.logging.transactioninfo=true 值得注意的是当我们通过MDC.get("PtxId")获取id前,需要先通过log.info或log.error打印下日志(使用info/warn/error取决于日志level),原因为pinpoint.
network wireshark使用介绍 过滤ipv4 某端口 (tcp.srcport8080 or tcp.dstport8080) and ip.version==4 过滤ipv4某ip (ip.dst61.135.169.125 or ip.src61.135.169.125) and ip.version==4 过滤icpm和dns (ip.dst39.105.208.10
java java jar包运行没有主清单属性 service-xx-demo-1.0-SNAPSHOT.jar中没有主清单属性 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.2.
other envoy代理使用教程 http代理 envoy.yaml admin: access_log_path: /tmp/admin_access.log address: socket_address: { address: 127.0.0.1, port_value: 9901 } static_resources: listeners: - name: listener_0 address: socket_address: { address:
k8s 腾讯云k8s集群kubectl集群外操作 k8s中创建deploy k8s-envoy k8s-envoy镜像 envoyproxy/envoy-alpine:v1.14.1 配置文件 static_resources: listeners: - address: socket_address: address: 0.0.0.0 port_value: 8080 # k8s-envoy监听端口 filter_chains: - filters: - name: envoy.tcp_
k8s k8s deploy示例 demo1 简单deploy配置介绍 http探活 内存cpu配置 demo2 环境变量 tcp探活 镜像下载密钥 目录挂载 demo3 启动参数 附 demo1 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: lykops-dpm labels: software: apache project: lykops app: lykops-dpm version: v1 spec: replicas: 3
mysql mysql group_concat长度限制 问题描述 1. SELECT GROUP_CONCAT(字段名) FROM 表 WHERE a='值'; 2. SELECT count(字段名) FROM 表 WHERE a='值'; 语句1的结果集小于语句2的数量 问题原因 mysql对group_concat的长度做了限制 解决方案 改变当前会话默认查询长度 1. SET SESSION group_concat_max_len
http HTTP HTTPS实战 问题 http协议是什么协议,结构是什么样的? http协议是几层协议? http是有状态的还是无状态的? nginx是几层代理? lvs是几层代理? 浏览器在与服务器建立了tcp连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开? 一个 TCP 连接可以发送几个 HTTP 请求? 一个 TCP 连接中 HTTP 请求发送可以一起发送么(比如一起发三个请求,再三个响应一起接收)? 为什么有的时候刷新页面不需要重新建立 SSL 连接? 浏览器对同一 Host 建立 TCP 连接到数量有没有限制? sktools介绍 ./sktools
mysql mysql幻读 在可重复读下,mvcc是否解决了幻读问题 测试一 事务1 set autocommit = 0; select * from temp; 事务2 insert into temp (id,name)values(2,"60") 事务1 select * from temp; 总结 在可重复读模式下,查询不到新提交的insert语句 测试二 事务1 set autocommit = 0;
idea idea破解 目录 Goland IntelliJ IDEA goland 下载新版破解补丁 下载补丁文件 jetbrains-agent.jar 并将它放置到 Goland安装目录的\lib目录下(位置可随意,放这里是怕误操作删除了破解文件)。 进入项目界面 进入到项目界面后,点击GoLand最上面的菜单栏中的 “Help” -> “Edit Custom VM Options …”,如果提示是否要创建文件,请点”Yes”。 在打开的vmoptions编辑窗口末行添加:-javaagent:你goland的安装目录\jetbrains-agent.jar 请仔细检查补丁路径是否正确,
other X.509 数字证书介绍 X.509 数字证书结构图 简单来说,数字证书就是一张附带了数字签名的信息表。 下图或许可以帮助对本文的理解。 互联网中常见的信息窃取方式 假设客户端「C」想和互联网另一端的服务器「S」进行无保密通信,且客户端「C」没有部署任何服务器身份验证机制。 假冒服务器 假冒的服务器「fake_S」冒充「S」,直接与「C」进行通信。 如果「C」打算将密码之类的敏感信息传递到「S」,那么敏感信息就会被「fake_S」截获。 这时候「
java spring zuul接口与转发过程 spring zuul转发问题 spring zuul项目中的RestController api成功调用,但是存在部分接口调用了PostFilter,但是其它接口不执行PostFilter 原因 zuul: prefix: /v1 routes: new-platform-env: sensitiveHeaders: Access-Control-Allow-Origin,Access-Control-Allow-Methods path: /v1/** url: http://trade-application-gateway:8080 stripPrefix: false new-platform-env2: sensitiveHeaders: Access-Control-Allow-Origin,Access-Control-Allow-Methods path: /v2/** url: http://trade-application-gateway:
hack hackthebox注册过程 打开网站 Join Now www.hackthebox.eu 获取邀请码 打开控制台 根据提示获得信息,当前页面存在一个有趣的js文件,找到它获取下一步信息 查看网站的js文件内容 发现inviteapi.min.js,从名字可了解到该js为邀请接口相关的,获取内容为 //This javascript code looks strange...is it obfuscated??? eval(function(p,a,c,k,e,r)
java spring cloud zuul无法转发路由 问题 进行以下路由配置,当调用/financial_order/calculation时,无法将请求转发到http://service-financial-product:8080;zuul应是按从上至下,第一个匹配到的规则进行转发,所以原则上应请求至http://service-financial-product:8080 financial_calculation: path: /financial_order/calculation url: http://service-financial-product:8080/financial_product stripPrefix: false financial_order_service: path: /financial_
java spring application.yaml配置文件解析过程 目录 主要相关类介绍 PropertySource PropertySources PropertySourceLoader PropertySourcesLoader PropertyResolver Environment StandardServletEnvironment ConfigFileApplicationListener ConfigFileApplicationListener.Loader 主要相关类介绍 PropertySource 是Spring对name/value键值对的封装接口。该定义了getSource()方法,这个方法会返回得到属性源的源头。比如MapPropertySource的源头就是一个Map,PropertiesPropertySource的源头就是一个Properties。 public abstract class PropertySource<T> { protected final Log logger = LogFactory.
java 内部类反编译分析 源码 public class InnerClassTest { final StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); public static void main(String[] args) throws Exception { StringBuilder sb = new StringBuilder("124"); Callback callback = new Callback() { @Override
other 常用的加密算法 概述 对称加密算法 非对称加密算法 散列算法 详述 对称加密算法 DES 应该是最早的现代密码学算法之一。它由美国政府提出,密钥长度为 56 位。目前,它暴力破解 56 位密码的时间,已经能控制在 24 小时内了。 DES 实际上是一个过时的密码学算法,目前已经不推荐使用了。关于 DES,还有一点特别有意思。DES 包含一个关键模块:S 盒,其设计的原理一直没有公开。因此,很多人都相信,这个
linux spring boot admin请求接口无响应问题排查 问题 请求网关转发接口长时间无响应,服务无任何错误日志;但是直接请求服务接口正常。 问题定位 TCP问题排查 通过nestat查看tcp连接 bash-4.3$ netstat -tap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.
docker 查看docker容器的tcp连接 查看容器内的tcp连接 当需要查看tcp连接时,通常使用netstat或ss命令查看,但是查看docker容器的tcp连接存在两个问题 docker容器中无netstat或ss命令 node节点上无法查看容器中的连接 查看docker容器中网络连接 通过容器中的proc文件查看 查看proc文件内容 cat /proc/net/tcp 内容分析,主要关注的点是local_address、rem_address sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt
mysql mysql之binlog操作 获取binlog文件列表 show binary logs; 查看当前正在写入的binlog文件 show master status 查看指定binlog文件的内容 show binlog events in 'mysql-bin.000002'; 查看binlog具体内容 mysqlbinlog -u temp_admin -h psi.mysql.test.tcit.cc -P 3306 --read-from-remote-server -p --base64-output="decode-rows&
golang golang之udpConn golang进行UDP client/server通讯的过程中发现Read/ReadFromUDP/Write/WriteToUDP的使用,还有connection/unconnection较乱。 代码实验 UDP server UDP服务器端在调用”net.ListenUDP()“后创建”net.UDPConn”,read/write操作是通过这个UDPConn来完成的。因为listen的时候只指定了本地绑定的地址,它只能被动的接收来自客户端的消息,因此这个UDPConn在golang中为’unconnected’类型的。 这种类型的UDPConn的读操作可以接受Read()及ReadFromUDP()。区别是Read()无法知道远程连接的地址信息而ReadFromUDP()可以,所以如果后续需要跟远程进行双向通讯需要使用ReadFromUDP()。 这种类型的UDPConn在进行写操作时必须使用WriteToUDP()完成,并且需要指定对方的地址信息。