解决APT包版本冲突与降级

近日,Ubuntu 16.04.x LTS可通过执行do-release-upgrade升级到18.04.1 LTS,故将一台VPS升级。 升级过程大体顺利,除了一些包的配置文件需要更新——我将diff输出的对比内容截图后保留(VNC Console中无法复制文本)…

Read More

WordPress应对棘手的垃圾评论

近期[8月1日起],我的博客收到大量垃圾评论,它们在WordPress后台中可看到的特征如下: 都以minecraft为姓名 邮箱很可能是随机生成 IP地址很多,多为美国的家庭宽带 评论中无有效内容,皆是些"你的文章写的很好,我很喜欢看"(译)…

Read More

Windows与Linux共用一个蓝牙鼠标

当一台电脑同时安装了Windows和Linux(以Ubuntu 18.04.1为例)时,每当重启并切换到另一个操作系统,蓝牙鼠标便需重新配对,十分不方便。 这是因为蓝牙设备有一个配对密钥(pairing key)——计算机必须有这个密钥,才能与蓝牙鼠标配对。而两个操作系统上保存的配对密钥不同,…

Read More

为WordPress添加外部链接图标

许多网站使用形如"指向右上方的箭头"的图标来标示页面中的外部链接,我们计划为WordPress引入此功能,并使用于文章和评论内容中。 构建一个新的插件,或在当前使用的主题的function.php中插入如下内容: function external_link_v2($text)…

Read More

主板的玄学故障与排除

问题篇 事情要从2018年2月说起。当时回国后,我将自己的台式机拆开清理灰尘,拆下CPU重新安装后便出现了奇怪的问题:插入主板的4条内存(分为两个通道),每通道永远只有(容量大的)一条能被BIOS和操作系统识别并使用,而4条内存皆可在SPD信息中被识别到,亦可被AIDA64等硬件检测软件中的SPD信息识别到。(即:只能使用12GiB内存中的8GiB) 这台电脑主要配置如下,…

Read More

编译安装nghttp2(启用apps)

众所周知,HTTP/1.1是一个文本协议,而HTTP/2除Header外皆使用无法直接阅读的二进制编码。在一些情况下,我们需要将HTTP/2与HTTP/1.1相互转换(下简称:翻译)。 nghttp2是一个用C编写的HTTP/2实现,…

Read More

对一次网络攻击的调查(及教训)

2018年5月18日,我偶然发现自己的博客的404页面上出现了一串奇怪的数字。它的一部分被某些HTML元素遮挡了,但我还是通过浏览器的开发者工具得到了它——8194460 接下来我做了一件大错特错的事——在Wordpress中将Wordpress和官方的主题全都更新了,这直接使得很多证据丢失了。 反混淆 我透过SSH连接至主机,发现站点根目录下多了一个名为assets的目录,而下载WordPress本身是不含这个目录的。其中只有一个文件(assets/picture/…

Read More

LaTeX test

$$\frac{1}{2}\rho v^2+\rho gh+p = \text{constant}$$ $${c(H_3O^+)} = K_…

Read More

使用acme.sh签发Let's Encrypt通配符证书

12小时前,Let's Encrypt发文称,在经过一系列调整后,正式的ACMEv2后端以及通配符证书已被支持。 acme.sh已支持测试版ACMEv2协议及通配符证书,如今只需去掉命令行中的--test便可签发有效证书。 通配符证书对应域名的所有权无法在通过HTTP进行验证,故ACMEv2采用DNS来验证申请者对域名的所有权,为此需要对该顶级域名添加一条TXT DNS记录。为提高自动化程度,acme.sh和CertBot等支持ACMEv2的工具利用DNS服务商的API来添加与(…

Read More

编译支持HTTP/2的cURL

Ubuntu 16.04的软件源所提供的curl不支持http/2。为支持http/2,需自行编译curl。 为确保支持ALPN(如不支持则无法与一个现代的http服务器协商至http/2),使用OpenSSL作为SSL库。 OpenSSL要使用1.0.2或1.1.…

Read More

非交互Shell有时更好用

几天前看了一篇介绍ZSH的文章,打算尝试用zsh替换bash。 不料更换shell时出现失误,将chsh -s /bin/zsh误写作chsh -s /zsh,导致root没有可用的shell。 接下来我试图再次使用chsh将shell该回去,系统却已无反应。断开SSH重新连接,由于没有shell,都无法登录。…

Read More

一条命令查找并封禁多数暴力破解SSH的IP

之前的文章曾提到,常见的SSH暴力破解工具似乎只支持RSA和DSA两种密钥交换,而不支持较新的ECDSA(使用NIST P-256的ECDSA)和Ed25519(使用X25519的ECDSA)。 由此一来,当这些机器人来暴力破解的时候,/var/log/auth.log中会出现大量类似如下内容的日志 Jan 28…

Read More