Telnet 本身没有一个独立的、只在本地运行的“命令模式”,我们通常所说的 Telnet 命令,实际上指的是 Telnet 客户端程序的内部命令,这些命令用于在已经成功通过 Telnet 协议连接到远程服务器之后,对当前的 Telnet 会话进行控制和配置。

Telnet 的操作流程分为两个阶段:
- 操作系统命令行阶段:在你的本地计算机(如 Windows, macOS, Linux)的终端或命令提示符中,你输入
telnet <hostname> <port>来发起连接,这是你与本地 Telnet 客户端程序的交互。 - Telnet 会话内部命令阶段:连接成功后,你的终端界面会改变,你输入的字符将直接发送给远程服务器,如果你想执行 Telnet 客户端自身的命令(如设置终端类型、查看连接状态、退出等),就需要使用一个特殊的“转义字符”来进入 Telnet 的内部命令模式。
进入 Telnet 内部命令模式的关键:转义字符
Telnet 内部命令的入口是转义字符,默认情况下,这个字符是 Ctrl+] (按住 Ctrl 键,再按 ] 键)。
当你成功连接到远程 Telnet 服务器后,屏幕上通常会出现类似 login: 或 Username: 的提示,你输入的任何内容都会发送给远程服务器。
如果你想执行 Telnet 客户端的命令(查看连接信息或断开连接),你需要:

- 按下
Ctrl+]。 - 你的命令行提示符会发生变化,通常显示为
telnet>。
这表示你已经成功进入了 Telnet 的内部命令模式,可以在这里输入各种 Telnet 命令了。
核心 Telnet 内部命令
在 telnet> 提示符下,你可以使用以下常用命令:
| 命令 | 全称/描述 | 示例 | 说明 |
|---|---|---|---|
help |
显示所有可用的 Telnet 内部命令及其简短说明。 | ||
close |
close |
close |
关闭当前 Telnet 连接,返回到本地操作系统命令行。 |
open |
open |
open example.com 23 |
打开一个新的 Telnet 连接到指定的主机和端口。 |
quit |
quit |
quit |
退出 Telnet 客户端程序。 |
status |
status |
status |
显示当前 Telnet 连接的详细状态信息,如协议模式、连接是否打开等。 |
display |
display |
display |
显示当前 Telnet 客户端的运行时参数和设置,如转义字符、调试模式等。 |
set |
set |
set ECHO |
设置 Telnet 客户端的运行时参数,这是一个强大的命令,有很多子选项。 |
unset |
unset |
unset ECHO |
取消某个由 set 命令设置的参数。 |
toggle |
toggle |
toggle DEBUG |
打开或关闭某个 Telnet 客户端的功能,如调试输出、跟踪等。 |
z |
suspend |
z |
暂停当前的 Telnet 会话,并将其放到后台(在支持作业控制的 Shell 中,如 Linux),你可以使用 fg 命令将其恢复到前台。 |
shell |
临时退出 Telnet,返回到本地操作系统 Shell,输入 exit 可以返回到 Telnet 会话。 |
||
send |
send |
send AYT |
向远程服务器发送一个 Telnet 特殊命令。send AYT (Are You There) 用于检查对方是否在线。 |
environ |
environ |
environ define VAR value |
用于在 Telnet 会话中传递环境变量。 |
常用 set 命令详解
set 命令用于精细控制 Telnet 客户端的行为,以下是一些最常用的 set 子命令:
set 子命令 |
描述 |
|---|---|
set ECHO |
设置本地回显,开启后,你在键盘上输入的字符会显示在屏幕上,通常默认开启。 |
set escape <char> |
修改转义字符。set escape ^T 将转义字符改为 Ctrl+T。 |
set LOGGING <filename> |
将当前的 Telnet 会话内容记录到指定的文件中。set LOGGING telnet.log。 |
set TERM {ansi|vt100|dumb...} |
设置你的终端类型,以便远程服务器知道如何正确显示字符和颜色。 |
set DEBUG {ON\|OFF} |
打开或关闭调试信息输出,用于排查连接问题。 |
实践示例
假设你要连接到 bbs.newsmth.net(一个著名的 BBS 站点)的 Telnet 端口(23)。

正常连接和断开
-
发起连接:
telnet bbs.newsmth.net 23
(或者直接
telnet bbs.newsmth.net,因为 23 是默认端口) -
进入登录界面:连接成功后,你会看到 BBS 的欢迎信息和
请输入代号:的提示,此时你输入的字符会直接发送给 BBS。 -
进入内部命令模式:在 BBS 登录界面,按下
Ctrl+]。请输入代号: admin_user <-- 你还在 BSS 会话中 (按下 Ctrl+] 后) telnet> -
查看状态:
telnet> status
输出会显示当前连接的状态,
Connected to bbs.newsmth.net. Escape character is '^]'. -
关闭连接:
telnet> close
连接关闭,你将返回到本地系统的命令提示符。
开启日志记录
-
连接到任意服务器,
google.com的 80 端口(HTTP)。telnet google.com 80
连接会很快建立,因为 Telnet 会尝试与 HTTP 服务握手。
-
按下
Ctrl+]进入telnet>模式。 -
设置日志文件:
telnet> set LOGGING google_session.txt
(可能不会有任何输出,表示设置成功)
-
返回会话(按
Enter键),然后输入一些 HTTP 请求,GET / HTTP/1.1 Host: google.com(按两次回车发送请求)
-
再次按下
Ctrl+]进入telnet>模式,close退出。 -
检查你的当前目录,会发现多了一个
google_session.txt文件,里面记录了你刚才的会话内容。
安全警告
强烈建议在生产环境中避免使用 Telnet!
- 明文传输:Telnet 的所有数据(包括你的用户名、密码)都是未加密的,以明文形式在网络中传输,任何在同一个网络链路上进行“嗅探”(sniffing)的人都可以轻易截获你的凭据和所有会话内容。
- 现代替代品:对于远程管理,请使用更安全的协议,如 SSH (Secure Shell),SSH 对所有数据进行加密,是业界标准。
| 特性 | 描述 |
|---|---|
| 进入方式 | 在 Telnet 会话中按下 Ctrl+] (默认转义字符)。 |
| 提示符 | telnet> |
| 主要用途 | 配置 Telnet 客户端参数、管理连接(打开/关闭/查看状态)、记录日志等。 |
| 核心命令 | , close, open, status, display, set, quit。 |
| 安全风险 | 极高,所有数据明文传输,已被 SSH 完全取代。 |
