Telnet: 我们常说的Telnet默认是指基于Telnet协议(TCP/IP协议簇中的一员,使用TCP 23号端口进行通信,C/S工作模式,是早期Internet远程登录服务的标准协议和主要方式)的一个软件程序,设计初衷是用于实现计算机远程登录,因Telnet是以明码方式传输数据的,安全性较低,Telnet逐渐被弃用,目前主要使用加密通信的SSH协议来进行远程登录。
虽然Telnet安全性较低,但因其便捷性和稳定性,在本地调试网络通信设备(路由器、交换机、防火墙等)时仍在大量被使用,另外,Telnet也常常用来测试端口的连通性。
命令格式:
telnet [-4] [-6] [-8] [-E] [-L] [-S tos] [-a] [-c] [-d] [-e char] [-l user]
[-n tracefile] [-b hostalias ] [-r] [host-name [port]]
参数详解:
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-8:允许使用 8 位字符资料,包括输入和输出;
-E:Escape的简写,滤除脱离字符;
-L:允许输出 8 位字符资料;
-S:<服务类型> 设置telnet连线所需的IP TOS信息;
-a:尝试自动登入远端系统; //同windows系统下telnet -a
-c:不读取用户专属目录里的.telnetrc文件;
-d:debug的简写,启动排错模式;
-e char:<脱离字符> 设置脱离字符; //同windows系统下telnet -e [char]
-l user:<用户名称> 指定要登录远端主机的用户名; //同windows系统下telnet -l
-n tracefile:<记录文件> 指定文件记录相关信息;
-b hostalias:<主机别名> 使用别名指定远端主机名称;
-r:使用类似rlogin指定的用户界面;
-k domian:<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的域名,而非该主机的域名;
-K:不自动登入远端主机;
-f:与指定“-F”参数效果相同;
-F:使用 Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
Telnet安装启用: 默认状态下,Linux/Windows系统均不能直接使用Telnet命令。Linux系统下,可在线或离线安装Telnet客户端,Windows系统可通过“控制面板”-“程序和功能”-“启用或关闭windows功能”-勾选“Telnet客户端”启用telnet命令。
P1.Centos在线安装Telnet客户端
Telnet使用示例: Telnet在网络通信设备上的使用就不列举了,那是比较传统经典的C/S模式,Telnet Server端部署在网络设备上。以下演示通过telnet探测远端主机上的指定端口是否已开放,即远程主机端口的连通性。
(1)telnet 119.91.71.124 80:探测指定IP地址的远端主机80 web端口是否可用。
P2.telnet探测指定IP远程主机80端口,进入连接模式光标闪烁,80端口可用
扩展: 如何通过telnet命令探测远程主机端口是否已开放/端口连通性?
无论被探测主机上是否已安装启用telnet server服务,端口是否是telnet server端口,只要是对外开放的端口(没有被防火墙或第三方防护拦截的端口),telnet都会自动创建新的窗口并进入连接模式(如上图2);而对于远端主机未开放的主机端口,telnet会直接提示 在端口XX:连接失败(如下图3)。
P3.telnet远程主机81端口,提示连接失败,该端口未开放
对比: 在linux系统上telnet测试指定IP远程主机端口连通性的表现:
P4.Linux系统上分别telnet远程主机80、81端口
Linux系统上,如果远程主机端口已开放,如上图4中的80端口,则telnet会一直尝试远程连接,直到人为Ctrl+C干预中止;如果远程主机端口未开放,如上图4中的81端口,则telnet将直接返回提示信息Connection refused。
(2)telnet www.itylq.com 80:探测指定域名端口的连通性。经测试,Linux和windows系统都会自动解析域名,并把解析得到的IP地址用于远程主机端口探测。
P5.Linux系统上telnet指定域名80端口
(3)telnet www.itylq.com mysql / telnet www.itylq.com https:探测指定域名知名服务的连通性。除了远程主机IP地址可以替换为域名外,被探测端口也可以用服务名称代替(前提是知名服务和知名端口),如https<->443、mysql<->3306。
P6.Linux系统上telnet指定域名指定(知名)服务
总结:
1、telnet可用于计算机远程登录,前提是远程主机上已启用telnet server服务,并通过账号密码认证;
2、鉴于telnet是明文传输的,安全性较低,当前主流的远程登录协议是提供加密通信的SSH协议;
3、telnet比较适用于在本地环境下调试网络通信设备和用于探测指定远程主机端口的连通性;
4、telnet探测的远程主机可以是指定的IP地址或域名,端口也可以是端口号或知名服务名称,如http、https、mysql等。