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

然而,回答中给出的 Demo 已经失效,telnet nyancat.dakko.us会返回一个Connection refused错误。不过值得庆幸的是,这个项目的官方网站Nyan Cat Telnet Server 和GitHub Repo 都还可以正常访问,因此可以尝试重新把它搭起来。不用着急,这个过程并不复杂,请按照以下方法操作即可。
下载编译
在命令行执行:1
2
3
4git clone https://github.com/klange/nyancat.git
cd nyancat
make
cp src/nyancat /usr/bin #or make install
这时,通过nyancat或nyancat -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
14service 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
}
其中instances和per_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!!查看。