telnet最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。它的一些较新的版本在本地执行更多的处理,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。
Telnet是Internet的远程登录协议的意思,它让你坐在自己的计算机前通过Internet网络登录到另一台远程计算机上,这台计算机可以在隔壁的房间里,也可以在地球的另一端。当你登录上远程计算机后,你的电脑就仿佛是远程计算机的一个终端,你就可以用自己的计算机直接操纵远程计算机,享受远程计算机本地终端同样的权力。你可在远程计算机启动一个交互式程序,可以检索远程计算机的某个数据库,可以利用远程计算机强大的运算能力对某个方程式求解。
但现在Telnet已经越用越少了。主要有如下三方面原因:
第一,个人计算机的性能越来越强,致使在别人的计算机中运行程序要求逐渐减弱。
第二,Telnet服务器的安全性欠佳,因为它允许他人访问其操作系统和文件。
第三,Telnet使用起来不是很容易,特别是对初学者。
但是Telnet仍然有很多优点,比如如果你的电脑中缺少什么功能,就可以利用Telnet连接到远程计算机上,利用远程计算机上的功能来完成你要做的工作,可以这么说,Internet上所提供的所有服务,通过Telnet都可以使用。
不过Telnet的主要用途还是使用远程计算机上所拥有的信息资源,如果你的主要目的是在本地计算机与远程计算机之间传递文件,则使用FTP会有效得多。
4.2 Telnet的工作原理
当你用Telnet登录进入远程计算机系统时,你事实上启动了两个程序,一个叫Telnet客户程序,它运行在你的本地机上,另一个叫Telnet服务器程序,它运行在你要登录的远程计算机上,本地机上的客户程序要完成如下功能:
1) 建立与服务器的TCP联接。
2) 从键盘上接收你输入的字符。
3) 把你输入的字符串变成标准格式并送给远程服务器。
4) 从远程服务器接收输出的信息。
5) 把该信息显示在你的屏幕上。
远程计算机的“服务”程序通常被称为“精灵”,它平时不声不响地候在远程计算机上,一接到你的请求,它马上活跃起来,并完成如下功能:
1) 通知你的计算机,远程计算机已经准备好了。
2) 等候你输入命令。
3) 对你的命令作出反应(如显示目录内容,或执行某个程序等)。
4) 把执行命令的结果送回给你的计算机。
5) 重新等候你的命令。
在Internet中,很多服务都采取这样一种客户/服务器结构。对Internet的使用者来讲,通常只要了解客户端的程序就够了。
4.3利用Windows95实现远程登录
Windows95的Telnet客户程序是属于Windows95的命令行程序中的一种。在安装Microsoft TCP/IP时,Telnet客户程序会被自动安装到系统上。
利用Windows95的Telnet客户程序进行远程登录,步骤如下:
(1) 联接到Internet.
(2) 选择“开始”菜单中的“运行”,或者是选择“程序”菜单下的“MS-DOS提示方式”便可转换至命令提示符下。
(3) 在命令提示符下,按下列两种方法中的任一种与Telnet联接。
一种方法是,输入“telnet”命令、空格以及相应的telnet的主机地址。如果主机提示你输入一个端口号,则可在主机地址后加上一个空格,再紧跟上相应的端口号。然后,按回车键。
另一种方法是,输入“telnet”命令并按回车,打开Telnet主窗口。在该窗口中,选择“连接”下的“远程系统”,如有必要,可以在随后出现的对话框中输入主机名和端口号,然后,单击“连接”按钮。
(4) 与Telnet的远程主机联接成功后,计算机会提示你输入用户名和密码,若联接的是一个BBS、Archie、Gopher等免费服务系统,则可以通过输入bbs、archie或gopher作为用户名,就可以进入远程主机系统。
这样,Telnet已经为你架起了通向远程主机的桥梁,现在你可以完全依照远程主机的命令行事了。
telnet_telnet -Telnet的命令模式
除了在Telnet是如何工作的例子介绍的以外,Telnet还有很多的特点。Telnet可发送除了"escape"的任何字符到远程主机上。因为"escape"字符在Telnet中是客户机的一个特殊的命令模式,它的默认值是"Ctrl-]"。但要注意不要与键盘上的Esc键混淆,我们可以设定"escape"为任意某个字符,只是对Telnet来说以为着该字符不可能再被传送到远程主机上,而Esc键是一非打印字符,Telnet用它来删除远程系统中的命令。而且还应记住,"escape"字符并不总以"Ctrl-]"来表示。
可以仅仅键入Telnet,后面不带机器字句。这种情况下所看到的是Telnet>,这是告知Telnet在等待键入命令,比如键入问号"?"那么就得到一个有用的命令表:
telnet: ?
Commands may be abbreviated, Command are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters ('send ?' for more)
set set operating parameters('set ?' for more)
status print status information
toggle toggle operating parameters('toggle ?' for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
虽然命令很多,甚至还有子命令,但只有一些是常用的。现在介绍以下的几个:
Close:
该命令用语终止连接。它自动切断与远程系统的连接,也可以用它退出Telnet,在冒失的进入一个网络主机时,想退出的话,就可以用到这个命令。
open:
用它来与一个命名机器连接,要求给出目标机器的名字或IP地址。如果未给出机器名,Telnet就将要你选择一个机器名。必须注意,在使用"Open"命令之前应该先用"close"来关闭任何已经存在的连接。
Set ECHO:
用于本地的响应是On或是Off。作用是是否把输出的内容显示在屏幕上。和DOS的ECHO基本上是一样。如果机器是处于ECHO ON的话,想改变为OFF,那么就可以输入SET ECHO,想再改变回ECHO OFF,那么就再键入SET ECHO就可以了。(这儿说的比较简短,如果有不明白的,可以与我联系)
Set escape char:
建立"escape"字符到某个特殊的符号,若想用某种控制符号来代替,可以用"asis"或者键入符号"^"加字母b(如:^b)。在正常工作时,是不需要用"escape"这个字符的,并且这个被用作"escape"的符号不应该再被使用。这类似于许多程序中对键盘上的每一个键设定其真正的涵义。但如果正在运行一个 daisy-chained 应用系统,那么可以重新议定"escape"字符的特征便是很有用的。例如:用Telnet从系统A到系统B,接着又用Telnet注册进入系统C。如果正在系统C上工作时出了故障,那么当"escape"代表符是相同时,就没法中断系统B到系统C的连接。键入"escape"代表符,将总是处于系统A的命令模式。如果在每个Telnet部分使用不同的"escape"代表符,便可以通过键入适当的符号,来选择其中一个命令模式,这也可以用于其他的应用中(像终端仿真)。
Quit:
用它可顺利地推出Telnet程序。
Z:
用语保留Telnet但暂时回到本地系统执行其他命令。并且在Telnet中的连接以及其他的选择在Telnet恢复时仍被保留。
Carriage Return:
用于不具体的一个命令从命令模式返回到所连接的远程机器上。另外,还有许多其他的命令可以推出命令模式。下面举一个例子,是从注册进入到porky.math.ukans.edu ,然后进入命令模式,然后返回porky::
telnet porky.math.ukans.edu
Trying 129.237.128.11...
Connected to porky.math.ukans.edu.
Escape character is '^]'.
SunOS UNIX(porky)
login:wl
password:
Last Login: Tue Mar 28 05:35 from ns.bta.net.cn
SunOS Release 4.1.3_U1(SLIPPERY1) #3: Sun Nov 20 23:47:23 CST 1999
No match.
if:Expression syntax.
porky/serv/wl%cd/
porky/%CTRL-]
telnet:?
Commands may be abbreviated, Command are:
open connect to a site
close close currect connection
quit exit telnet
display display operating parameters
send transmit special characters ('send ?' for more)
set set operating parameters('set ?' for more)
status print status information
toggle toggle operating parameters('toggle ?' for more)
mode try to enter line-by-line or character-at-a-time mode
? print help information
telnet:set escape ^b
escape character is ’^b’
porky/%logout
ns.bta.net.cn%
telnet_telnet -启动和停止Telnet服务
Telnet服务由xinetd服务管理器管理,是不会默认自动启动的。1.启动Telnet服务
方法1使用chkconfig命令启动Telnet服务,命令如下:
[root@localhost~]#chkconfig--addtelnet
[root@localhost~]#chkconfigtelneton
[root@localhost~]#chkconfigxinetdrestart
方法2编辑配置文件,命令如下:
[root@localhost~]#vi/etc/xinetd.d/telnet
将语句disable=yes修改为disable=no,保存并退出,重启xinetd服务;
[root@localhost~]#chkconfigxinetdrestart
方法3通过ntsysv设置Telnet服务自动启动
在RedHatEnterpriseLinux5下的终端窗口输入ntsysv,打开系统内置的“服务”配置小程序,找到telnet,并在前面加个“*”,Telnet服务就会随系统启动而自动运行了。
[root@localhost~]#ntsysv
2.停止Telnet服务
方法1使用chkconfig命令停止Telnet服务,命令如下:
[root@localhost~]#chkconfigtelnetoff
[root@localhost~]#chkconfig--deltelnet
[root@localhost~]#servicexinetdrestart
方法2编辑配置文件,命令如下:
[root@localhost~]#vi/etc/xinetd.d/telnet
将语句disable=no修改为disable=yes,保存并退出,然后重启xinetel服务:
[root@localhost~]#servicexinetalrestart