Linux telnet 命令

17 Mar 2025 | 6 分钟阅读

Telnet 简介

在 Linux 中,telnet 命令用于在 TCP/IP 网络上与另一台系统创建远程连接。它允许我们通过终端管理其他系统。我们可以运行一个程序来进行管理。

telnet 用于通过 TELNET 协议与另一个主机进行协商。如果 telnet 命令在没有主机参数的情况下调用,它将进入命令模式,由其提示符表示。在此模式下,它接受并运行如下列表中所示的命令。如果它带有参数调用,它将执行带有这些参数的 open 命令。

它使用 TELNET 协议。然而,该协议存在一些安全缺陷,但由于其简单性,它是最常用的网络协议之一。它不是一个安全的协议,因为它以未加密的形式传输数据。通常,Linux 用户更喜欢 ssh 而不是 telnet,因为 ssh 以加密形式传输数据。这个工具类似于 Windows 中的远程桌面功能。telnet 的语法如下:

Telnet 选项

选项如下:

  • -7: 在输出和输入时剥离第 8 位。默认情况下,telnet 是 8 位干净的,但除非强制,否则不传输选项,即 TELNET BINARY。
  • -8: 运行 8 位数据路径。它尝试在输出和输入时使用选项,即 TELNET BINARY,进行通信。
  • -E: 阻止将某个字符识别为转义字符。
  • -F: 此选项允许将本地凭据发送到远程系统,例如在使用 Kerberos V5 身份验证时已发送到本地环境的凭据。
  • -K: 它不指定远程系统的自动登录。
  • -L: 在输出时,它指定 8 位数据路径。它会导致在输出时传输选项,即 BINARY。
  • -X atype: 它禁用 atype 身份验证类型。
  • -a: 它尝试自动登录。如果远程系统支持,它通过 ENVIRON 选项的 USER 变量传输用户名。
  • -b hostalias: 它使用 bind(2) 将本地套接字绑定到别名地址或比 connect(2) 自然选择的接口地址更进一步的地址。这在连接到使用 IP 地址进行服务器重新配置的服务时可能很有用,并且不希望进行身份验证。
  • -c: 它禁用读取用户的 .telnetrc 文件。
  • -d: 它将起始调试开关值设置为 TRUE。
  • -e escapechar: 它将 telnet 的起始转义字符设置为 escapechar。如果 escapechar 缺失,将没有转义字符。
  • -f: 此选项允许将本地凭据发送到远程系统,前提是使用了 Kerberos V5 身份验证。
  • -k realm: 此选项声称,如果使用 Kerberos 身份验证,telnet 会为远程主机获取该领域内的票据,而不是远程主机所在领域的票据。
  • -I user: 如果远程系统在连接到远程系统时接受 ENVIRON 选项,则由于 USER 变量的值,用户将被传输到远程系统。此选项指示 -a 标志。此外,它也可以与 open 命令一起使用。
  • -n tracefile: 此选项用于打开 tracefile 以记录跟踪信息。
  • -r: 它指定用户界面与 rlogin(1) 相同。除非使用 -e 标志更改,否则转义字符固定为波浪号。
  • -x: 它尽可能地打开数据流加密。
  • -port: 它代表端口号(应用程序地址)。如果未命名端口号,则默认端口为 telnet 端口。
  • -host: 它代表远程主机的官方名称、互联网地址或别名。

Telnet 命令

下面列出并解释了一些重要的 telnet 命令。只需要输入足够多的命令来唯一标识它。

  • auth argument[...]: 此命令可以操作由选项发送的详细信息,即 TELNET AUTHENTICATION。对于此命令,下面描述了一些有效的参数:
    • disable type: 它禁用指定的身份验证类型。我们可以使用命令 auth disable 来获取可用类型列表。
    • enable type: 它启用指定的身份验证类型。我们可以使用命令 auth enable 来获取可用类型列表。
    • status: 它指定各种身份验证类型的当前状态。
  • close: 它关闭 TELNET 会话并返回命令模式。
  • display argument[...]: 它显示一些或所有开关和设置值。
  • encrypt argument[...]: 此命令可以操作由选项发送的详细信息,即 TELNET ENCRYPT。下面描述了此命令的一些有效参数:
    • disable type [input|output]: 它禁用指定的加密类型。如果我们省略 output 和 input,则两者都将被禁用。我们可以使用命令 encrypt disable 来获取可用类型列表。
    • enable type [input|output]: 它启用指定的加密类型。如果我们省略 output 和 input,则两者都将被启用。我们可以使用命令 encrypt enable 来获取可用类型列表。
    • input: 它类似于命令 encrypt start input。
    • -input: 它类似于命令 encrypt stop input。
    • output: 它类似于命令 encrypt start output。
    • -output: 它类似于命令 encrypt stop output。
    • status: 它指定当前加密状态。

在 Linux (Ubuntu) 上安装 Telnet

在 Linux 上安装 telnet 是一个直接的过程。我们可以通过执行以下命令来安装它:

通过执行以下命令更新 Linux 系统:

上面的命令会提示输入用户密码。输入密码然后按 ENTER 键;它将启动一个守护进程,并需要一些时间来更新您的系统。

要安装 telnet,请执行以下命令:

上面的命令将安装 telnet 协议所需的包。请查看以下输出:

Linux telnet Command

要验证安装以及服务是否正在运行,请执行以下命令:

考虑下面的输出

Linux telnet Command

现在,我们必须在 ufw 防火墙中打开端口 23。执行以下命令:

上面的命令只能由 root 用户执行。如果您不是 root 用户,请在此命令前加上 sudo。请查看以下输出:

Linux telnet Command

下一步是重新加载防火墙以应用更改。要重新加载防火墙,请执行以下命令:

现在,我们已成功在我们的机器上安装了 telnet。

启动 Telnet Shell

可以通过执行 telnet 命令来启动交互式 shell,如下所示:

此 shell 允许我们执行一些 telnet 特有的命令。它看起来会像下面的截图:

Linux telnet Command

该 shell 提供各种命令来创建远程连接。我们可以通过执行 help 命令来列出所有命令,输入 h 执行 help 命令。请查看以下输出:

Linux telnet Command

从上面的 shell 截图可以看出,所有命令及其用法都已列出。其中有许多命令行实用程序,例如 close、logout、display、mode、open、quit、send 等。

如何在 Linux 中使用 telnet 命令连接?

使用 telnet 命令在两台系统之间创建连接是一个简单的过程,执行 telnet 命令后跟主机名。

例如,我们正在将我们的系统连接到 localhost。执行以下命令:

上面的命令将要求输入用户名和密码,请输入凭据以继续。请查看以下输出:

Linux telnet Command

连接后,我们可以像以前一样执行命令。唯一的区别是现在该机器被视为远程机器。

要退出 telnet 命令,请执行 logout 命令。

考虑以下输出:

Linux telnet Command

现在我们已成功从远程连接注销。


下一个主题SSH Linux