插图

树莓派 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 方案或多或少都有一些问题。之前我拿来 Docker 组网的 ZeroTier One VPN 倒是能很好的解决这个问题。有中心管理面板,配置简单;跨境使用目前没有问题;官方甚至提供了详细的教程。准备ZeroTier One 的注册安装和加入网络,...
插图

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

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

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

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

一次 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 查看进程列表,却发现没有任何进程占用了这么大的内存。锐速背锅?我第一时间怀疑的是锐速。众所周知,锐速官方关闭了新用户的购买和下载安装通道,因此我们只能使用破解版的锐速。/serverspeeder/bin/serverSpeeder.sh stop 关闭锐速后,...

Bilibili 弹幕过滤工具

随着 Bilibili 用户的增多,不少小学生也进入了 B 站,并且发布了大量不合弹幕礼仪的弹幕,对其他用户观看视频造成了极大的影响。不少用户甚至因此彻底关闭弹幕,但不看弹幕用什么 B 站?我自己用 Python 3 写了个小程序以过滤掉小学生弹幕(同时这个程序也是最近编程课 Python 的练手)。程序可以在 https://github.com/xddxdd/bilibili-dmshield 看到。可以通过将 comment.bilibili.com 的 IP 通过 hosts 文件指向 127.0.0.1,或者通过 FoxyProxy 或者 SwitchyOmega 等插件将 comment.bilibili.com 的代理指向程序的代理端口,来使用过滤功能。程序功能如下:1. 顶端底端弹幕过滤:只保留科普君(短时间发送多条顶端底端弹幕)和字幕君(整个视频中发送多条顶端底端弹幕),其它全部重设为滚动弹幕。2. 智能关键词过滤:对于某些关键词(如金坷垃),仅当它在弹幕中大量出现时才会放心,不影响与这些关键词本身相关的视频观看。3. 长弹幕截断:...

Bilibili 底端弹幕转 LRC 工具

Bilibili 上从来不乏各路大神的作品,包括各类原创音乐、翻唱,还有带感的鬼畜。有时我们想把它们保存到一些能放音乐 + 歌词,但不能放视频的设备上(比如某些 MP3),或者把它们作为 BGM 在后台播放并在桌面上显示歌词。问题是,许多优秀的作品是无法在主流音乐软件里找到的,即使某些作品能在音乐软件里找到(例如传说和 B 站有一腿的网易云音乐),某些作品一时也没有歌词可用(尤其是新作品)。但是,当你打开 B 站的弹幕,有许多野生字幕君已经做好了底端弹幕。我们只需要将这些弹幕的时间轴和内容提取出来,就可以快速生成歌词文件(如 LRC)了。我用 Python 写了一个小程序来帮我干这事。这个程序可以在 https://github.com/xddxdd/bilibili-danmaku2lrc 下载到。要注意的是,这个小程序依赖 Python Requests 模块,需要先输入以下代码安装:pip install requests # Python 2pip3 install requests # Python 3程序运行示例如下:lantian-macbook:...
插图

Rummy 拉米纸牌记牌程序

英语课上,外教给我们介绍了 Rummy 这种纸牌游戏。这种纸牌游戏没有官方规则,因此在民间有多个变种。外教给我们介绍的这种规则如下:游戏需要至少一副扑克牌,取决于人数,去掉所有的大小王。开局时,每人发到 7 张扑克牌。发牌结束后,将牌堆顶的一张牌翻开放在一边。每位玩家行动时,需要如下操作:1. 选择从暗牌堆中拿最顶上的一张牌,或者从一边的明牌堆中取出任意数量的牌。当你从明牌堆中取牌,你必须在本回合内按照 2 所述条件使用掉你取到的最下面一张牌。(不能留在手里,不能弃掉)2. 当你手里的牌符合一下条件,可以将它们放置在你的桌面上:2.1. 有至少 3 张同花的牌组成顺子,例如草花 A23,黑桃 10JQ,红桃 QKA。(KA2 不算)2.2. 有 3 张或 4 张数字相同但花色两两不同的牌。例如,黑桃、红桃、草花 3 是符合规定的,而黑桃、黑桃、红桃 3 不符合规定。后一种情况仅可能在使用多副扑克牌时出现。2.3. 有一张牌,可以接续如 2.1 和 2....
插图

OpenVZ 配置 Hurricane Electric IPv6 隧道,开启整个地址池并与原生 IPv6 共同使用

AlphaRacks 是一个物美价廉的主机商,1CPU、512M 内存、10G 硬盘的 VPS 只要 9.9 美元 / 年。但是这家主机商在 IPv6 地址上比较抠,需要用户说明用 IPv6 的理由,据说最多给 20 个?但是不一定给满 20 个,比如我告诉主机商要用 IPv6 地址给仅支持 IPv6 的用户提供服务,主机商回复:我们已经为你的 VPS 增加了 1 个 IPv6 地址。一个 IPv6 自然是不够我折腾的。好在美国 Hurricane Electric 公司提供 IPv6 隧道服务,为每个用户提供 5 个隧道,每个隧道有 1 个 / 64 地址池,并可以一键开通 1 个 / 48 地址池。如此良心的服务,要在 OpenVZ 的 VPS 上使用却还要费一番周折。因为 OpenVZ 的内核版本往往是 2.6.32,2.6.32 的老内核不原生支持隧道功能,而支持的新版 3.10 的内核刚刚发布,很多主机商没有更新。在 OpenVZ 上开启 HE 隧道我们需要借助一个第三方小程序,...
插图

启用 Bash 的彩色显示

Linux 默认的 Bash 命令行总是黑底白字,有些单调。但我们可以通过加几行命令,让 Bash 以彩色显示信息,不仅美观,而且可以突出重点内容。编辑你的 Home 目录下的.profile 文件:nano ~/.profile```在文件末尾加上:export LS_OPTIONS='--color=auto'eval "`dircolors`"alias ls='ls $LS_OPTIONS'alias ll='ls $LS_OPTIONS -l'alias l='ls $LS_OPTIONS -lA'PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]@\[\033[01;36m\]\h\[\033[00m\]:[\[\033[01;34m\]\w\[\033[00m\]]\$ ' ```保存退出,然后重进 Bash 或者输入:source ~/.bashrc```就可以看到彩色的命令行了。...