Linux

为 nginx 添加 HTTP/2 与 CHACHA20_POLY1305 支持

HTTP/2 协议正式发布已有数月有余,主流浏览器的最新版本均已经支持HTTP/2;而且不少Web Server也已经开始支持,nginx官方也表示要在年底支持HTTP/2。HTTP/2基于SPDY,可以有效改善站点的通讯速度,特别是HTTPS站点。本站也早已开启HTST,强制全局HTTPS,适合应用HTTP/2。虽然目前nginx的mainline从1.9.5版本开始支持HTTP/2,不过编译时候需要加上相应参数,不然不会编译HTTP/2的模块。

至于CHACHA20_POLY1305,之前被谷歌广泛应用的对称加密协议,相对于常用的AES,其在ARM平台的性能更佳。然而nginx默认使用的openssl并不支持这种加密方式,因此这里使用libressl作为替代。新版的libressl已经与新版nginx兼容良好,可以直接编译,整个过程非常顺畅,不会出现之前各种编译过程出错的问题。因为如此,本人也能够写出如下一个一键脚本:…

Openconnect VPN 服务端 ocserv 的部署

ocserv(Openconnect VPN Server)是一款开源的、兼容Cisco Anyconnect VPN的VPN服务端软件。由于思科在网络设备中的特殊地位,思科的VPN一直未被特殊照顾(其实这个VPN握手过程特征应该是较为明显的)。目前状况下通讯较为稳定,干扰较小。主要优势是多平台的支持,Windows、Android、iOS都能找到它的客户端。往往可以作为shadowsocks等代理的补充。


下面简要介绍一下部署过程,以在Ubuntu系统中的部署为例。

主页:http://www.infradead.org/ocserv/

shadowsocks – libev 服务端的部署

在VPS上部署shadowsocks,推荐使用C语言编译的libev版本的服务端。下面介绍在Linux系统的VPS上安装并配置的方法。Linux请采用近期的发行版,不要过老。本文基本是照着github上的readme翻译的,给那些英文苦手一点帮助。本篇只提供从源码自行编译并直接安装(或者生成deb包安装)的方法。其他方式请参考github上原repo的readme。

由于shadowsocks-libev变动频繁,请以shadowsocks-libev的Github页面的readme为准,如有问题可至issue页面查找有无类似问题,或者发issue提问:…

OpenWRT:利用Image Builder编译生成自定义ROM

官方编译好的OpenWRT固件只包含了比较基本的包,而对于日常使用,至少能在刚刷完ROM后能直接登陆luci的网页管理页面,打开无线才比较方便;而且有人会购买增加了ROM容量的改版路由器;这些情况都需要我们生成自己的自定义ROM。

一种方法是使用官方在SVN上发布的源码,修改配置后进行编译,不过这显然太麻烦了,而且不太懂的人很难跟着官方的文档一步步做下来。然而其实官方给出了名为Image Builder(Image Generator)的工具包来快捷生成所需固件,这个工具包已经包含并配置好了所有编译需要的东西,一条命令即可生成所需的固件,并且可以通过修改Makefile和一些配置文件来生成自定义的固件,是相对简洁易用的方式。下面逐步介绍通过Image…