Telnet 命令的使用与简单原理

转载:Telnet 命令的使用与简单原理
最近遇到telnet这个命令,因为没有接触与使用过,感觉比较神秘,随着一点一点的查找,发现telnet也不过是一个与远端服务器进行通信的工具。

Telnet最常见的是对服务器的远程登录,现在随着各种远程登录方式的普及,比如说远程桌面连接或者一些其他现成的工具连接Linux或者Windows服务器,telnet这种登录方式已经渐渐远去。但是这里也需要描述一下曾经telnet远程登录的原理。

当你用Telnet登录进入远程计算机系统时,你事实上启动了两个程序,一个 叫Telnet客户程序,它运行在你的本地机上;另一个叫Telnet服务器程序,它运 行在你要登录的远程计算机上。本地机上的客户程序要完成如下功能: 
1 、建立与服务器的TCP 联接; 
2 、从键盘上接收你输入的字符; 
3 、把你输入的字符串变成标准格式并送给远程服务器; 
4 、从远程服务器接收输出的信息; 
5 、把该信息显示在你的屏幕上。 

远程计算机的“服务”程序通常被称为“精灵”,它平时不声不响地候在远程计算机上,一接到你的请求,就马上活跃起来,并完成如下功能: 
1 、通知你的计算机,远程计算机已经准备好了; 
2 、等候你输入命令; 
3 、对你的命令作出反应(如显示目录内容,或执行某个程序等); 
4 、把执行命令的结果送回给你的计算机; 
5 、重新等候你的命令。 

这里做一下简单的总结,就是客户机上装一个telnet的客户端,服务器上装一个telnet的监听程序(精灵),一般这个监听程序监听的是23号端口。把这个过程简单抽象一下,就是客户端使用telnet工具发送一个命令到服务器端,服务器端监听到了之后就调用系统相关API来执行这些命令,从而达到了客户机远程操作服务器主机的目的。

这里需要注意一点,“把你输入的字符串变成标准格式并送给远程服务器”,指的是接受的字符,要按照一定的协议格式传送到服务器端,而这些字符是通过TCP连接传输的,跟Http有点像。Http是通过TCP连接传输字符,但是数据格式是HTTP协议规定的格式。简单来说,所谓的HTTP协议,FTP协议,SMTP协议,就是各自规定了以什么样的数据包方式在网络上通过TCP管道传输数据。

其实,telnet是以TCP为基础与服务器进行通信,所以它的功能远不止远程登录服务器(远程操纵服务器)。不管是什么协议,如果它基于 tcp/ip,那么你使用 TcpClient(或者 Socket)连接它,然后发点信息,依然能连通。Telnet可以看作是一种TCP的连接工具。

下边这个例子就是使用telnet命令来跟邮件服务器进行通信。SMTP协议也是基于TCP协议,所以我们可以用telnet命令来与其通信。(我们也可以自己通过C#的网络编程代码来通信)。这里先说一下SMTP的简单原理。当客户端要向服务器端发邮件的时候,首先它会跟服务器端建立TCP连接,然后与服务器端发送问候消息进行握手确认,最后通过TCP管道来进行认证与邮件的发送。整个过程是遵守SMPT数据传输方式协议的。


如下图所示,这是在一台Linux机器上向互联网中的一台邮件服务器发送邮件。首先输入命令telnet smtp.wo.cn 25,这个命令是什么意思呢?smtp.wo.cn是地址,在互联网中会通过DNS服务器转换成IP地址,25指的是端口,也就是连接邮箱服务器的25端口。(这里也说明了telnet不仅仅局限于与远程登录的精灵监听程序进行交互,那么是23号端口,这个是25号,甚至可以与web服务器的80号端口进行通信)。这里与邮件服务器的连接连通后,发现服务器回复了一些问候信息,这时只要向服务器传送邮件内容就可以了。有人这时候问,那这telnet传输字符用的格式还跟SMTP协议有关系吗?个人认为是没有关系的,因为SMTP协议或者说FTP协议,都是应用层的协议,规定了在TCP管道中如何传输,而telnet有自己怎么在TCP管道中传输的规定,所以说,telnet与HTTP,ftp都是平级的关系。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值