网络技术

为 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兼容良好,可以直接编译,整个过程非常顺畅,不会出现之前各种编译过程出错的问题。因为如此,本人也能够写出如下一个一键脚本:…

OpenWRT 自动翻墙路由器 DNS 解析的改善 (旧)

(最新DNS解析的改善方法已经合并至《Shadowsocks + ChnRoute 实现 OpenWRT / LEDE 路由器自动翻墙》的DNS配置部分,本文为旧版本)


本人博客中提到的自动翻墙路由器方案,大都使用了ChinaDNS提供防污染、优化解析的DNS服务,不过实际使用中还是会遇到很多的误判情况,一是多见于存在海外CDN服务器的国内网站,导致访问国内站点走代理;二是某些ISP的DNS存在劫持现象导致ChinaDNS无法正确处理导致无法爬墙。而这里就是探讨改善这种情况的方法。…

Openconnect VPN 服务端 ocserv 的部署

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


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

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

无需信用卡 使用全球付购买 Linode VPS

Linode是国人经常使用的VPS提供商。Linode创建于2003年,公司专注提供基于Linux云主机的IDC服务,目前已为超过250,000用户提供云主机服务,他们的用户群主要来自有网站管理和配置技术的站长。

作为一家老牌VPS提供商,Linode运行稳定,价格不贵;十分关键的是Linode拥有日本机房,正式因此很多国人站长都选择将站点部署到Linode日本,当然也有相当一部分的科学上网服务端搭建于此,因此也是供不应求,时常遇到资源不足暂停销售的情况。鉴于此Linode也是即将再上线另一个日本机房以扩充容量,并且新加坡机房也上线在即,二者联动,确保了稳定的亚洲线路。…

在Chrome中快速使用站内搜索

虽然Google搜索很强大,但毕竟针对单一站点的索引一般不如站点自己的站内搜索准确完整。Chrome浏览器可以自动识别网站的站内搜索形式并自动添加到Chrome的搜索引擎中:

 

第一列是搜索引擎名称,第二列是搜索引擎关键字(用于调用搜索引擎 默认是站点域名),第三列就是搜索的URL了。

如果列表中没有,你也可以自行添加,在站内搜索框中右击即可:

添加搜索引擎

不过也不是所有都能自动识别的,站内搜索需要符合一些条件才能识别。如果识别不了的,就需要手动添加了,比如说京东的,搜索URL就是:…

apache2 反向代理 Google Web Fonts & Gravatar

自打Google被封杀,折腾wordpress就越来越蛋疼,一旦页面引用了Google Web Fonts,不爬墙的情况下整个站点的加载速度就会被拖慢,还会造成内容显示异常。这段时间更是Gravatar都悲剧了,评论区头像全显示不出来了。于是乎干脆搞起了 反向代理。

我用的是apache2,反向代理使用mod_proxy搭配mod_cache做缓存,以Ubuntu系统为例。

启用相应的mod:

先配置反向代理,找到/etc/apache2/mods-enabled/proxy.conf,编辑:…

加速OpenWRT路由器的DNS解析 – pdnsd代替dnsmasq

注:新版dnsmasq已经可以手动设置min-ttl和cache-size,使用pdnsd替代dnsmasq已经无太大意义;dnsmasq设置方法,在 /etc/dnsmasq.conf 中加入:


此篇文章说明使用缓存功能更加强大的pdnsd来代替openwrt自带的dnsmasq完成dns解析功能,从而改善解析速度的方法。本篇内容和科学上网没有直接关系!

OpenWRT默认使用dnsmasq提供DHCP/DNS服务,通常情况下够用。但在某些特殊情况下,DNS查询延迟较大,dnsmasq对于DNS记录的缓存时间、还有缓存文件大小都比较受限,一条记录可能没多久就被清除出缓冲区,失效了。这时我们就希望有一个缓存功能更强的DNS软件,可以手动改大TTL、增大缓存文件大小。这时就可以用pdnsd。你可以配置它,让TTL超期的记录也不被自动清除、可以提高TTL的最小值等等。同时也有完整的可用性检查,你可以配置对DNS服务器的可用性检查,如果一组DNS服务器不可用,可以做故障切换,切至你添加的另一组DNS(比如说你用你的VPS做解析,VPS挂掉了,这时自动切到114DNS或者Google…

服务器使用 pdnsd 部署 DNS forwarder 的方法

Assume that you use Ubuntu.

Download & Install pdnsd:

At the setup configuration step, choose manual. Then modify the config file: /etc/pdnsd.conf

At the global section, change server_ip, add server_port, increase or decrease the perm_cache, change min_ttl & max_ttl at your own need, just like:

Google在教育网遭国家级“中间人攻击”

目前GFW对于Google的封锁已经持续了相当长一段的时间了。不过在教育网中,如果你解决了DNS污染问题,透过IPv6网络,依然可以无阻地访问Google的站点。

然而近日,教育网用户会发现,访问Google的情况发生了变化:会收到证书错误的警告。Chrome、Firefox等浏览器对于这种情况会直接彻底阻断访问。查看收到的证书,发现证书用法为空(正常的HTTPS网站应该为SSL服务器认证),颁发者是google.com,而真正Google站点的证书,应该是有GeoTrust颁发的。…