telnet 是一个网络协议,也是一个基于该协议的命令行工具,它的核心作用可以概括为以下两大方面:

- 作为网络诊断和调试工具
- 作为远程登录工具(传统用途)
下面我们分别详细说明。
作为网络诊断和调试工具(现代最主要用途)
在当今的网络安全环境下,直接使用 telnet 进行远程登录被认为是不安全的,因为它所有数据(包括用户名和密码)都是明文传输的,它的主要角色已经转变为一个强大的网络排错工具。
telnet 命令可以让你手动验证客户端与服务器之间是否能建立TCP连接,以及该连接是否正常工作,这对于排查网络问题非常有帮助。
主要诊断功能:
a. 测试端口的连通性
这是 telnet 最常用、最核心的功能,你可以用它来检查你的电脑是否能成功连接到目标服务器的某个特定端口。

- 语法:
telnet <主机名或IP地址> <端口号> - 示例: 检查是否能访问百度服务器的 80 端口(HTTP服务)。
telnet www.baidu.com 80
- 成功连接时的表现:
Trying 182.61.200.7... Connected to www.baidu.com. Escape character is '^]'.如果看到
Connected to ...,就说明你的网络到目标主机的指定端口是通的,你可以手动输入 HTTP 请求来测试服务。 - 连接失败时的表现:
Connection timed out: 防火墙可能阻止了连接,或者目标主机不存在。Connection refused: 目标主机存在,但该端口上没有服务在监听,或者防火墙规则拒绝了你的连接请求。
b. 手动发送协议指令
一旦连接成功,你可以直接在 telnet 会话中输入特定协议的命令来与服务进行交互,这让你可以绕过客户端软件,直接测试服务器是否响应正确。
-
示例1: 测试 Web 服务 (HTTP) 连接到
www.baidu.com的 80 端口后,你可以手动发送一个 HTTP GET 请求:GET / HTTP/1.1 Host: www.baidu.com
输入两个回车后,你将收到百度服务器返回的 HTTP 响应头和网页源代码,从而验证 Web 服务是否正常。
(图片来源网络,侵删) -
示例2: 测试邮件服务 (SMTP) 连接到邮件服务器的 25 端口后,可以手动输入 SMTP 命令来测试邮件发送流程:
EHLO mydomain.com MAIL FROM:<sender@example.com> RCPT TO:<recipient@example.com> DATA (输入邮件内容) . QUIT
-
示例3: 测试远程登录服务 (Telnet/SSH) 虽然不推荐,但你可以连接到 23 号端口来测试传统的 Telnet 服务是否在运行,对于 SSH,你会连接到 22 号端口,但无法发送 SSH 协议指令,因为它通常是加密的。
作为远程登录工具(传统用途)
这是 telnet 最初的、也是最直接的作用。
- 工作原理:
telnet客户端通过 TCP 连接到远程主机的 23 号端口,建立一个远程终端会话,你可以在本地输入的命令会发送到远程服务器执行,并将结果返回显示在你的屏幕上。 - 语法:
telnet <主机名或IP地址> - 示例:
telnet 192.168.1.100
为什么现在不推荐用作远程登录?
安全性极差:这是 telnet 被淘汰的根本原因。
- 明文传输:你在
telnet中输入的一切,包括用户名、密码、所有命令和服务器返回的数据,都是以未加密的明文形式在网络中传输的。 - 易被窃听:任何在同一个网络路径上的攻击者(使用 Wireshark 等抓包工具)都可以轻易地截获并读取你的所有信息,相当于把家门钥匙公开给了所有人。
telnet 已经被更安全的协议所取代,最主要的就是 SSH (Secure Shell),SSH 对所有数据都进行了加密,提供了强大的安全保障,是目前进行远程服务器管理的标准工具。
总结与对比
| 特性 | Telnet | SSH (Secure Shell) |
|---|---|---|
| 主要用途 | 网络诊断、调试、远程登录 | 安全的远程登录、文件传输、端口转发 |
| 默认端口 | 23 | 22 |
| 安全性 | 不安全,所有数据明文传输 | 安全,所有数据加密传输 |
| 协议类型 | 明文协议 | 加密协议 |
| 现代角色 | 主要作为网络排错工具 | 作为系统管理和远程访问的标准工具 |
你可以这样理解 telnet 的作用:
- 如果你是一个普通用户:你可能几乎永远不会用它来登录远程服务器,你应该始终使用 SSH (
PuTTY,Xshell, 或命令行的ssh命令)。 - 如果你是网络管理员或开发者:
telnet是你工具箱里一个非常实用的“瑞士军刀”,当你需要快速判断一个服务(如 Web、数据库、邮件)的某个端口是否可达时,telnet是最快、最简单的方法之一,它帮你隔离网络连接问题,而不是应用本身的问题。
