一、Telnet 是什么
Telnet(Teletype Network,远程终端协议),是应用层协议,基于TCP,默认端口 23。
它的作用是:远程登录一台主机,像直接坐在服务器控制台一样操作主机。
Telnet 是早期互联网最主流的远程管理协议,诞生时间很早,设计之初互联网环境比较可信,没有任何加密机制。现在生产环境基本已经被SSH全面替代,学习它主要是理解历史协议、对比SSH,同时排查网络连通性。
二、Telnet 工作原理
Telnet 采用客户端/服务端模型:
- 服务端:在目标主机上运行 Telnet 服务,持续监听23端口;
- 客户端:本地打开Telnet客户端,主动发起TCP连接,连接服务器23端口;
- TCP连接建立成功后,双方建立Telnet会话;
- 客户端本地键盘输入的所有字符,通过TCP报文明文发送给服务端;服务端执行命令,将命令执行结果明文回传给客户端;
- 会话结束后关闭TCP连接。
核心特点:所有数据明文传输,包括账号、密码、命令、返回结果,网络抓包可以直接看到全部内容。
三、NVT(网络虚拟终端)
Telnet定义了 NVT(Network Virtual Terminal,网络虚拟终端),这是Telnet的核心设计。
不同操作系统终端格式、换行符、控制字符不一样。NVT做了一层统一抽象:
- 客户端本地终端 → 转换成标准NVT格式,发给服务器;
- 服务器收到NVT数据 → 转换成本机终端格式处理;
- 返回数据同样做反向转换。
作用:屏蔽两端操作系统终端差异,让不同系统之间可以远程交互。
Telnet还内置了协商机制:客户端和服务端可以协商一些选项,比如是否开启回显、是否使用行模式等。
四、Telnet 简单交互流程
- 客户端发起TCP连接,连接服务器23端口;
- 双方协商Telnet选项(终端类型、回显等);
- 服务器返回登录提示;
- 客户端输入用户名、密码,明文发送;
- 认证成功,进入远程终端,可以输入操作系统命令;
- 服务器执行命令,返回结果;
- 输入退出命令,断开TCP连接,会话结束。
五、Telnet 的用途
1. 历史用途
远程登录服务器、网络设备(交换机、路由器)进行配置管理,当年运维标配。
2. 现在的主要用途
现代几乎不会用Telnet登录主机,但是Telnet客户端还经常用来测试端口连通性
telnet 192.168.1.100 80
这条命令不是去建立Telnet会话,只是尝试建立TCP连接,用来快速判断目标IP的端口是否开放。
注意:端口连通测试只是Telnet客户端的附带能力,并不是Telnet协议本身的功能。
六、Telnet 致命缺点
- 明文传输:账号密码裸奔,中间人抓包直接窃取凭证,安全风险极高;
- 本身没有身份校验的强机制;
- 容易遭受中间人攻击;
- 防火墙一般会封禁23端口。
结论:禁止在公网使用Telnet做远程管理。
七、Telnet vs SSH 对比表
| 协议 | 端口 | 加密 | 认证方式 | 安全性 | 当前生产环境推荐 |
|---|---|---|---|---|---|
| Telnet | 23 | ❌ 明文 | 账号密码 | 极低 | 不推荐,仅用于内网测试端口 |
| SSH | 22 | ✅ 全程加密 | 密码/密钥认证 | 高 | ✅ 远程管理首选 |
八、小结
- Telnet 应用层TCP协议,默认23端口,用于远程终端登录;
- NVT虚拟终端用来屏蔽不同操作系统终端差异;
- 最大缺陷:全部通信明文传输,这也是被SSH淘汰的根本原因;
- 现在很少用来远程登录,但Telnet客户端常用来测试TCP端口连通性。
思考题:既然Telnet不安全,为什么很多网络设备还保留Telnet服务?
0 条笔记