网络技术

如何申请自己的免费ssl证书 – 简单通用的自动化脚本 acme.sh

一、前言

本文使用acme.sh达成ssl证书的自动化申请、部署。acme.sh是纯shell script,兼容性极强,涵盖各类桌面linux发行版、windows、macos,甚至是嵌入式系统,如OpenWrt,Asuswrt,群晖的Synology Diskstation等等。支持的CA也从最早的只有Let’s Encrypt,扩展增加了ZeroSSL等数家,并且兼容 RFC8555-compliant CA。并且自动化部署也非常方便,文档也非常完善,从nginx、apache的自动部署,到openwrt、synology nas的自动部署都有文档教程。官方的wiki非常全面,本文仅仅是对一个简单流程的快速介绍,方便新用户快速入门。详细的细节还请参考…

NextCloud + Aria2 + Transmission 搭建私有云盘 +下载服务器

本文的方法以 LNMP 架构为基础,使用 NextCloud 作为私有云平台,aria2 / transmission作为下载器,搭建一个类似百度云功能的私有云盘+下载服务器。本文以Ubuntu 16.04 LTS操作系统为例。NextCloud的服务端文件存储在 /var/www/nextcloud ,nextcloud用户数据存储在 /var/www/nextcloud_data ,aria/transmission的下载文件夹设置在 /var/www/storage 。

目前阶段本文可能错误较多,仅供参考!

1. mysql

安装

为 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 服务端 ocserv 的部署

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


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

Ubuntu 18.04 可以直接使用apt-get…

在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: