Lan Tian @ Blog

树莓派 3B 折腾笔记:BT 下载与策略路由

这次就直接进入正题。(其实是不知道该拿什么开头)安装 Transmission 挂 PT作为一个可以自由连接各种传感器的小型电脑,树莓派的可玩性相当高。即使你不想在 GPIO 上接一大堆传感器(或者像我一样觉得另外的传感器暂时没什么用),你也可以利用它低功耗的特点,让它 24 小时运行,做一些不需要大量 CPU 运算,但是因为其它因素需要较长时间才能完成的任务,例如……挂机下载。我所在的大学有一个内网的 PT(Private Tracker)站。PT 站就是一个 BT 种子的发布网站,但是它在传统 BT 的基础上增加了用户管理功能,并且通过限制客户端种类、强制要求上传率等方式,解决了传统 BT 下各类客户端吸血(只下载不上传,例如迅雷)和种子很快失效(因为一段时间后就没人继续上传了)的问题...

树莓派 3B 折腾笔记

国庆放假期间我在某宝上买了一只树莓派 3B 和一堆传感器,准备搞一波事情。因为是国庆,所以各家店发货都有不同的延迟,导致我国庆长假后又过了好几天东西才到齐。先上张完成体的图片:我分了五家店买了这些东西:树莓派 3B(含外壳、风扇、散热片、电源套装)闪迪 32G TF卡树莓派传感器套装(支持树莓派的 3.3V 电平,总共 16 个)5 寸 800x480 触摸屏DS3231 时钟模块和 GPIO 针脚标记板(后买)树莓派本体最先到的是树莓派 3B 本体,以及配套的外壳风扇散热片等等。然而我买的 TF 卡还没到……所以这只树莓派暂时什么都干不了。不过我还是可以把外壳风扇等等先组装起来。然而我很快发现了问题:店家的外壳内支撑柱的位置不准...

CommentToMail 修改版

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

为 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 支持...

加入 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 段都是分配给内网使用的...

使用 ZeroTier One 建立自己的 IPv6 隧道

前言天朝绝大多数 ISP 均不为用户提供 IPv6 地址,除了教育网。但是教育网的 IPv6 很不稳定(可能和我的学校有关),而且一旦离开学校就没有 IPv6 了,很不爽。有一种方法是使用 HE.NET 的隧道服务。在 SixXS 关闭之后,他们是目前仅存的最大的 IPv6 隧道提供者,而且他们的服务完全免费。但是他们的服务并不适用于天朝的家庭网络环境,因为家庭网络普遍是动态 IP,并且部分运营商为了节省成本已经开始使用大内网,用户无法获取独立 IP,在同一内网就会产生冲突。好消息是,我有好几台 VPS,均由 VPS 提供商或者 HE.NET 的隧道服务提供了 IPv6。这意味着我可以使用 VPN 方案...

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

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

使用东北大学网络中心的 SSH 黑名单系统

东北大学网络中心在其网站上提供了一份 SSH 黑名单,列出了使用端口扫描工具扫描 SSH 端口的 IP 名单,貌似是由他们自己设立的蜜罐服务器检测统计的。同时,他们也提供了黑名单对应的 hosts.deny 文件的下载,允许用户使用 cron 一类的计划任务软件自动更新 SSH 黑名单列表并屏蔽这些扫描者(阻止它们登录)。不确定这套系统是什么时候推出的,但是它至少已经运行了两年了。另外,它对于这些 IP 的屏蔽时间貌似是最后一次发现的 60 天内。使用方法:在服务器上安装 cron,然后运行如下命令安装脚本:ldd `which sshd` | grep libwrap cd /usr/local/bin/ wget antivirus...

LT NoLitter:防止 Android 应用乱建文件夹的 Xposed 插件

Android 系统有着用户可直接操作的存储空间,用户可以很方便地管理自己的文件(相比 iOS 而言)。但是某些软件也会在存储空间根目录直接建立大量的文件夹,影响了用户的文件管理,并对强迫症人群造成了极大的威胁。于是我写了一个 Xposed 插件。插件 Hook 了 Android 的 File 类,当有程序尝试用 File 类读取或写入根目录的文件或文件夹,插件会检测这个文件或文件夹是否存在。如果存在,那么插件不做任何操作;如果不存在,那么插件就将操作重定向到 /Android/files 文件夹下。相比于 XInternalSD,这样操作的优点是可以对付某些不自律的应用。这些应用不使用 Android 系统函数获取存储路径...

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

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