telnet 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,聚焦
telnet——网络基础命令族(见网络基础与远程访问命令族)。它最经典的用法不是"远程登录"(已被 SSH 取代),而是手动连一个 TCP 端口、手敲协议调试服务。
telnet 建立一个到目标主机端口的 TCP 连接,之后你输入什么就发给对方。它常用来"手动和某个服务对话",验证服务是否在正常响应。
一、基本用法:连端口手调
bash
telnet example.com 80 # 连 80 端口
# 连上后手敲 HTTP 请求:
# GET / HTTP/1.1
# Host: example.com
# (空行结束)
telnet mail.example.com 25 # 连 SMTP,手动发邮件命令调试连上后就是"你敲什么发什么",对 HTTP/SMTP/POP3 这类纯文本协议调试极直观。能连上、手敲命令有响应,就证明服务活着——这是它最大的价值。
二、测端口连通
bash
telnet db-host 3306 # 能连上说明端口通(连不上可能防火墙/服务挂)早期常拿 telnet 当"端口连通测试器"。但现在更推荐 nc 的
-vz或 nc/bash的/dev/tcp,因为 telnet 在不少精简镜像里默认没装。
三、telnet vs ssh vs nc
| 命令 | 加密 | 用途 |
|---|---|---|
telnet | 明文,不加密 | 手动调 TCP 协议、测连通 |
| ssh | 加密 | 真正远程登录(见ssh 命令详解) |
| nc | 明文 | 连/听/传文件/扫端口(见nc 命令详解) |
远程登录早该用 ssh(telnet 明文传密码太危险)。telnet 现在只剩"手调明文协议"和"测连通"两个场景,后者也渐被 nc 取代。
四、踩坑:明文 + 常被禁用
bash
# 1. telnet 传的是明文,公网别用来登任何东西(密码裸奔)
# 2. 很多新系统默认不装 telnet,改用 nc -vz 测端口两点注意:① 绝不用 telnet 做远程登录(明文);② 新机器可能没有,端口测试改 nc
-vz。它真正的现代价值是"手动和文本协议对话"。
五、实战:验证 Web 服务响应
bash
telnet localhost 8080
# 手敲 GET /health HTTP/1.0 看返回,确认服务正常一句话总结
telnet = 手动连 TCP 端口调明文协议:连上后手敲 HTTP/SMTP 验证服务存活;但明文不安全、别用来登录(用 ssh),且新系统常不预装——测端口改用 nc -vz。它现代价值仅在"手调文本协议"。