telnet到底怎么用
要想通过telnet连接虚拟机IP,核心思路分三步:先在虚拟机上开启telnet服务并放行端口,再从本机用telnet命令发起连接,最后用登录验证或命令输出来确认配置生效。整个过程说白了就是一次标准的TCP端口连通性测试,但很多人在Windows自带的telnet客户端、虚拟机防火墙、服务端配置这几个环节上栽过跟头。
为什么要用telnet测试虚拟机IP连通性
telnet命令的本质与适用场景
telnet是一个古老的远程终端协议,工作在传输层的TCP协议之上,默认端口是23,它的最大价值在于“原始”它不加密,不做复杂握手,只是纯文本传输,正因为如此,telnet成了网络排障时的第一把手术刀。
比如你搭建了一个Web服务器,想确认80端口是否对外开放,一条telnet 192.168.1.100 80就能告诉你答案:出现黑屏光标闪烁,说明端口通;提示“连接失败”或“无法打开到主机的连接”,说明端口被挡或服务没起来。
行业共识认为,在不需要加密的局域网内部测试场景中,telnet的轻量特性依然让它在运维工具箱里占有一席之地。
telnet与ssh的各维度差异对比
不少刚入门的朋友会问“有了SSH为什么还要用telnet”,这里给一张对比表,直观感受两者的定位区别:
| 对比维度 | telnet | SSH |
|---|---|---|
| 端口 | 23 | 22 |
| 加密 | 明文传输 | 强加密 |
| 认证方式 | 明文密码 | 密钥/密码 |
| 典型场景 | 内网调试、端口探测 | 生产环境远程管理 |
| 性能开销 | 极低 | 较低 |
| 安全性 | 低 | 高 |
这张表格的结论很清晰:telnet适合临时调试和端口测试,SSH才是正式远程管理的选择。
如何在虚拟机上开启telnet服务并配置IP
前置条件检查
在动手配置之前,先确认三件事:
- 虚拟机已安装操作系统(Windows Server、Linux发行版或其它),且网络模式已设置为桥接或NAT,保证宿主机能路由到该虚拟机IP。
- 虚拟机内已配置静态IP地址,动态IP虽然省事,但会在重启后产生变化,导致之后的连接排查无从下手。
- 宿主机与虚拟机之间能互相ping通,ping不通的话,先解决网络底层问题再去搞telnet,别倒着来。
Windows虚拟机开启telnet服务端的操作步骤
很多人以为Windows默认带telnet服务,其实并非如此,Windows Server默认没有安装“Telnet Server”功能,需要手动开启,具体路径如下:
- 打开“服务器管理器”,选择“添加角色和功能”。
- 在“功能”列表中找到“Telnet Server”,勾选并完成安装。
- 安装完成后,在“服务”管理器(win+R输入
services.msc)中找到“Telnet”服务,右键将启动类型改为“自动”,点击“启动”。 - 打开Windows防火墙,在“入站规则”中新建一条规则,放行端口23或放行“Telnet”程序,这一步常常被忽略,导致服务明明开了却连不上。
完成之后在虚拟机本机执行netstat -ano | findstr :23,看到LISTENING状态就说明监听正常。
Linux虚拟机开启telnet服务端的方法
Linux系列操作系统的telnet服务依赖telnet-server和xinetd(或inetd),以常见的CentOS 7.x为例:
yum install -y telnet-server xinetd systemctl enable xinetd systemctl start xinetd
注意一点:CentOS 7默认没有telnet服务配置,需要手动创建/etc/xinetd.d/telnet指向/usr/sbin/in.telnetd并设置disable = no,修改后重启xinetd服务,再用netstat -tlnp | grep 23确认端口已监听。
配置虚拟机IP地址时,修改/etc/sysconfig/network-scripts/ifcfg-ens33(不同网卡名称有差异),设置BOOTPROTO=static,填入IPADDR、NETMASK、GATEWAY然后systemctl restart network。
虚拟机IP配置的细节与常见坑
给虚拟机配IP这件事,看似简单实则容易出错,最常见的两种情况:
- 桥接模式下IP与宿主机不同网段这种情况虚拟机可以上网,但宿主机无法访问虚拟机,建议手动将虚拟机IP设置为宿主机同网段地址,例如宿主是192.168.1.10,虚拟机可以设为192.168.1.88。
- NAT模式下网关配置错误NAT模式的网关通常是
168.x.2(VMware Workstation默认),虚拟机的网关和DNS需要与该值保持一致,否则数据包无法正常路由。
配完IP后建议在虚拟机内执行
ping 宿主机IP和ping 网关IP双向验证,确认网络层无误再进入下一步。
telnet连接失败的常见原因排查
连接超时与拒绝连接的区分判断
执行telnet 虚拟机IP 23后,不同错误提示对应不同原因:
- “正在连接…无法打开主机的连接”(Windows)或“Connection refused”(Linux):目标端口没有服务在监听,说明telnet服务端没启动或端口被防火墙拦截。
- “连接超时”(Connect timed out):数据包被丢弃,通常是防火墙DROP规则、网段不可达或虚拟机处于关机状态。
业内专家指出,多数telnet连接失败案例中,大约七成问题出在防火墙或安全组规则上,而非服务端本身。
防火墙规则的排查顺序
如果你遇到连接超时,按以下顺序逐层排查:
- 先看虚拟机内部防火墙Windows执行
netsh advfirewall show allprofiles,Linux执行systemctl status firewall或iptables -L。 - 再看宿主机防火墙Windows宿主机偶尔会拦截出站telnet请求(默认其实是放行,但企业安全软件可能干预)。
- 最后看路由器或云平台安全组如果虚拟机在云端(比如简米云、酷番云),还需要检查控制台中的安全组入方向规则是否放行了TCP 23端口。
telnet端口探测的进阶用法
除了连接23端口测试telnet服务本身,telnet还可以用来探测其它端口,比如你怀疑虚拟机上部署的MySQL(3306端口)响应异常,直接执行:
telnet 192.168.1.88 3306
如果黑屏出现带版本号的字符串,说明MySQL服务正常;如果Connection refused,说明MySQL没监听或绑定了127.0.0.1而非0.0.0.0,这种用法在排查“服务起来了但外部连不上”的疑难杂症时非常高效,也是一线运维核对端口开放状态的常用手段。
用telnet完成一次完整的连接验证流程
从宿主机发起telnet连接
以Windows宿主机为例,按以下步骤发起连接:
- 按下
Win + R,输入cmd打开命令提示符。 - 输入
telnet 192.168.1.88并回车(虚拟机IP以实际为准)。 - 如果连接成功,屏幕会显示“Login:”提示,输入虚拟机内已有的用户名和密码即可登录。
如果你的Windows提示“不是内部或外部命令”,说明telnet客户端未启用,到“控制面板程序启用或关闭Windows功能”中勾选“Telnet客户端”,点击确定后重启命令提示符窗口即可。
验证telnet服务配置是否成功
登录成功只是第一步,还需要通过几个维度确认“telnet连接虚拟机IP及配置步骤”这一流程真正走通:
- 执行
ipconfig(Windows)或ifconfig(Linux)确认当前会话的系统IP与目标虚拟机IP一致。 - 在telnet会话中执行
hostname,确认登录到的确是你期望的虚拟机,而非跳板机或其它设备。 - 输入
logout或exit正常退出会话,观察宿主机命令提示符是否正常返回,验证连接建立的完整闭环。
telnet虽老,但排查价值不减
telnet连接虚拟机IP的核心要义在于:它不只是远程登录工具,更是验证端口、服务状态和网络策略的简洁手段。在虚拟化平台、跨网络调试的场景里,合理使用telnet往往能比复杂工具更快给出明确结论。
常见问题速答
telnet连接虚拟机时提示“不能打开到主机的连接”怎么办?
优先检查虚拟机内23端口是否处于监听状态,在虚拟机中执行netstat -tlnp | grep 23(Linux)或netstat -ano | findstr :23(Windows),若没有输出,说明服务未启动或启动失败,再检查虚拟机防火墙是否放行入站的TCP 23端口,以及宿主机到虚拟机的网络路由是否可达,端口监听正常但连接被拒时,多数原因是防火墙拦截。
telnet命令怎么指定端口号连接目标主机?
在telnet命令后直接附上网络端口号即可,格式为telnet 目标IP 端口号,例如测试虚拟机80端口的Web服务,执行telnet 192.168.1.88 80,端口号是必填参数,不填写时默认使用23端口,该命令执行后若弹出版本信息或进入黑屏界面,说明目标端口正常对外提供服务。
为什么telnet服务开启后,外网仍然连不上虚拟机?
多数情况下是网络地址转换层面的问题,如果虚拟机部署在NAT模式下,外网直接访问虚拟机IP在原理上就不通,必须通过宿主机端口映射才能从外部到达虚拟机,如果虚拟机使用桥接模式且物理路由环境不支持该网段转发,同样会导致外网不可达,先在局域网内部用另一台机器测试telnet,确认可达后再解决外部路由和映射配置。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/641287.html




