Lan Tian @ Blog

树莓派 3B 折腾笔记:硬件看门狗

在计算机中,“看门狗”指的是一种硬件计时器,用于在计算机失去响应(死机)的时候重启计算机。计算机的系统上要运行一个程序不断和看门狗硬件通信。当通信中断经过一段预设的时间后,看门狗就会通过发送 RESET 信号或者切断再接通电源等方式强制重启,保证计算机上运行的服务不长时间中断。 在折腾树莓派的过程中,我也曾好几次让树莓派失去响应,结果不得不人工开关电源来重启。通过开启树莓派上的硬件看门狗功能,就可以减少这种情况的出现。 加载驱动 由于 Linux “万物皆文件”的特点,可以通过 ls 命令直接查看看门狗驱动的状态: 1ls /dev/watchdog 如果有这个文件,可以直接跳到下一部分。如果没有,就要根据树莓派版本加载驱动: 树莓派 1代的驱动名为:bcm2708_wdog 树莓派 2代的驱动名为:bcm2709_wdog 树莓派 3代的驱动名为:...

解决树莓派 HW CSum Failure 问题

今天登录上树莓派,习惯性 df 查看磁盘空间,发现树莓派 TF 卡上的空间所剩无几。最开始我以为我设置错误,把要挂机下载的文件下载到了 TF 卡里而不是移动硬盘里。结果排查下来,/var/log 下的日志文件居然占据了整整 18G 的空间。查看了一下日志,基本上都是类似如下的报错: 12345678910111213141516171819202122232425262728293031323334353637383940414243Jan 25 22:51:15 lantian-rpi3 kernel: [ 22.143274] eth0: hw csum failureJan 25 22:51:15 lantian-rpi3 kernel: [ 22.143281] CPU: 0 PID: 1075 Comm: vncagent Not tainted 4.9....

让 ASF 帮你在 Steam 中挂“贪玩蓝月”

最近贪玩蓝月因为其洗脑的广告而流行了起来,也出现了许多通过在 Steam 中添加自定义程序后重命名为“贪玩蓝月”,达到显示自己在玩贪玩蓝月效果的教程。不过这么做需要把那个自定义程序一直开着,有些时候还是比较麻烦的。 ASF(ArchiSteamFarm)则是一个模拟用户玩游戏,从而刷 Steam 交易卡掉落的程序。因为它能模拟用户玩游戏,自然也能模拟玩“贪玩蓝月”,在自己电脑上什么都不用设置的情况下达到如图效果: 实现这个效果,在你运行 ASF 的主机上修改 ASF 的配置即可。打开 config/[BOT 名称].json,找到下面三行并修改成对应的参数: "CustomGamePlayedWhileFarming": "贪玩蓝月", "CustomGamePlayedWhileIdle": "贪玩蓝月",...

树莓派 3B 折腾笔记:硬件随机数发生器

随机数在计算机中有着十分重要的应用,例如常用的 SSL 加密算法就非常依赖随机数。如果随机数不够随机,就很有可能被攻击者猜到,相应的加密验证体系也就土崩瓦解。但是由于计算机说零是零、说一是一的特点,它没有办法产生真正的随机数,只能通过复杂的算法去尽可能模拟随机数。 在 Linux 系统上,由于 Linux “万物皆文件”的特点,可以从 /dev/random 读取到由 Linux 内核综合大量数据生成的随机数。但是因为 Linux 基于“安全第一”的原则综合了大量数据,随机数的产生速度很慢。用 rng-tools 软件包中的 rngtest 工具就可以看到: 1234567891011121314151617lantian@lantian-rpi3:~ $ cat /dev/random | rngtest -c 1000rngtest 2-unofficial-mt....

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

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

树莓派 3B 折腾笔记

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

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

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

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

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

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

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

一次 Linux 内存泄漏的排查

起因 我最近在用 PHP 写一套自己的 VPS 监控系统,包括 VPS 端和显示端。今天下午 3 点,我给监控系统加上了监测 VPS 上服务的运行情况的功能。由于我的 VPS 统一使用 Debian 8 系统,我使用了 service --status-all 作为获取服务运行情况的方式。在测试正常后,我去干其它事了。 晚上 9 点多,我看到了 NodeQuery 于 7 点给我发的报警邮件,提示我的某台 VPS 内存占用过高。 我打开监控系统一看,这台 VPS 的内存占用达到了 400M / 500M。不仅如此,另一台 VPS 也内存暴涨,达到了 600M / 1G,但因为总内存大没有触发报警。 问题是,这两台 VPS 都只安装了 SS 和锐速,怎么可能占用这么大的内存?我登上其中一台,用 ps -aux 查看进程列表,却发现没有任何进程占用了这么大的内存。...