用 Telnet 观看 Nyancat 动画

前言

最近在知乎上看到一个关于 VPS 有趣的用途的问题,其中一个回答提到了可以搭建 Telnet 服务器,成功运行后别人用 Telnet 连接你的主机将会看到 Nyancat 动画。大致效果如图所示:

Nyanyanyanyanyanyanya!

然而,回答中给出的 Demo 已经失效,telnet nyancat.dakko.us 会返回一个 Connection refused 错误。不过值得庆幸的是,这个项目的官方网站 Nyan Cat Telnet ServerGitHub Repo 都还可以正常访问,因此可以尝试重新把它搭起来。不用着急,这个过程并不复杂,请按照以下方法操作即可。

下载编译

在命令行执行:

1
2
3
4
git clone https://github.com/klange/nyancat.git
cd nyancat
make
cp src/nyancat /usr/bin #or make install

这时,通过 nyancatnyancat -t 命令就可以查看效果。接下来把 Telnet 配置好就行了。

配置 Telnet

使用包管理工具安装 xinetd,例如

1
yum install xinetd

然后在 /etc/xinetd.d 目录下新建文件 nyancat,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
group = root
server = /usr/bin/nyancat
server_args = -t
log_on_failure += USERID
disable = no
instances = 10
per_source = 2
}

其中 instancesper_source 限制了总的连接数和单个 IP 的连接数。
接下来,重启 xinetd 服务:

1
systemctl restart xinetd

这时,你就可以通过 telnet localhost 查看是否能显示出画面。如果没有问题,配置防火墙开放 23 端口,就可以从公网访问了。试试用 Telnet 连接你的主机,效果是不是非常酷炫?
不过,笔者在实践中发现,开放 telnet 的 23 端口可能会产生大量异常流量。解决方法是修改 telnet 的端口号,编辑 /etc/services,找到 telnet,将 23 改为一个你喜欢的数字(比如 8080)。或者,可以在不需要使用时直接关闭这个服务,在 nyancat 中设置 disable: yes 即可。

更多

俗话说,有光的地方就有 Bad Apple!!。很久以前的一篇文章近期完成的数个游戏及应用中,就提到笔者成功使用 HTML 页面播放 Bad Apple!! 字符画。目前,笔者正在尝试搭建一个可以播放 Bad Apple!! 的 Telnet 服务器,敬请期待。


本文更新于 2019 年 2 月 14 日:
笔者通过魔改 Nyancat 的代码,成功地实现了可以播放 Bad Apple!! 的 Telnet 服务器。可以阅读文章用 Telnet 观看 Bad Apple!! 查看。