Lan Tian @ Blog

抢到了 50KVM 家一台 0.1 折的 VPS

TG 最大主机商 50KVM 倒闭啦!原价 100 多,200 多的 VPS,现在通通 2 块钱!通通 2 块钱!(并不 起始 4 月 1 号星期天凌晨,正躺在床上看最新一集的国家队 Telegram 弹出消息,50KVM 发了一个愚人节优惠: 反正国家队看完了,那就试试看输这排 emoji 吧 第一轮尝试 尝试用 macOS 的输入法输入 emoji,然而发现并不好用,因为根本不知道这些 emoji 是什么东西 Google “emoji 列表” 找到了一个 emoji 的列表网站 表情符号列表 等等,macOS 的 emoji 和图上的根本不是一个风格 先猜猜看吧 (尝试 5 次之后) 还是得知道是什么 emoji 字体啊,虽然凌晨 2 点人不多,但是再慢一点说不定会被别的大佬抢走 第二轮尝试 思考屌鸡(50KVM 老板)用的什么系统 macOS(以及 iOS)...

如何在 SSLLabs 测试中冲满分

Qualys SSL Labs 是一个测试服务器 SSL 功能的网站,我们在配置服务器时经常用它作为参考。一般来说我们只参考它的评级(A+,A,B,C,D,E,F,T)等,达到 A+ 就认为服务器的配置足够优秀。不过,SSLLabs 也在评级右侧给出了分项分数,而我的主站并没有把它们全部冲到满分。如果把 SSLLabs 的各项分项分数全部达到满分,会是什么效果,有什么实际意义吗?我用一台不运行网站的 VPS 安装了 nginx 并进行了一些配置,成功刷到了全满分,如图或者这里所示: 作为对比,这是本站的评分,除看图外也可在此处看到: 本文有关 SSLLabs 评分标准全部来自于 SSLLabs 官方的评分标准文档 在本文写成之日的版本。 准备工作 我们要先安装好 nginx。因为这台 VPS 是 OpenVZ 的,没法装 Docker,所以没法像我的其它 VPS 一样一键部署。...

CommentToMail 修改版

最近突然发现本来每天一封的自建贴吧签到系统的邮件突然没有了,但是贴吧还是正常签到。上 Mailgun 界面一看,状态全线飘红: 日志里一大排发往我自己 Outlook 邮箱的退信,比如: 看提示是 Mailgun 的整个 AS 都被 Outlook 拉黑了。这下子是完全没法用了。 好消息是,有许多和 Mailgun 提供类似服务的邮件服务商,例如 SendGrid。我很快在他们网站上注册了一个账号,并且开启了 SMTP,把我的贴吧签到、NextCloud 等都接了进去,非常顺利。 坏消息是,我的博客用的是我专门给 Mailgun 写的 CommentGun,需要修改一下才能接到 SendGrid 上。 本来我可能修改一下插件,然后又能出一个 CommentGrid 之类的插件,但是每家邮件服务商的 API 都不一样。如果这些服务商轮着被 Outlook 屏蔽……画美不看。...

为 nginx 启用 TLS 1.3,并传递给 FastCGI 后端

OpenSSL 在最新的测试版中提供了 TLS 1.3 的实验性支持,包括了一系列的性能和安全性优化。最新的 nginx 1.13 系列也相应的添加了 TLS 1.3 的相关选项。 不过由于 TLS 1.3 还处在草案状态,现在使用还是要踩一些坑的: TLS 1.3 目前有 18、19、20 三个版本的草案已经被 OpenSSL 等实现,而且它们互不兼容,也没有一个 SSL 的库把它们三合一。 目前 Chrome、Firefox 等浏览器广泛使用的是 18 版草案,但是这个版本的 OpenSSL 不支持 TLS 扩展,而 Certificate Transparency 需要用到它。 虽然最新的 nginx-ct 插件增加了 TLS 1.3 的 Certificate Transparency 支持,但是由于第二条,它无法与草案 18 的 OpenSSL 一同工作,会出现编译失败的情况。...

加入 DN42 实验网络

DN42 全称 Decentralized Network 42(42 号去中心网络),是一个大型的 VPN 网络。但是与其它传统 VPN 不同的是,DN42 使用了大量在互联网骨干上应用的技术(例如 BGP),可以很好的模拟一个真实的网络环境。 正因为它的真实,使用 DN42 的门槛比较高。你要扮演一个 ISP(互联网服务提供商),注册一个 ASN 号码,注册 IPv4 和 IPv6 的地址池,并且使用 BGP 在自己的服务器上广播它们。你还要和其它的用户联系,和他们做 Peering(对接),一步步进入完整的 DN42 网络。 DN42 在 172.20.0.0/14 和 fd00::/8 上运行,而这两个 IP 段都是分配给内网使用的。换句话说,你在 DN42 上怎么折腾,都不会影响到服务器其它的互联网连接。 DN42 官方提供了很详细的注册 ASN 和 IP 的教程,...

使用 ZeroTier One 在多台 Docker 服务器间建立双栈互通网络

前言 多台 Docker 服务器上的容器互通是一个不好解决的问题。如果自建一个 Overlay 网络,就需要在一台服务器上建立 etcd 之类的服务。但如果 etcd 所在的服务器挂了,整个网络就 GG 了。我用的便宜 VPS 有偶尔网络中断的情况,我自己搞崩也服务器是常有的事,所以我不能采取这种方式。 Docker 也有其它的基于 Overlay 的商业化组网方案,例如 Weave,但是对于个人用户来说这些方案的价格太高了(我只是搞来玩玩),所以也不考虑。 在这些网络结构上,etcd 或者 Weave 之类的中心服务器记录了每个容器所在的服务器和内部 IP,所以在任何容器上都可以直接 DNS 解析到其它容器。也就是说,假如我设置了 lantian-nginx 和 lantian-phpfpm 两个容器,...

基于 Mailgun 的 Typecho 评论邮件提醒插件

很多时候,在 WordPress、Typecho 等自建评论系统的网站中回复,只能靠自己不断访问来确定自己的评论有没有被别人回复。然而,对于大多数人来说这样做是非常麻烦的。 博主解决问题的常用方法,就是安装邮件提醒插件。当一名评论者的评论被回复,就会有邮件提醒评论者。 Typecho 上使用最广泛的插件是 CommentToMail,最早由 DEFE 开发,后来由 Byends Upd 接手。该插件通过常用的 PHP Mail,SendMail 或者 SMTP 来发送邮件。 但是,比起以前的注册一个邮箱来发提醒邮件,现在博主们也开始使用 Mailgun 之类的邮件平台。这类邮件平台提供 API 发信功能,不需要再进行复杂的 SMTP 发信设置,也不需要繁杂的处理代码。我就对这个插件进行修改,让它通过 Mailgun API 而不是 SMTP 发送邮件。 GitHub 项目地址:https:...

将网站迁移到 Docker

Docker 是一个 Linux 下的容器管理软件。每个容器某种意义上相当于一个 OpenVZ VPS,可以将服务器上的各个应用隔离开来。这种隔离有助于同一软件不同版本,或是互相冲突的软件在同一服务器上运行,比如 MySQL 5.7,MySQL 5.6 和 MariaDB 10.1 可以在同一台服务器上的三个 Docker 容器中运行。 但是 Docker 比 OpenVZ 优秀的地方在于,它对 Linux 内核的版本要求要宽松的多。OpenVZ 的内核至今为止停留在 2.6.32(稳定版)和 3.10(开发版),但是 Docker 可以在 3.10 以上的任何版本 Linux 内核运行。我的服务器现在运行 Linux 4.9 内核(为了 BBR),明显不能运行 OpenVZ,但是可以运行 Docker。 Docker 另一个优点是提供了一套非常完整的镜像仓库和自动化工具。...

GetIPIntel 的 Typecho 插件

GetIPIntel 的介绍可以在刚刚这篇文章看到。 我写了一个 Typecho 的插件,可以阻止使用代理的访客评论,或者把他们的评论丢进垃圾箱。 功能: 多种模式选择(仅黑名单,快速检查,全面检查) 多种处理措施(人工审核,丢垃圾箱,提交失败) 自定义阈值 插件可以在 https://github.com/xddxdd/typecho-getipintel 下载到。把 GetIPIntel 文件夹丢到 usr/plugins 文件夹下面就行。...

GetIPIntel 反欺诈服务

没人知道在网络上和你聊天的是一个人还是一条狗。网络的匿名性给网络欺诈带来了很大方便。前几年,有几位学生站长联盟里的站长邮件地址泄露,有好事者就挂上 Go_Agent 用他们的常用网名和邮件地址辱骂联盟里其它博客的博主,闹得鸡飞狗跳。 人人都会开的 Akismet 明显没起到什么作用,事后屏蔽 IP 也起不到什么作用(那个捣乱的人都是打一枪就跑)。而当时流行的一些反欺诈服务,比如 MaxMind,都要高额的使用费,不是普通站长承担得起的。 但现在,时代不同了!GetIPIntel 是一位机器学习和网络安全方向的美国研究生的项目。它使用机器学习技术,综合考虑一个 IP 的各项数据,从而判断来自某个 IP 的访客是不是开启了 VPN,TOR 一类代理。 这个服务不需要你付任何费用(但接受捐赠),甚至不需要手动注册。你只需要在请求他们的 API 时带上你的邮件地址,...