Telnet 全景教程:全平台安装、命令使用、故障排查与安全规范

Telnet 是基于 TCP 协议的传统远程终端协议,默认端口 TCP 23核心特性:全程明文传输,无任何加密 。 当前生产环境严禁使用 Telnet 服务端做远程登录 ;仅保留 Telnet 客户端 用于快速测试 TCP 端口连通性,是运维、开发最常用简易网络诊断工具。 本文覆盖 Windows / Linux /macOS 全平台安装、语法示例、返回结果解读、常见报错、安全替代方案,配套多规格对比表格。
⚠️ 重要安全提醒:不要在公网环境部署 telnet-server;密码、指令全部明文,抓包即可窃取凭证。

一、基础概念区分(客户端 vs 服务端)

|---------------------|---------------------------------|-------------------|-----------------|
| 类别 | 作用 | 使用场景 | 是否推荐公网部署 |
| Telnet 客户端 | 主动发起连接,探测远端 TCP 端口、登录 telnet 设备 | 运维端口连通性测试、调试老旧交换机 | ✅ 可正常使用 |
| Telnet 服务端(telnetd) | 监听 23 端口,允许外部设备登录本机 | 老旧内网设备临时调试 | ❌ 公网禁止,内网仅限临时应急 |

二、全平台 Telnet 客户端安装指南

2.1 Windows(Win10 / Win11 / Windows Server)

Windows 默认未启用 Telnet 客户端,提供图形界面、命令行两种安装方式。 验证是否安装成功 :CMD/PowerShell 执行 telnet,提示 "不是内部命令" 代表未安装。

|------------------|-----------------------------------------------------------------------|-------------------------------------------------------------------|-------|
| 安装方式 | 操作步骤 | 执行命令 | 权限要求 |
| 图形界面(控制面板) | Win+R → control → 程序 → 程序和功能 → 启用或关闭 Windows 功能 → 勾选【Telnet 客户端】→确定 | 无 | 普通管理员 |
| DISM 命令(CMD 管理员) | 以管理员打开命令提示符 | dism /online /Enable-Feature /FeatureName:TelnetClient | 管理员 |
| PowerShell 命令 | 管理员 PowerShell | Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient | 管理员 |

卸载客户端命令(管理员 PowerShell)

复制代码
Disable-WindowsOptionalFeature -Online -FeatureName TelnetClient

2.2 Linux 各发行版安装命令

客户端:telnet;服务端:telnetd(如无特殊需求,只装客户端)

|---------------------------|--------------------------------------------|------------------------------------------|------------------------------------------|
| 系统发行版 | 安装 Telnet 客户端 | 安装 Telnet 服务端 | |
| Ubuntu / Debian | sudo apt update sudo apt install -y telnet | sudo apt install -y inetutils-telnetd | |
| CentOS7 | RHEL7 | sudo yum install -y telnet | sudo yum install -y telnet-server xinetd |
| CentOS8+ / Rocky / Fedora | sudo dnf install -y telnet | sudo dnf install -y telnet-server xinetd | |

2.3 macOS 安装

macOS 原生移除 telnet,依赖 Homebrew 包管理器

复制代码
# 安装
brew install telnet
# 验证
telnet -v

2.4 安装完成统一验证命令

打开终端执行任意一条,正常进入交互模式即为安装成功

复制代码
telnet
telnet --help

三、Telnet 标准语法与常用参数

3.1 基础语法

复制代码
telnet [可选参数] 主机地址 [端口号]
  • 不填写端口:默认使用 23 端口(telnet 标准端口)

  • 端口自定义:可测试任意 TCP 端口(80、22、3306、6379 等)

3.2 通用参数对照表

|----|---------------------|------------------------------------------------------------------------|
| 参数 | 说明 | 使用示例 |
| -4 | 强制使用 IPv4 连接 | telnet -4 192.168.1.1(192.168.1.1) 80 |
| -6 | 强制使用 IPv6 连接 | telnet -6 2400::xxxx 22 |
| -b | 指定本机出口 IP 发起连接 | telnet -b 10.0.0.5(10.0.0.5) 192.168.1.100(192.168.1.100) 3306 |
| -e | 自定义逃逸字符(默认 Ctrl+]) | telnet -e @ 192.168.1.1(192.168.1.1) |

3.3 会话内交互指令(连接成功后使用)

连接建立后,按下 Ctrl + ] 进入 telnet 命令模式

|------------|---------------------|
| 交互命令 | 功能 |
| quit | 关闭 telnet 会话,退出程序 |
| open ip 端口 | 在当前会话新建连接 |
| close | 关闭当前连接,保留 telnet 程序 |
| ? / help | 查看全部内置命令 |

四、高频实战示例(运维最常用)

示例 1:测试 TCP 端口连通(最主流用途)

复制代码
# 测试目标80端口是否开放
telnet 192.168.1.100 80

# 测试公网域名端口
telnet baidu.com 443

# 测试MySQL 3306端口
telnet 127.0.0.1 3306

连上了会显示一个黑屏/光标闪烁(说明端口通了)

连不上会提示"连接失败"或直接报错

示例 2:登录开启 telnet 服务的网络设备(交换机 / 路由器,仅限内网)

复制代码
telnet 192.168.1.1

示例 3:手动和 Web 服务交互

复制代码
telnet baidu.com 80
# 连接成功后输入
GET / HTTP/1.1
Host: baidu.com
回车两次,即可获取网页原始响应

五、连接返回结果解读(故障判断核心)

|----------------------------------------------------------------------|-----------------|---------------------------------------------------|
| 终端输出现象 | 网络结论 | 排查方向 |
| Connected to shturl.cc/j4mSS(shturl.cc/j4mSS) 光标闪烁 / 返回服务 Banner | ✅ 端口开放,TCP 握手成功 | 防火墙放行、服务正常监听;空白界面属于正常现象 |
| Trying shturl.cc/j4mSS...(shturl.cc/j4mSS...) Connection refused | ❌ 端口关闭 目标主机可达 | 1. 服务未启动 2. 监听地址非 0.0.0.0(0.0.0.0) 3. 本地防火墙拦截 |
| Trying shturl.cc/j4mSS...(shturl.cc/j4mSS...) 长时间卡住,连接超时 | ❌ 报文被防火墙丢弃 | 安全组、ACL、路由策略拦截,数据包无法抵达目标主机 |
| Name or service not known | ❌ DNS 解析失败 | 检查域名拼写、DNS 服务器配置 |

六、常见报错与解决方案

|--------------------------|-----------------|------------------------------------|
| 报错信息 | 根因 | 解决办法 |
| 'telnet' 不是内部或外部命令 | 客户端未安装 | 参考第二章节安装 telnet 客户端 |
| Connection refused | 目标端口无程序监听 | 登录目标机器,检查服务启动状态、监听地址、本地防火墙 |
| 连接超时,无任何拒绝提示 | 防火墙静默丢弃数据包 | 核查云服务器安全组、iptables、硬件防火墙策略 |
| 能连上 telnet,但输入字符无响应 | 终端模式异常 | Ctrl+] 进入命令模式,输入 mode character |
| Linux 安装 telnet 后依然命令找不到 | 软件包未正确安装,环境变量异常 | 重新执行安装命令,或执行 which telnet 确认路径 |

七、Telnet 安全缺陷与现代替代方案

Telnet VS SSH 核心对比表

|---------|------------|---------------------|
| 对比项 | Telnet | SSH |
| 传输加密 | 无,明文传输 | 全程加密 (AES/ChaCha20) |
| 默认端口 | 23 | 22 |
| 凭证安全 | 账号密码抓包直接可见 | 无法直接窃取会话信息 |
| 中间人攻击风险 | 极高 | 有效防护 |
| 适用场景 | 仅内网临时端口探测 | 远程服务器登录首选 |

端口连通测试替代工具(推荐优先使用)

telnet 仅支持 TCP,且脚本兼容性差,以下工具更适合自动化运维:

1、Netcat(nc) 跨平台,支持 TCP/UDP 探测

复制代码
nc -zv 192.168.1.100 80

2、Windows PowerShell 内置(无需额外安装)

复制代码
Test-NetConnection 192.168.1.100 -Port 3306

3、curl 通用方案

复制代码
curl -v telnet://192.168.1.100:80

八、运维最佳实践总结

1、只安装 Telnet 客户端,永远不要在公网服务器启用 telnet-server;

2、Telnet 仅用于端口连通性测试,绝不用于远程登录服务器;

3、服务器远程管理统一使用 SSH 协议;

4、生产环境防火墙全局屏蔽外网入方向 TCP 23 端口

5、自动化脚本尽量使用 nc、Test-NetConnection 替代 telnet,兼容性更强。

相关推荐
Bruce_Liuxiaowei1 小时前
自动化渗透测试——用AI构建自动化渗透测试流程
运维·人工智能·自动化
OnlineProxy1 小时前
如何在无需手机号的情况下创建 Google 账号:高信任度代理(High Trust Score Proxy)如何取代短信验证
运维·服务器·facebook
imaol11 小时前
文件编程--标准IO
linux·运维·算法
梦想的旅途21 小时前
企业微信SCRM怎么对接API?私域自动化常用接口清单
运维·自动化·企业微信
随风而飘1862 小时前
罗德与施瓦茨 FSP13 中高端频谱分析仪
网络·功能测试·测试工具
旗开得胜马到成功2 小时前
AMD TPM 8.3/8.5漏洞技术剖析:服务器加密信任根崩塌后的备份密钥泄露风险与紧急加固
运维·服务器·网络·系统架构
love530love2 小时前
虚拟显示驱动导致 Photoshop / Camera Raw 卡死?OrayIddDriver 的锅
运维·人工智能·ui·photoshop·orayidddriver·hags 调度
阿朝笔记2 小时前
DocuWorks 10 电子化工作流:OCR + 条码自动归档落地运维方案
运维·docuworks10·文档电子化归档·ocr扫描归档·企业文印运维·无纸化办公
coder_lorraine2 小时前
Halo 2.x 回收站文章无法删除?一篇文章教你彻底解决
java·运维