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 命令的语法吗? 唯一的强制参数是主机名。 对于这个测试,我们将使用 Weather Underground telnet 服务。 该命令应如下所示。 请注意,我们为此 telnet 主机使用端口号 3000,而不是默认的 23。
让我们连接到公共 telnet 服务器之一:
telnet rainmaker.wunderground.com 3000
连接到远程主机后,您可以使用终端上允许的任何命令。 那有什么不同呢? 好吧,在这种情况下,您使用的命令将在远程主机上执行,而不是在您的本地机器上。 这使您可以访问机器,即使您实际上不在其位置。
当我们希望从远程主机注销时,我们使用以下命令:
telnet close
一个有趣的小 Telnet 服务器
服务器可以决定在 telnet 终端上显示它想要的任何内容。 想看电影吗? 这个 telnet 服务器已经运行了几十年,并且有一部 19 分钟的 ASCII 星球大战电影!
telnet towel.blinkenlights.nl
这位特定的主持人播放 19 分钟长的 ASCII 动画版《星球大战:第四集》。 看看上面的截图。 它显示了 21 世纪福克斯徽标转换为 ASCII 作为 20 世纪文本! 我们可以保持屏幕打开来欣赏电影!
最后…
虽然 telnet 协议是在 1973 年很久以前开发的,但即使在现在,它仍然保留了它在通信网络中的相关性。 Linux 中的 telnet 命令允许我们使用该协议轻松连接远程主机。
通过本教程,我们希望您能够了解 Linux 中 telnet 命令的基础知识。 这个命令的应用比我们在这里讨论的要大得多,你可以通过掌握这些基础知识来实现。 如需任何进一步的帮助,请始终获取可在 Linux 中使用 man 命令访问的手册页的帮助。