首页/网络/常用端口速查/23 telnet 明文远程登录
0-99 系统端口81 条

23 telnet 明文远程登录

最古老的远程登录协议(RFC 854);所有内容(含口令)明文传输,现仅用于设备调试与端口探测。

常用端口速查网络更新于 2026-10-13

telnet 是什么

telnet 是最早的远程登录协议(RFC 854/855):一条 TCP 连接上跑的是带内协商的字符协议,客户端与服务端用 IAC 选项字节互相约定回显、终端类型等参数。它没有任何加密,口令与命令全部明文。今天它的价值只剩两种:给尚未配置 SSH 的网络设备做初始化,以及用裸 TCP 会话手工验证应用层协议。

基本信息

服务telnet / telnetd
协议TCP
规范RFC 854 / RFC 855
适用平台Linux(telnet 客户端包)、Windows(需手动启用功能)、网络设备
安全等级禁止用于公网与管理面

典型使用场景

  • 设备初始化:新设备尚无 SSH 配置,先用 telnet 打开基础配置
  • 端口探测:手工确认 TCP 端口开放与应用层 banner
  • 协议教学:用裸会话观察 SMTP、HTTP 的请求响应格式
  • 排障:验证应用层是否可用,而不只是端口是否监听
  • 安全审计:在授权范围内抓包复现明文口令的风险

用 telnet 手工验证应用层

用 telnet 手工验证应用层
telnet mail.example.com 25     # 220 开头 = SMTP 就绪
EHLO example.com               # 250 开头 = 识别成功
QUIT
telnet example.com 80          # 请求行 + Host 头 + 空行结束
HEAD / HTTP/1.0
Host: example.com

典型场景与替代方式

场景说明更稳妥的替代
设备初始化新设备尚无 SSH,先用 telnet 打开基础配置带外管理网 + 源 ACL
端口探测确认 TCP 端口开放与 bannernc -vz 或 Test-NetConnection
HTTP 手工请求观察响应头与状态码curl -v
TLS 服务验证判断证书与握手是否正常openssl s_client

端口探测与加密替代

端口探测与加密替代
nc -vz -w 2 example.com 80
nc -vz -w 2 example.com 22
# Windows
Test-NetConnection example.com -Port 80
# TLS 服务不要用 telnet 判断
openssl s_client -connect example.com:443 -servername example.com </dev/null
telnet 会话内容可被任意中间节点抓取,包括设备口令;设备管理应使用 SSH 替代,确需保留时仅限带外管理网并加 ACL。
探测二进制协议时注意:telnet 客户端会对 IAC 转义字节(0xFF)做特殊处理,可能吞掉数据造成“连上却无响应”的假象;二进制或 TLS 协议改用 nc、openssl s_client 验证。
运维确需保留设备 telnet 时:限定独立管理 VLAN + 源 ACL + 登录审计,并规划向 SSH 迁移;Windows 端的 telnet 客户端默认未安装,需在“启用或关闭 Windows 功能”中手动勾选。
设备侧迁移路径:先在设备上启用 SSH 并逐条验证可用,再关闭 telnet 服务与 vty 上的明文传输方式,最后清理防火墙里针对 23 的放行规则,避免出现两者都可用的过渡窗口被长期保留。

易错点

  • telnet 会话内容可被任意中间节点抓取,包括设备口令
  • 把 telnet 当作端口测试工具时忽略一点:连接成功不等于服务正常,必须看应用层响应
  • 用 telnet 验证 TLS 端口:握手数据被当作显示内容,容易误判为服务异常
  • 长期保留设备的 telnet 管理面且不加源限制:等于给爆破与横向移动留了一扇无锁的门

数据来源与参考

  • RFC 854:Telnet Protocol Specification
  • RFC 855:Telnet Option Specifications

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌