telnet 是一个功能强大的网络协议和程序,用于远程登录和管理服务器,虽然现在出于安全考虑,SSH (Secure Shell) 已成为主流,但 telnet 仍然在特定场景下非常有用,例如网络排错、测试端口连通性等。

Telnet 命令的核心概念
在进入命令大全之前,必须理解两个核心概念:
- Telnet 客户端: 这是安装在您自己电脑上的程序,用于连接远程的 Telnet 服务器,在 Windows 中,
telnet.exe就是一个客户端。 - Telnet 服务器: 这是运行在远程计算机上的服务,它监听连接请求,并允许客户端登录。
重要提示:Windows 系统默认不安装 Telnet 服务器端,只安装了客户端,要让自己的电脑作为 Telnet 服务器被连接,需要手动安装 "Telnet 服务器" 功能。
如何启用 Telnet 客户端和服务器
启用 Telnet 客户端 (默认已安装,但可能被禁用)
对于大多数 Windows 版本,客户端是默认存在的,如果提示“不是内部或外部命令”,可以尝试以下方法:
-
Windows 10 / 11 (通过设置):
(图片来源网络,侵删)- 打开 设置 -> 应用 -> 可选功能。
- 点击 添加功能。
- 在搜索框中输入
telnet,然后选择 Telnet 客户端 并点击安装。
-
通过 PowerShell (管理员):
# 添加 Telnet 客户端功能 Add-WindowsCapability -Online -Name Telnet.Client~~~~0.0.1.0
启用 Telnet 服务器 (如果你想让自己的电脑被远程连接)
-
通过控制面板 (适用于所有版本):
- 打开 控制面板 -> 程序 -> 程序和功能。
- 点击左侧的 启用或关闭 Windows 功能。
- 在列表中找到 Telnet 服务器,勾选它,然后点击 确定。
- 系统会自动下载并安装。
-
通过 PowerShell (管理员):
# 添加 Telnet 服务器功能 Add-WindowsCapability -Online -Name Telnet.Server~~~~0.0.1.0
安装完成后,你可以在 服务 中找到 "Telnet" 服务,并启动它设置为“自动启动”。

Telnet 客户端命令大全
在 Windows 命令提示符 (cmd) 或 PowerShell 中,telnet 的使用分为两种模式:
- 命令模式 (本地模式): 在未连接到任何服务器时,输入
telnet命令。 - 会话模式 (远程模式): 成功连接到服务器后,你就在一个交互式会话中了,此时输入的命令会被发送到远程服务器。
A. 命令模式 (常用命令)
这些命令在 telnet> 提示符下使用,或者可以在启动 telnet 时直接指定参数。
| 命令 | 语法 | 说明 |
|---|---|---|
| 打开连接 | open <主机名或IP> [<端口>] |
最常用的命令,用于连接到指定的主机和端口,如果省略端口,默认为 23。 |
| 关闭连接 | close |
关闭当前与 Telnet 服务器的连接,并返回到命令模式。 |
| 退出 Telnet | quit 或 exit |
完全退出 telnet.exe 程序。 |
| 显示状态 | display |
显示当前 Telnet 会话的设置,包括是否处理换行符、本地回显等。 |
| 设置选项 | set <选项> [值] |
设置 Telnet 的本地或远程选项。set localecho (开启本地回显)。 |
| 取消设置 | unset <选项> |
取消之前设置的某个选项。 |
| 发送命令 | send <arg> |
向远程主机发送一个原始的 Telnet 命令。send will echo,高级用户使用。 |
| 状态查询 | status |
显示当前 Telnet 连接的简要状态。 |
| 帮助 | 或 help |
列出所有可用的 Telnet 命令。 |
B. 启动 Telnet 时的常用参数 (在 cmd 中直接使用)
这些参数在 telnet 命令后直接跟,无需进入 telnet> 提示符。
| 参数 | 示例 | 说明 |
|---|---|---|
| 指定主机和端口 | telnet example.com 80 |
直接连接到 example.com 的 80 端口,成功后直接进入会话模式。 |
| 调试模式 | telnet -debug example.com |
启用调试模式,会显示详细的连接过程和协议信息,对排错非常有用。 |
| 无终端模式 | telnet -n example.com 25 |
在不分配终端(即不进入交互式会话)的情况下连接,常用于脚本中自动发送数据。 |
| 用户登录 | telnet example.com /user myusername |
连接时指定用户名,连接成功后会提示输入密码。 |
实战演练与常见用法
用法 1:测试端口是否开放 (最常用)
这是 telnet 最实用的功能之一,可以快速检查网络连通性和服务是否监听某个端口。
场景:我想知道我的电脑是否能访问 www.baidu.com 的 80 端口(HTTP 服务)。
-
打开
cmd(命令提示符)。 -
输入以下命令:
telnet www.baidu.com 80
-
如果端口开放,你会看到屏幕变黑,光标闪烁,可能还会显示一些服务器信息(如
HTTP/1.1 400 Bad Request),这表示连接成功。Trying 180.101.49.12... Connected to www.baidu.com. Escape character is '^]'. HTTP/1.1 400 Bad Request Content-Length: 0 Connection: close此时你处于会话模式,可以按
Ctrl+]返回到命令模式,然后输入quit退出。 -
如果端口关闭或网络不通,你会看到类似下面的错误信息,然后自动返回到
cmd提示符。C:\> telnet www.baidu.com 80 正在连接 www.baidu.com...无法打开到主机的连接,在端口 80: 连接失败
用法 2:远程登录到一台 Telnet 服务器
场景:假设有一台 IP 地址为 168.1.100 的 Linux 服务器,开启了 Telnet 服务。
- 在
cmd中输入:telnet 192.168.1.100
- 如果连接成功,会显示服务器的登录提示,
Connected to 192.168.1.100. Escape character is '^]'. CentOS 7 (Core) Kernel 3.10.0-1160.el7.x86_64 on an x86_64 login: - 输入你的用户名,然后按回车,再输入密码。
- 登录成功后,你就可以在 Windows 的
cmd窗口中直接操作 Linux 服务器的命令行了。
注意:Telnet 传输的所有数据(包括用户名和密码)都是明文的,非常不安全!请仅在绝对安全的内网环境中使用。
用法 3:检查 SMTP 邮件服务
场景:检查本地邮件服务器是否正在监听 25 端口。
- 在
cmd中输入:telnet localhost 25
- 如果服务正在运行,你会看到类似 SMTP 服务器的欢迎信息:
220 mail.example.com ESMTP Postfix - 此时你可以输入 SMTP 协议命令来测试邮件发送功能,
EHLO localhost(打招呼)MAIL FROM: <sender@example.com>(发件人)RCPT TO: <recipient@example.com>(收件人)DATA(开始写邮件内容)- (单独一行,结束邮件)
QUIT(退出)
安全警告与替代方案
-
安全警告:如前所述,Telnet 是不安全的协议,所有通信内容(包括密码)都以明文形式传输,极易被网络嗅探工具捕获。强烈建议不要在公共互联网或任何不信任的网络中使用 Telnet。
-
推荐替代方案:
- SSH (Secure Shell): 这是 Telnet 的安全替代品,所有通信都经过加密,是目前远程服务器管理的事实标准,Windows 10/11 已内置 OpenSSH 客户端,命令为
ssh。 - PuTTY / MobaXterm: 这些是功能更丰富的第三方终端模拟器,集成了 SSH、Telnet、RDP、Serial 等多种协议,界面友好,功能强大。
- SSH (Secure Shell): 这是 Telnet 的安全替代品,所有通信都经过加密,是目前远程服务器管理的事实标准,Windows 10/11 已内置 OpenSSH 客户端,命令为
| 功能 | DOS 命令 | 说明 |
|---|---|---|
| 基本连接 | telnet <host> <port> |
连接到指定主机的指定端口。 |
| 查看帮助 | telnet 然后输入 |
进入 Telnet 命令行模式后查看所有命令。 |
| 关闭连接 | close |
关闭当前会话。 |
| 退出程序 | quit 或 exit |
完全退出 Telnet。 |
| 调试排错 | telnet -debug <host> <port> |
显示详细的连接过程。 |
掌握 telnet 命令,尤其是在端口测试方面的应用,是每一位网络管理员和程序员的必备技能,但请务必牢记其安全风险,并优先选择更安全的 SSH 进行日常操作。
