用Telnet连接远程计算机

来源:互联网 发布:支付宝与淘宝解绑 编辑:程序博客网 时间:2024/05/17 03:21

 Internet系统的一大优点在于,操纵世界另一端的计算机与使用身旁的计算机一样方便。本章介绍怎样利用Telnet服务系统连接远程计算机。
  我们将讨论两种使用远程计算机的主要方法。首先,你可以在任何 Internet主机上注册,取得你的户头。如对于一台Unix系统的计算机,你必须具有一个用户标识和口令。一经注册,你就可以按正常使用主机了。其次,有许多Internet计算机提供一种Telnet公共服务。该系统对任何用户都有效,通常不需要口令。
  你将发现,Telnet会让你忘记自己与远程主机之间的距离,你所能感到的距离感仅仅是,当Internet使用频繁时,计算机的响应速度稍有迟缓。当然,熟练的用户可以轻松自如地依次访问几个不同的Internet 主机。
  Telnet概要
  Telnet提供大量基于标准协议之上的服务。使你与远程Internet主机连接的服务就叫做“Telnet”。
  使用telnet服务,你必须在你的计算机上运行一个特殊的telnet程序。该程序通过Internet连接你所指定的计算机。一旦连接成功,telnet就作为你与另一台计算机之间的中介而工作。你用键盘录入的所有东西都将传给另一台计算机,而另一台计算机显示的一切东西也将送到你的计算机并在屏幕上显示出来。其结果,你的键盘及屏幕似乎与远程计算机直接连在一起。
  在Telnet术语中, 你的计算机叫作“本地计算机”(本地机), 而 telnet程序所连接的另一台计算机叫做“远程计算机”(远程机)。无论另一台计算机的实际距离有多远,无论是在同一间办公室还是横跨世界,我们都使用这些术语。正如第二章所述,我们常把Internet计算机称为“ 主机”。所以,利用Telnet术语,我们可以说telnet程序的功能就是将你的本地机与一台远程Internet主机连接。
  另外,我们通常也将telnet用作动词。例如,你正在外地一位朋友家作客,你可以这样对他说:“我能用你的计算机吗?我想telnet我的计算机,看有没有邮件。”
  运行telnet 程序的第一种方法
  当进行远程连接时,你应使用telnet程序。有两种运行程序的方法,这里先讲述最常用的一种,下一部分将介绍另一种方法。
  运行telnet程序,首先录入命令名及你想连接的远程机的地址。例如,假设你要连接一台叫fuzzball的计算机,它的全地址为 fuzzball. ucsb .edu,则录入:
  telnet fuzzball.ucsb.edu
  若你是与本地网络的一台计算机连接,通常可以只录入该机的名字而不用录入全地址。例如:telnet fuzzball
  正如在第四章中介绍的,所有Internet主机都有一个正式的IP地址,该地址由一串被句点隔开的数字构成。例如:标准地址为ucsd.edu的计算机的IP地址为128.54.16.1.
  一些系统在处理某些标准地址时会有困难。若你使用telnet程序时遇到此类问题,可换用IP地址试一试。例如,以下两个命令都可达到同一目的,即能连上同一台主机。
  telnet ucsd.edu
  telnet 128.54.16.1
  关于IP地址及Internet地址的详细情况参见第四章。
  运行telnet程序后,它将开始连接你所指定的远程机。当telnet正在等待响应时,屏幕将显示:
  Trying...
  或类似的信息。
  一旦连接确定(若主机距离远可能会等候一段时间),你将读到此信息:Connected to fuzzball.ucsb.edu
  Escape character is ''^]''
  (我们将在后面的“换码符”中解释该指示)
  假如有时telnet不能确定连接,你将得到主机找不到的信息。例如,假设你想连接远程机nipper.com,但你错误地录入为:
  telnet cnpaf.net
  你将会看到:
  cnpaf.net:unknown hosttelnet>
  此时你可以另指定一主机名,或者中止执行该程序。
  有许多因素都可能导致telnet 不能远程连接。三个最常见的因素为: 计算机地址拼写错误。
  远程计算机暂时不能使用。
  你指定的计算机不在Internet上。
  另外还可能出现的问题是:由于某种原因,你的本地网络或许不能连接Internet的某些部分。一个原因是某些主机为了保密而被隔离。另一原因是某些主机根本不能与别的主机连接。
  例如,我们一位来自爱尔兰的朋友抱怨道,他不能与在澳大利亚的计算机连接。在这种情况下,telnet将显示类似以下信息:
  Host is unreachable
  若遇到此种情况,请你重复检查是否正确地录入telnet命令或地址,你也可以请教系统管理员,进行此类连接是否还有一些你不知道的技巧。当然, 若确实你所在地不能与远程机连接,那你只好认可现实了。 (我们只好对那位爱尔兰朋友说:有许多人从未与澳大利亚的计算机连接,却仍过着充实愉快的生活。)
  telnet一旦确定连接,你就可以同远程机对话了。此时,许多主机会显示一些信息,通常这是用来确认计算机的。一旦被接受登录,你将看到标准的提示符。例如,若你已与一台Unix远程机连接,你将看到:
  login:
  现在你可以用正规方式登录。录入你的用户标识符并按回车,你将看到:
  Password:
  现在录入你的口令并再按回车。(注意:你录入的口令并不会在屏幕上显示,这是为了防止别人窃取你的使用权)。
  我们曾指出,有些远程机可以提供一种公共服务,在这种情况下, 当你登录时毋须使用保密口令。例如,在第十三章中,我们将讨论一种叫 Archie服务器的Internet资源。 当你连接 Archie 服务器时, 使用一个 archie的用户标识,一旦录入该用户标识,Archie程序就会自动运行。 有些公用主机甚至更方便。只要你用telnet命令连接,远程程序就会自动执行,你甚至不用再录入用户标识和口令。
  当在远程机的工作结束后,你只需按常规方式“退出”,此时连接断开,telnet 自动停止运行。
  运行telnet程序的第二种方法
  我们曾提到有两种方法可以运行 telnet 程序。 第一种方法是录入 telnet命令及远程机的地址。例如:telnet fuzzball.ucsb.edu. 第二种方法是不指定主机地址而运行telnet。仅录入:
  telnet
  此时程序运行,但并未进行连接。你将看到:
  telnet>
  这是telnet提示符。它表明程序已运行并等待你录入一个命令。若要连接一台远程机,录入open,并附上远程机的地址即可。例如:
  open fuzzball.ucsb.edu.
  其连接效果同你一开始录入telnet命令就接着指定远程机一样。
  在前一节,我们给了一个例子。telnet 命令录入错误地址。 在这个例子中, 远程机名为nipper.com,但我们错录为:
  telnet cnpaf.net
  此时telnet仍试图进行连接,当失败时程序放弃连接并显示提示符,等待你录入一命令。在这种情况下你将看到:
  cnpaf.net:unknown host
  telnet>
  现在你可以录入一条open命令及正确的地址:
  open nipper.com
  若该地址不工作,你可以再试另一个。若你决定放弃,录入: quit
  即退出telnet程序。
  运行及退出telnet提要:
  有两种运行telnet的方法。一是录入命令后加上远程机的地址:
  telnet fuzzball.ucsb.edu.
  另一种是只录入命令名:
  telnet
  然后在“telnet>”提示符后录入一条open命令:
  open fuzzball.ucsb.edu.
  有两种退出telnet程序的方法。若你已与远程机连接, 则用常规方法退出,telnet程序自动退出。或者,在“telnet>”提示符下, 录入中止命令
  quit
  连接特定的数字
  在Internet中,有许多主机能为Telnet提供公用服务。事实上,若你查一下目录,你会发现大量的项目是通过Telnet访问的。
  许多远程主机要求你在连接时指定一特别的“接口数字”,用来标识你需要的服务类型。这里有一个例子:
  密执根大学有一台计算机可提供美国和加拿大的天气预报 。 该机名为downwind.sprl.umich.edu。当你与该机连接时, 你必须指定一接口数字3000,即告诉该机你想使用天气预报服务。
  你所要做的只是在telnet命令后加上该接口数字:
  telnet downwind.sprl.umich.edu 3000
  (注意在地址与接口数字之间留一空格。)若你是在telnet> 提示符之后使用open命令连接,也用同样方式录入接口数字:
  open downwind.sprl.umich.edu 3000
  当你使用接口数字连接远程机时,你所需的程序就会开始运行, 程序运行完后,连接断开,telnet程序自动退出。
  在本章我们是以大多数Unix系统为基础来讲述telnet命令的。而在其他一些系统中,格式可能有所不同。例如,在使用VMS操作系统的VAX计算机上, 你必须在接口数字前加上“/port=”:
  telnet downwind.sprl.umich.edu /port=3000
  若你对自己的计算机有任何不清楚的地方,最好的办法是查阅telnet 的地方资料。进一步探讨接口数字
  在计算机术语中,“接口”这一术语是指两台设备或两个系统之间的连接处。例如,你可以把一台打印机接到计算机背后的接口上,在Unix系统中我们说每个终端都被接到主机上各自的接口中。
  Internet 术语中也使用同样的概念。在第二章我们提到Internet 使用一种叫TCP(传输控制)的协议将数据从一台主机传到另一主机。 任何时候使用TCP 来连接一台Internet主机和另一台主机都必须用接口数字来标识连接类型。事实上, 有一个Internet的正式组织, 即数字管理局制订出一套公认的接口数字,并确保是唯一的数字。
  当缺省时,telnet连接通常使用接口数字23,也就是说, 当你未指明接口数字时,telnet程序自动连接到23号接口。因此,以下两条指令的连接结果相同:
  telnet fuzzball.ucsb.edu
  telnet fuzzball.ucsb.edu 23
  为了使你能与远程机连接,远程机必须运行一个能与你使用的接口进行通信的程序。当该程序在等待连接时,我们称它在该接口上“接收”。
  因此,任何一台能支持Telnet连接的主机内部,都必须有一个在23号接口上接收的程序。也就是说,当你使用telnet程序与一台远程机进行常规连接时, 它与远程机联系并检查在23号接口上是否有程序“接收”。
  只有当你想用Telnet与其它的接口连接时才需要指定一个实际的接口数字。许多Internet系统采用不同的接口数字来提供一些特别服务。
  在前一节,我们用接口数字3000与一台叫downwind.sprl.umich. edu 的远程主机连接。我们这样做是为了使用一个特殊的程序来显示天气预报。为了让连接成功, 必须在远程机内运行该天气预报程序, 且该程序应在 3000号接口上接收。在许多情况下, 一台主机可同时在一个特定接口支持一个以上的连接。例如,上述特殊的天气预报服务器就可以同时支持100 个用户。
  telnet换码符:CTRL-]
  当你与一台远程机对话时, 有一种方法可使你中断工作, 直接向 telnet录入另外的指令。例如,如果你与远程机交流有困难,你可以中断自己的工作对话而转回到telnet状态,再录入quit命令。
  办法就是按一特殊的组合键CTRL-]。即按住CTRL 键后再按下]键。当按下该组合键后,它将送一信号给telnet,暂停远程连接并显示提示符:
  telnet>
  现在你可以随意录入任何telnet指令(后面我们会介绍几条重要的指令)。 有些指令运行后可命令 telnet 自动恢复远程连接, 另外, 在 telnet>提示符之后,你还可随时按回车键来恢复连接。
  象CTRL-]这样的键在技术术语中称为“换码符”。 许多程序都允许使用一个换码符来请求特殊服务。
  在Unix世界中,有一惯例是用“^”字符来表示CTRL键。例如 CTRL-C 就写作^C。
  现在我们可以理解当telnet确定远程连接后屏幕显示的信息: Escape character is''^]''
  该显示提醒你Telnet换码符是CTRL-]。 当然我们也可以将它改为其它字符,但通常没有这个必要。
  使用telnet命令
  任何时候在telnet>提示符之后,你都可以选择使用各种不同的命令。本节我们将介绍一些最重要的命令。首先, 我们还要提醒你: 不录入任何命令而只按回车键,telnet将重新进行远程连接。
  若要显示所有telnet命令的提要,你可以录入?字符:
  ?
  下面是一个典型的提要:
  Commands may be abbreviated,Commands are:(缩写命令,命令是: )
  closeclose current connection(关闭连接)
  displaydisplay operating parameters(显示操作参数)
  modetry to enter line-by-line or character-at-a -timt mode( 试行联网)
  openconnect to a site(接通定点地址)
  quitexit telnet(退出)
  sendtransmit special characters (''send ?''for more)( 传送特殊字符)
  setset operating parameters(''set ?''for more)(设置操作参数)
  statusprint status information(打印即时信息)
  toggletoggle operating parameters (''toggle ?''for more)( 重复操作参数)
  zsuspend telnet(暂停)
  ? print help information(打印帮助信息)
  在所有这些命令中,最重要的几条是:?,open,close,quit 和z。 open命令是告诉telnet连接一台远程计算机。录入open后再加上计算机的具体地址。例如:
  open fuzzball.ucsb.edu
  close命令是终止远程连接但并不中止telnet程序的运行。 下面的例子说明它的用处:
  假设你正在一台远程机上工作而出现了故障。由于某种原因,远程机似乎不接受你的命令。无论你录入什么命令,远程机都没有响应,甚至你也不能退出。一个解决办法就是按CTRL-]键,等待telnet>提示符,然后录入close命令。现在你可以与同一台主机重新建立连接, 当然你也可以与另一台主机连接。
  quit命令用来中止telnet 程序。 若一个远程连接程序仍是运行的, quit将会终止它。在你关闭一个连接或者退出telnet之前,记住首先要在远程主机上退出。大多数主机在连接中断后会自动将你注销,但这样操作会更好。这样可以确保你所运行的任何程序都正常地退出并且所有的数据都已被储存。
  余下的指令都不甚重要(除了我们将在下一节介绍的Z指令),你可能永远也不会用到它们。大多数这些指令是用来控制通信对话的各种技术特征,可能你不会注意到它们。若你想显示send,set或toggle 命令的进一步摘要,你可以在命令后加上一个?字符。例如:
  send ?
  假如你想得到更多关于telnet的技术信息,请参看你所用系统的资料。若你使用的是一台 Unix 计算机, 你可以使用如下命令在联机说明书( online manual)上显示
  telnet条款:
  man telnet
  作业控制
  Unix系统支持一种叫做“作业控制”的功能。它可使你暂停一个程序而工作另一程序,然后再返到第一个程序。这里我们不再详细讨论Unix的功能,但我们将介绍,若你的系统内有作业控制,telnet是如何配合其工作的。
  在telnet提示符下录入z命令(后面再解释命令名的含义)。 它将告诉telnet暂停工作而返回到“shell”(即读入并处理你的命令的程序)。这样你就可以在远程对话过程中录入常规命令了。
  只有当你的shell支持作业控制,z命令才能工作。若你所用的是一种现代shell,如C Shell或者Korn shell,它都可以工作。但假如你用的是较陈旧的Bourne shell,它没有作业控制,z命令也就不能工作。 事实上, telnet 程序自己也“冻结”(freeze)。
  你当前正在运行的程序被称为放在“前台”。当你退出一个程序时,我们称将其放在“后台”。
  当你录入 z 命令, telnet 程序将自己置于后台而让你返回到本地 shell(local shell),这样你就可以随意录入常规的Unix命令。例如,你可以检查你的邮件,显示时间、日期等等。当你想恢复远程连接时,录入命令:
  fg
  该命令告诉Unix系统重新启用被中断的最后一个程序,将其置于前台。现在你就可以恢复远程连接了。
  你可能会想,为什么telnet作业控制命令名是z? 这是因为, 在支持作业控制的Unix系统中,你可以按下susp(暂停)键来将当前程序置于后台。通常该键是CTRL-Z。因此,该telnet命令是以Unix的键命名的。
  若在一段规定的时间内没有进行任何操作,许多主机会自动让你退出。例如, 在某系统中,若你在15分钟内未录入任何东西, 该系统即让你退出。 当你使用Z命令中断telnet对话时应注意这一点。若在规定时间之内你未能恢复远程对话,连接将被自动切断。
  图7-1给了一个这样的例子。
  在例子的开始,我们在一台叫nipper 的计算机上登录。 你可以看到 shell提示符:
  nipper
  在该提示符下我们录入一条telnet命令,与一台地址名为 fuzzball .ucsb.edu的远程计算机连接:
  telnet fuzzball.ucsb.edu
  一旦连接确定,fuzzball即显示标准的Unix登录提示符。我们采用用户标识harley 来登录。注意,为了保密我们录入的口令字并未显示出来。登录完成后,远程机显示一些信息,并后附一个shell提示符:
  fuzzball
  我们现在录入data命令来显示时间及日期。
  nipper telnet fuzzball.ucsb.edu
  Trying...
  Connected to fuzzball.ucsb.edu
  Escape character is ''^]''。
  ULTRIX V4.2A (Rev.47) (fuzzball)
  Welcome to the Fuzzball System
  login: harley
  Password:
  Last login: Sun Apr 18 00:09:58 from nipper.com
  fuzzball date
  Sun Apr 18 00:24:54 CDT 1993
  fuzzball CTRL-]
  telnet> z
  Stopped
  nipper mail
  No mail for harley
  nipper fg
  telnet fuzzball.ucsb.edu
  fuzzball logout
  Connection closed by foreign host。
  nipper
  图7—1使用telnet进行作业控制
  接下来我们想暂时返回到nipper机上检查有无邮件。首先,我们按下 CTRL-], 将远程连接中断并返回到telnet。你将看到提示符:
  telnet>
  接着我们录入z命令,它把 telnet 程序置于后台。 现在我们就看到 nipper的shell
  提示符。再使用mail命令(见第六章)来检查有无电子邮政信息。 现在录入fg命令。 shell的响应是显示被置于后台的最后一条命令(例子中是telnet命令)。然后shell将该程序放回前台, 即自动恢复远程连接。我们将再次看到fuzzball的shell提示符。
  最后,我们录入logout命令从 fuzzball上退出。远程连接自动关闭, telnet程序退出。我们又返回到开始的nipper shell提示符下。
  在Unix系统中,shell是读入并处理你的命令的程序。有许多种Unix shell,你可以任选一种。
  当shell准备接收命令时它将显示一提示符。 若你在多台计算机有帐户,最好能按一定格式规定提示符,使它能包含计算机的名字(这里不作详细阐述)。这样,你的shell 提示符可以随时告诉你正在使用的是哪一个shell。
  依照惯例,提示符的最后一个字符表示你所用shell的类型。 字符(如本例)表明是C—Shell。$字符是表明Korn shell或Bourne shell。

 
 
原创粉丝点击