二十二年•纪 Apr 27, 2019

感谢刘港欢大学四年来1218天的陪伴

这是悦悦毕业论文的致谢中的一句话。一篇论文,洋洋洒洒,突然就写到了最后的致谢,这才恍然间发现,我们也过到了大学生涯的结尾。今天4月27日,我刚满22周岁不久。20多年的生命,我从来没有好好回忆过,思考过。想了一想,总归要抖一抖胸中不多的墨水写点什么。借着这个机会,要说说我生命里遇到的那些人,那些事。

...
Netty实现自定义流式解析器 Apr 26, 2019

tcp分包一般在pipeline的前部使用DelimiterBasedFrameDecoder, FixedLengthFrameDecoder, LengthFieldBasedFrameDecoder, or LineBasedFrameDecoder,分别适用于固定分隔符、固定长度帧、长度字段、换行符分割四种情况。但是,这四种不能涵盖tcp分包的全部情况,举个栗子:http协议的解析就不是上面四种中的一种。解析http协议或者其他自定义协议时,就需要用到ByteToMessageDecoder创建自己的“流式”解析器。netty的http解析器(HttpObectDecoder)就是继承ByteToMessageDecoder并override decode方法实现的。

...
go使用sync.pool实现复用[]byte——降低IO密集应用的GC频率 Apr 14, 2019 前一篇文章介绍了sogo这个socks5代理的实现,在原始的sogo实现中,有一个重大的问题是:没有复用内存,导致频繁GC,导致cpu占用很高。对于socket通信这种io密集的应用,复用[]byte还是很重要的,不然每次去make新的[]byte,这些[]byte迟早要被GC,这就导致了cpu占用高的问题。解决这个问 ...
Sogo—使用http协议进行混淆/伪装的socks5代理 Apr 10, 2019

之前写了一个http代理,用起来也是十分地舒服,但是有几个点还是有些遗憾的:

  • http代理只能代理http协议,相比socks5代理不够通用。。
  • netty是个好框架,但是java占用内存是真的多。。

所以,我又写了一个socks5代理,起名叫sogo

sogo本身包含sogo(client)和sogo-server。如果把sogo和sogo-server看成一个整体,一个黑盒,这个整体就是一个socks5代理。sogo(client)与本地电脑交互;sogo-server与目标网站交互;sogo(client)和sogo-server之间的交互就是http协议包裹payload进行通信。

...
响应式iframe 16:9—hugo博客嵌入youtube视频 Apr 10, 2019

其实只是博客中想嵌入16:9的youtube视频,但youtube官方的嵌入代码是固定宽度1280,高度720,在手机上表现十分不好。因此有了这个偏前端的主题。

...
阿里云vps关闭阿里云盾 Mar 21, 2019

阿里云 ECS 默认自动安装了阿里云盾(安骑士)的 WAF 防火墙,这个云盾基本是没有用的,唯一的用处就是记录一些所谓的漏洞、扫描/注入攻击以便在阿里云后台提示用户购买使用收费版“安骑士”服务。可以说这玩意儿除了是阿里云营销“套路”调用获取数据外基本没有什么用的,摆设的感觉非常强烈。删!

...
RabbitMQ的使用 Mar 14, 2019 rabbitmq java api使用demo 详情见github项目rabbitmqdemo 在centos7上安装RabbitMQ 3.7.13 RabbitMQ是使用Erlang编写的消息中间件,因此首先需要安装Erlang,而且RabbitMQ与Erlang版本有着对应关系。 首先到RabbitMQ 3.7.13的realse页面。其中提到3.7.13版本 ...
玩转VPS与centos 7 Mar 4, 2019

多年以后,我又开始整vps了,学了三年,也知道怎么整linux了。个人使用的是搬瓦工 DC6 CN2 GIA 机房的vps。购买链接

...
针对热点问题的网络舆情爬取系统 Feb 28, 2019

“网络舆情爬取系统”是针对在一定的社会空间内,围绕中介性社会事件的发生、发展和变化,民众对社会管理者产生和持有的社会政治态度于网络上表达出来意愿集合而进行的计算机监测的系统统称。

...
安卓Vpn开发思路 Jan 30, 2019

经过2个月的开发,我的http代理可以说没有遗憾了,当然还有可以改进的地方,比如多用户认证啥的,但是没有必要啦。

为了在安卓上也能愉快地使用自己开发的代理,研究了一下安卓Vpnservice,在此记录一下当前的进度,并确定以后的开发思路。

...