使用 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 黑名单,列出了使用端口扫描工具扫描 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.sh cd /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 重定向,这样操作免除了复杂的配置。用户只需要在装上插件时把文件管理应用拉白名单,...

一次 Linux 内存泄漏的排查 的插图

一次 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....

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 2 pip3 install requests # Python 3 程序运行示例如下: lantian-macbook:...

Rummy 拉米纸牌记牌程序 的插图

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 共同使用 的插图

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 隧道 我们需要借助一个第三方小程序,它可以把 Hurricane Electric 的隧道转换为 Tun/Tap 的隧道(相当于 Windows 下 OpenVPN 的那个网络适配器)...

启用 Bash 的彩色显示 的插图

启用 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 ``` 就可以看到彩色的命令行了。...

解决 OpenSSH 登录缓慢的方法

今天连接 Azure 中国版虚拟机时发现登录反应非常慢,在网络环境良好的情况下要等上十几秒才出现输入密码的提示。 经过 Google 查询,发现是 DNS 反向解析的问题。 OpenSSH 会在你登录时把你的 IP 拿去做反向解析,从而判断你的 IP 在不在系统的黑名单内。但是中国电信不对民用网络的 IP 做反向解析,导致 OpenSSH 要等待解析结果直到超时,然后才建立连接。 解决方法就是把反向解析关掉就行。 sudo nano /etc/ssh/sshd_config # 在文件末尾加上「UseDNS no」,关闭文件 sudo service ssh restart 如果这样设置后还是连接缓慢,可以尝试如下设置: sudo nano /etc/ssh/sshd_config # 在文件末尾加上「GSSAPIAuthentication no」,关闭文件 sudo service ssh restart 如此设置之后,SSH 就可以在2秒内连通,相比之前十几秒的时间相比,速度大有改观。...