了解 Linux 中的 telnet 命令

Linux 中的 telnet 命令是 SSH 成为主流之前使用的协议。 Telnet 易于连接和使用,不安全的协议,因为所有数据都以明文形式传输。 但是对于一些快速的通信,还是可以使用telnet的。 另一方面,当您需要以安全方式连接到另一台计算机的外壳时,会使用 SSH。

Linux 中的 telnet 命令代表“网络终端”。 它可以帮助您连接到 telnet 服务器。 使用 telnet 命令,您可以使用 TCP 协议通过远程端口与远程服务器建立客户端-服务器连接。

Linux telnet 命令的基础知识

Linux 中 telnet 命令的语法是:

telnet [-468EKLadr] [-Xa authtype] [-b hostalias] [-e escapechar] [-l user] [-n tracefile] [  host [port] ]  

乍一看,telnet 命令的语法似乎令人困惑和复杂。 因此,让我们将这一长段代码分解成更小的部分以便于理解。

第一个参数指定我们希望建立连接的地址属性。 在这里,您可以使用的一些标签是:

标签 功能
-4 用于强制地址的 IPv4 解析
-6 用于强制地址的 IPv6 解析
-8 用于请求输入和输出的 8 位操作
-E 用于将转义字符设置为空,从而禁用转义字符功能
-K 用于指定远程主机不自动登录
-L 用于指定输出的 8 位数据路径

第二个参数指定连接到远程主机时使用的身份验证类型。 这里最常用的标签是:

标签 功能
-一个 尝试自动登录操作
*空字段* 将该字段留空将禁用 authtype 身份验证

-l 下一个参数中的标记发送“用户”作为登录远程服务器的用户。 这意味着 -一个 我们之前讨论过的标签,也可以与 打开 命令。 现在我们来到 -n 标签。 此标记打开跟踪文件以记录跟踪信息。

最后一个参数指定主机的名称([host]) 我们希望联系的端口号 ([port]) 我们要用于连接的端口。

什么是 Telnet 线路模式?

一旦我们打开一个连接,telnet 将尝试启用 telnet 线路模式。 如果成功启用 telnet 线路模式,则在本地系统上进行字符处理,而远程系统具有完全控制权。 远程主机将转发信息以执行操作,例如何时禁用输入编辑或字符回显。

当远程系统中的任何特殊字符发生更改时,它会被复制到本地系统。 如果失败,telnet 将恢复为两种输入模式之一:“一次字符”或“逐行旧”,具体取决于远程系统支持的模式。

“一次一个字符”模式将输入的大部分文本立即发送到远程主机,以便对其进行处理。 然而,“旧的逐行”模式在本地回显所有文本,通常只有完整的行被中继到远程系统。

在 Linux 中使用 Telnet 命令连接到远程主机

现在我们已经了解了 telnet 命令的基础知识,我们可以开始使用它了。 第一步是在您的系统上安装 telnet。

注意:本教程的这一部分是使用以下规范完成的:

  • 安装了 Ubuntu 18.04 的服务器。
  • 具有 Sudo 权限的非 root 用户。

Ubuntu 18.04 默认存储库带有 telnet 包。 因此,我们不需要下载任何东西。 通过在终端中输入以下内容可以轻松安装 telnet 软件包:

sudo apt install telnet 

系统可能会提示您输入用户密码以进行身份​​验证。 如果您得到与此类似的输出,则说明您的 telnet 软件包现已安装,并且默认情况下它正在侦听端口 23。

现在,让我们连接到远程主机。 还记得 Linux 中 telnet 命令的语法吗? 唯一的强制参数是主机名。 对于这个测试,我们将使用 Wea​​ther Underground telnet 服务。 该命令应如下所示。 请注意,我们为此 telnet 主机使用端口号 3000,而不是默认的 23。

让我们连接到公共 telnet 服务器之一:

telnet rainmaker.wunderground.com 3000 
Telnet 连接到 Rainmaker

连接到远程主机后,您可以使用终端上允许的任何命令。 那有什么不同呢? 好吧,在这种情况下,您使用的命令将在远程主机上执行,而不是在您的本地机器上。 这使您可以访问机器,即使您实际上不在其位置。

当我们希望从远程主机注销时,我们使用以下命令:

telnet close 

一个有趣的小 Telnet 服务器

服务器可以决定在 telnet 终端上显示它想要的任何内容。 想看电影吗? 这个 telnet 服务器已经运行了几十年,并且有一部 19 分钟的 ASCII 星球大战电影!

telnet towel.blinkenlights.nl 
Telnet 闪烁灯

这位特定的主持人播放 19 分钟长的 ASCII 动画版《星球大战:第四集》。 看看上面的截图。 它显示了 21 世纪福克斯徽标转换为 ASCII 作为 20 世纪文本! 我们可以保持屏幕打开来欣赏电影!

最后…

虽然 telnet 协议是在 1973 年很久以前开发的,但即使在现在,它仍然保留了它在通信网络中的相关性。 Linux 中的 telnet 命令允许我们使用该协议轻松连接远程主机。

通过本教程,我们希望您能够了解 Linux 中 telnet 命令的基础知识。 这个命令的应用比我们在这里讨论的要大得多,你可以通过掌握这些基础知识来实现​​。 如需任何进一步的帮助,请始终获取可在 Linux 中使用 man 命令访问的手册页的帮助。