- Telnet 允许通过文本终端进行远程管理,并且仍然可用于连接测试,但它缺乏加密,这带来了重大的安全风险。
- SSH 是现代且安全的替代品,它增强了数据保护并提供强大的身份验证,在大多数专业和云环境中取代了 Telnet。
- 如今,Telnet 只能在高度受控的环境、内部网络或较旧的设备上使用;只要有可能,就建议采用现代替代品。
你是否曾好奇系统管理员如何通过网络访问远程计算机,并像坐在它们面前一样管理任务?这正是 Telnet 的用途所在。Telnet 是一种经典的协议,几十年来一直作为 TCP/IP 连接中计算机之间的桥梁。尽管如今有了 SSH 等更安全的替代方案,但 Telnet 在特定情况下仍然非常有用,对于每一位网络专业人员或感兴趣的用户来说,Telnet 都是一个值得熟知的术语。
本文将深入探讨Telnet 的世界:从它的起源和工作原理,到它的使用方法、安全风险、与 SSH 的区别、实际示例、在现代系统中启用它的方法,以及为什么尽管存在种种问题,它仍然是技术领域的一个重要话题。如果您正在寻找清晰、全面且简明的 Telnet 解释,以便彻底了解它,那么您来对地方了。
Telnet 到底是什么?基本协议的起源和历史
Telnet 是一种网络协议,它于 20 世纪 60 年代末期出现,旨在利用 TCP/IP 连接将远程终端连接到服务器或计算机系统。它源自“电传打字机网络”或“电信网络”一词,其主要功能是允许用户和管理员访问远程计算机、管理资源、排除故障或执行命令,就像他们身处远程设备旁一样。
该协议在互联网扩展和学术中心及商业环境采用网络的过程中发挥了关键作用,因为它提供了在 UNIX 系统和其他操作系统上开启远程会话的可能性,从而促进了不受物理障碍的协同工作和管理。默认情况下,Telnet 通过 TCP 端口 23 使用,但如果需要,也可以将其配置为使用其他端口。
尽管 Telnet 的流行始于几十年前,但它至今仍是许多操作系统和网络环境中的标准功能,既可用于管理,也可用于某些诊断和连接任务。
Telnet 如何工作?技术原理和运作模式

Telnet 采用客户端-服务器架构:客户端是起点(您连接的机器),服务器是您想要远程访问的计算机或设备。
要建立这种通信,通信双方都必须启用 Telnet。具体步骤如下:
- 客户端向服务器发起访问请求,输入登录的用户名和密码。
- 服务器验证凭证,如果正确,则打开虚拟终端会话,允许用户使用文本命令进行交互。
- 从那里,您可以运行命令、浏览文件、监视进程或执行远程操作系统允许的任何任务。
Telnet 以文本模式运行,没有图形,并允许基本管理和远程故障排除。最初的优势包括资源消耗低、易于诊断和维护任务。
该协议提供不同的操作模式,以适应不同的通信需求:
- 默认模式(半双工): 用户在发送之前输入一整行文本;这是最基本的模式。
- 角色模式: 每个字符在输入时都会被发送,从而产生更多的流量,但对于某些应用程序来说实时很有用。
- 线路模式: 当行完成时发送输入的字符;在管理长命令时,这是很常见的。
除了这些模式之外,Telnet 还包含一系列客户端和服务器之间可协商的命令和选项,用于调整诸如字符回显、窗口大小、终端类型或禁用某些控件等行为。这为与不同的操作系统和设备配合使用提供了灵活性。
Telnet 现在用于什么?主要用途、优点和局限性
虽然 Telnet 已被安全远程管理所取代,但它对于以下任务仍然有用:
- 解决连接和网络问题: 测试端口是否开放或者服务是否正确响应,这对于系统管理员来说至关重要。
- 访问远程设备进行快速诊断: 尤其是在安全性不是很重要的环境中(例如内部网络或不支持 SSH 的旧设备)。
- 网络设备配置: 路由器、交换机和其他仍然允许 Telnet 访问的设备,主要在传统安装中。
- 连接到遗留系统或应用程序: 一些老牌企业系统、纯文本BBS、以及在线天气预报、经典游戏服务器等公共服务。
- 任务自动化和基本脚本: 可以使用 Telnet 脚本发送配置命令或执行重复测试。
Telnet 的优点包括简单、资源消耗低、易于测试网络服务,使其成为快速管理和故障排除任务的有用工具。但另一方面,它也有严重的缺陷:
- 不加密信息: 所有数据(包括密码和命令)均以明文形式传输。
- 缺乏高级身份验证: 任何有权访问网络的人都可以尝试拦截或操纵会话。
- 易受攻击和恶意软件攻击:开放的 Telnet 端口是漏洞利用和未经授权访问的目标。
由于这些原因,仅建议在完全安全的环境、隔离的网络或安全不是优先考虑的测试目的中使用。
Telnet 和安全:风险及其替代的原因
Telnet最大的弱点在于其安全性。客户端和服务器之间传输的所有信息都未加密,以所谓的“明文”形式传输。这意味着任何能够拦截网络流量的人——使用诸如Wireshark或tcpdump之类的工具——都可以读取会话期间传输的用户名、密码、命令和数据。
由于缺乏加密,Telnet 不适合在存在拦截风险的网络上进行任何远程访问,例如互联网或具有外部连接的公司环境。除了:
- 不提供端点身份验证 通信,使其容易受到中间人攻击。
- 多年来,人们发现了许多漏洞, 影响客户端和服务器的实现。
- 面向互联网的 Telnet 服务经常受到自动脚本的攻击,这些脚本试图在无需密码或使用弱凭据的情况下进行访问。
- 现代操作系统通常默认禁用 Telnet, 正是因为这些风险。
面对这些威胁,SSH(安全外壳)协议作为一种自然的应对措施和替代方案应运而生,它对所有通信进行加密并提供强大的身份验证和验证机制。
Telnet 与 SSH:主要区别以及何时使用
SSH 和 Telnet 的共同目标是实现对系统和终端的远程访问,但它们在直接影响安全性和功能的本质方面存在差异。
| 特点 | 远程登录 | SSH的 |
|---|---|---|
| 数据是否加密? | 没有 | 是的,强加密 |
| 默认端口 | 23(TCP) | 22(TCP) |
| 高级身份验证 | 没有 | 是(公钥、证书) |
| 文件传输 | 仅限外部协议 | 是(SCP、SFTP 集成) |
| Uso recomendado | 内部网络、遗留设备 | 所有类型的网络,尤其是互联网 |
| 跨平台兼容性 | 高 | 高 |
| 消耗资源 | 低 | 中等/高 |
简而言之,Telnet 可以在封闭和受信任的环境中有效(例如,与互联网断开连接的 LAN 或远程设备不支持 SSH 时),而对于涉及传输敏感数据或暴露于潜在危险网络的任何操作,SSH 始终是首选选项。此外,SSH 还包含其他功能,例如端口转发、安全隧道以及安全自动执行任务的能力。
Telnet 的实际用途和实际示例
除了理论之外,Telnet 仍然有一些值得了解的实际应用,无论是在系统测试还是偶尔的管理任务中。
- 检查远程服务器上的开放端口: 通常使用 Telnet 来测试 HTTP(端口 80)、HTTPS(443)或 SMTP(25)等服务是否正在特定计算机上监听。通常的命令是:
telnet ip_address_or_domain_port
- 如果端口打开,屏幕将为空白,您将能够输入命令,具体取决于服务。否则,将会发生连接错误。
- 访问基于文本的 BBS(公告板系统): 一些较旧的论坛、在线游戏服务或怀旧平台仍然允许通过 Telnet 访问,只是为了复古娱乐。
- 测试实用程序连接: 有一些有趣的例子,例如查看天气预报、在线下棋或观看电影的 ASCII 表示,使用如下命令:
telnet 毛巾.blinkenlights.nl 23
- 自动执行网络设备上的简单任务: 当 SSH 不可用时,某些路由器和交换机允许通过 Telnet 编写配置脚本。
但是,对于涉及敏感信息的任何任务,仍然建议迁移到 SSH,或者如果失败,则使用 VPN 隧道或其他额外的安全措施保护 Telnet 会话。
如何在 Windows、Linux 和 Mac 上启用和使用 Telnet
多年来,现代版本的操作系统由于存在风险而选择默认禁用 Telnet。但是您仍然可以在服务器和一般用户环境中仅通过几个步骤激活和使用该协议。
在窗户上
Windows 10、11 和较新的服务器版本中,Telnet 默认情况下不再启用。要启用它:
- 输入 控制面板 和访问 程序.
- 按下 打开或关闭Windows功能.
- 找到并勾选复选框 Telnet客户端,然后单击 接受.
从那时起,您可以打开命令提示符或 PowerShell ,并运行telnet命令来启动会话。例如:
telnet 服务器.remote.com 23
您还可以使用以下命令从命令行启用 Telnet:
Dism /Online /Enable-feature /FeatureName:TelnetClient
或者从 PowerShell:
安装-WindowsFeature-name Telnet-Client
在Linux上
大多数发行版都保留 Telnet 作为可安装包,尽管它不再预装。您可以使用发行版的包管理器来安装它,例如在 Ubuntu 中:
sudo apt 更新 sudo apt 安装 telnet
然后,打开终端并运行:
telnet ip_or_domain 端口
在Mac OS上
在较早的 Mac 系统中,Telnet 默认可用。但在 macOS High Sierra (10.13) 及更高版本中,Apple 移除了 Telnet 客户端。如果您需要使用 Telnet,可以:
- 从先前版本复制可执行文件。
- 从源代码编译 Telnet。
- 或者,如果您只需要执行连接测试,则使用外部应用程序。
此外,还可以使用网络实用程序扫描端口,这是对 Telnet 经典用法的补充。
Telnet 高级命令和选项
Telnet 提供了一系列基本和高级命令,允许您在客户端和服务器之间协商选项,从而可以轻松调整终端类型、窗口大小和回声管理等参数。
- 帮助 o ?:显示可用的命令。
- open :连接到指定端口上的主机或 IP。
- 退出:关闭当前会话。
- 设置/取消设置 :打开或关闭回声、控制静音、终端类型等功能。
对于底层协议,Telnet 协商以下选项:
- Echo (回声):控制输入字符的显示。
- 抑制前进:无需额外的信号来发送数据。
- 状态、窗口大小、终端类型、线路模式……:使会话适应远程设备或应用程序的不同参数。
有控制和子协商代码可以促进诸如管理环境变量、身份验证或扩展客户端和服务器允许的基本功能等任务。
Telnet 的关键限制和风险
目前使用 Telnet 存在明显的风险:
- 任何传输的数据(包括密码)都可能被有权访问网络的第三方捕获。
- 缺乏强身份验证: 如果您知道 IP 和端口,您可以随意尝试访问多次,有时不受限制。
- 容易被恶意软件或自动脚本利用: 有些机器人会搜索开放的 23 端口来尝试强制访问或安装后门。
- 它不适用于云环境、现代物联网设备或安全性是基本要求的关键服务。
出于所有这些原因,安全专家和领先组织建议尽可能禁用 Telnet 或将其限制在内部网络中,与互联网断开连接,并采用额外的物理访问控制。
现代 Telnet 替代方案
鉴于 Telnet 本身的不安全性,有几种被广泛采用的替代方案:
- SSH(安全外壳): 它是远程管理、安全连接和文件传输的终极选择。所有信息都经过加密,并且可以使用公钥进行验证。 SSH 还允许端口转发、加密隧道、安全自动化和文件传输(SCP/SFTP)。
- Mosh(手机外壳): 它非常适合不稳定的连接,即使您更改网络或暂时失去连接,它也能维持会话,非常适合移动管理。
- RDP(远程桌面协议): 更面向 Windows 环境中的图形管理;允许您通过图形界面查看和管理设备。
- VNC(虚拟网络计算): 远程访问图形界面,对于混合环境很有用,并且与 SSH 隧道结合使用时可以实现类似的安全性。
- VPN(虚拟专用网络): 创建安全通道的选项,这样您就可以使用 Telnet 或其他服务,而无需将数据暴露给第三方。虽然它不能消除 Telnet 的内部风险,但确实增加了一个重要的障碍。
选择哪种替代方案取决于具体情况,但只要安全性很重要,SSH 就是替代 Telnet 的首选解决方案。
Telnet 可能仍然有用或不可避免的情况
在某些情况下,Telnet 可能仍然是必要或有用的,但始终要在评估风险并采取补充措施之后:
- 无法访问 Internet 的内部或隔离网络: 实验室、测试环境或无法使用 SSH 的遗留系统。
- 遗留设备、工业硬件或旧设备: 其中仅支持 Telnet 进行配置或诊断。
- 使用简单工具进行基本脚本编写和自动化: 尤其是当风险受到控制并且基础设施不允许采用现代替代方案时。
无论何时使用 Telnet,建议限制访问、监控日志,并考虑使用加密隧道(例如 VPN)以最大限度地减少暴露。
Telnet 常见问题解答:常见问题解答
在其整个历史中,Telnet 引发了许多问题,特别是对于那些刚接触网络管理或希望运行快速测试的人而言。这里我们回答最常见的问题:
- Telnet 允许文件传输吗?
- 不直接。 Telnet 仅处理文本会话。要传输文件,您必须使用其他协议,例如 FTP、SCP(通过 SSH)或执行特定的脚本。
- 是否可以使用 Telnet 进行自动化或脚本编写?
- 是的 您可以创建打开 Telnet 会话、发送命令和处理响应的脚本。 但是,由于缺乏加密,因此不建议用于敏感任务。
- Telnet 是否支持多个用户同时使用?
- 是的 可以对同一服务器打开多个 Telnet 会话, 每个都有独立的认证。
- Telnet 对于物联网或云诊断有用吗?
- 仅在非常特殊的情况下且安全不是首要考虑因素时。现代环境优先使用加密协议来保护数据和设备。
- Telnet 可以加密您的通信吗?
- 不是原生的。 只有在 VPN 或安全隧道内使用时才能加密流量,但协议本身缺乏加密机制。
负责任且安全地使用 Telnet 的技巧
如果必须使用 Telnet,请遵循以下建议以最大限度地降低风险:
- 始终在受信任的网络上使用它,并且不要与互联网断开连接。
- 在不需要该服务的服务器和计算机上禁用该服务。
- 使用防火墙和 IP 限制加强访问。
- 定期监控访问日志以检测未经授权的尝试。
- 如果您暴露在不安全的网络中,请始终考虑迁移到 SSH 或使用 VPN。
- 避免不必要地打开端口并消除默认用户名或密码。
Telnet 的未来:继续使用它有意义吗?
尽管 Telnet 是网络和服务器管理的经典工具,但与现代且安全的替代方案相比,其过时已显而易见。除了在高度受控的环境中,Telnet 的使用越来越局限于偶尔的诊断、老旧设备或快速测试。大多数制造商、开发人员和云服务提供商都选择使用 SSH 和加密技术,使得 Telnet 沦为一种象征性的存在。
然而,了解 Telnet对于网络专业人士和技术爱好者来说仍然具有现实意义,因为它有助于了解远程管理的发展、终端访问的基础知识以及网络安全的历史挑战。
Telnet 代表了现代计算早期远程管理和连接的精髓。尽管它在安全性和功能性方面已被超越,但它仍然是了解远程访问如何发展、在没有保护的情况下传输敏感数据的危险以及采用 SSH 等强大协议的重要性的起点。从某种程度上来说,掌握 Telnet 就是掌握现代网络的历史和基础。