组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:胡伟(duthuwei huwml@263.net ) 译文发布时间:2001-4-8 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。 Network Working Group P. Deutsch Request for Comments: 1635 A. Emtage FYI: 24 Bunyip Category: Informational A. Marine NASA NAIC May 1994 RFC1635 怎样使用匿名FTP (RFC1635 How to Use Anonymous FTP) 本备忘录状态 This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. 摘要 本文档向Internet新手们介绍了使用文件传输协议(FTP)的相关信息.文中解释了什么是FTP,什么是匿名FTP, 以及什么是匿名FTP档案站点.给出了一个匿名FTP登陆过程的范例.还介绍了为了方便存储与传输而采用的常用 的文件打包方法. 鸣谢 本文档是IETF的互联网FTP档案工作组(IAFA)的工作结果.特别感谢Mark Baushke (Cisco), John Curran (BBN), Aydin Edguer (CWRU),Rafal Maszkowski (Onsala Space Observatory), Marsha Perrott (PREPnet), Bob Peterson (Texas Instruments), Nathan Torkington (Victoria University of Wellington), Stephen Tihor (NYU),感谢他们的宝贵意见和贡献. 目录 什么是FTP? 2 什么是匿名FTP? 3 你需要知道什么信息? 3 一个FTP过程范例 4 不同之处 6 友好的服务器 6 其他FTP命令 6 文件的打包和命名 7 COMPRESS和TAR 11 值得注意的礼节性问题 11 参考文献 12 作者地址 12 什么是FTP? FTP代表的意思是"文件传输协议"[1],一种用在Internet上的协议,属于TCP/IP协议族的一种.文件传输协议使得 文件能够从Internet上的一台计算机(或服务器)传送至另一台.现在已经有很多基于FTP协议开发的应用程序.一 个FTP程序的使用者必须登陆到双方主机,以便在它们之间传输文件. 对于一个在不止一台主机上存有文件的用户来说,使用FTP在主机间程序传送文件是经常的事情.当然,他必须在每 台主机上都有一个帐号和密码来进行登陆. Internet使用者们可以通过各种各样的方式,从档案站点获得数量巨大的信息,并从中受益匪浅.而他们登陆这些 档案站点,大都使用了一个公用的帐号,这就是所谓的"匿名FTP". 什么是一个档案站点? 档案站点是一台存储了大量信息的服务器,非常类似于传统意义上的图书馆.存储在这些互联网服务器上的信息 可以被用户传输到他们本地的机器上.用户们通常用软件来实现这种信息的识别和传输.这样的软件和程序就是 对文件传输协议(FTP)在应用方面的实现. 什么是匿名FTP? 匿名FTP是档案站点允许外界对其档案信息进行一般性访问的一种实现方式.这些站点设定一个特殊的帐号,叫做 "anonymous".这个"anonymous"用户可以对档案站点进行有限制的访问,既操作权限受限制.实际上,这些仅有的 被允许的操作,包括用FTP登陆进站.列出有限的几个目录中的内容,以及下载文件.有些站点还限制用户能看到的 目录内容.请注意,"anonymous"用户通常不会被允许向档案站点上传文件,只允许下载. 通常,这个特殊的匿名用户帐号可以接受任何字串作为其密码,但是,目前普遍采用的是用"guest"或者一个电子 邮件(e-mail)地址作为匿名用户的密码.现在,某些档案站点还明确要求使用电子邮件地址作为匿名用户密码,而 不接受"guest"这样的密码.提供电子邮件地址,有助于让站点的拥有者了解到是哪些人在使用他们的服务. 你需要知道什么信息? 要想得到一个文件,用户需要知道它在哪一台服务器上,还要知道它所在的路径.路径能够指出文件所在的目录(多 数情况下是子目录),以及文件的名字.通常,关于可获取的文件的讨论,并不会特定指出"这个文件可以通过匿名 FTP获得,它位于X站点的Y路径下".尽管如此,如果一个文件被公共地宣布存在于nisc.sri.com的pub/good-stuff 目录,你将很有可能通过匿名FTP得到它. 你还需要知道你的机器使用的字符类型设置是什么,例如ASCII,EBCDIC,或者其它类型.这有助于让你了解你的机 器是否支持传输二进制文件,或者实现二进制传输是否需要其他关键字.例如,TENEX就是需要的. 一般来说,你可以假设ASCII方式传输文本文件时不会出现问题.尽管如此,现在越来越多的信息被以各种各样的 压缩格式存储起来(我们将在本文的后面部分讨论这个问题),了解你自己机器的字符特性是很重要的. 一个FTP过程范例 如果想在一台UNIX或者VMS主机上使用ftp,你应该敲入"ftp"和目标主机的主机名或者IP地址.例如,如果你想访问 NASA网络应用和信息中心的档案服务器,你可以在UNIX提示符下输入下面命令其中的一条: ftp naic.nasa.gov 或者 ftp 128.102.128.6 注意,第一个命令中使用的是完整的域名,第二个命令中使用的是同一台主机的IP地址. 下面是一个完整的例子,它演示的过程是连接到naic.nasa.gov这台主机,并获取文件STD 9,RFC 959,"文件传输 协议(FTP)"[1] 以下几点应该注意: 1. 档案站点的FTP程序给出的每一个应答的前面都有一个数字.这些数字叫做应答代码,他们在RFC 959文档中 有定义. 同时,还应该注意,某些FTP客户端程序(例如,MVS系统)可能不显示应答代码或者远程主机传回的文本应答信 息.他们可能传回自己特定的信息,或者隐藏某些对你来说不重要的信息.为了达到本文的介绍目的,我们将 讨论更为流行的UNIX FTP交互界面. 2. 你键入的密码永远不会显示在你的屏幕上. 3. 你可以"浏览"站上存放的档案,但大多数情况下,用户们已经知道自己想的到的文件的存放路径.在我们现在 举的这个例子中,RFC 959文档存放在这台主机的files/rfc/rfc959.txt路径.首先,我们进入'files/rfc/' 目录(cd files/rfc),然后得到我们想要的特定文件.如果你不知道自己需要文件的文件名,你很可能应该把 一个叫做README或者类似名称(OOREADME.1ST,AAREAD.ME, INDEX, 等等)的文件先下载过来. atlas.arc.nasa.gov% ftp naic.nasa.gov Connected to naic.nasa.gov. 220 naic.nasa.gov FTP server (Wed May 4 12:15:15 PDT 1994) ready. Name (naic.nasa.gov:amarine): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 230----------------------------------------------------------------- 230-Welcome to the NASA Network Applications and Info Center Archive 230- 230- Access to NAIC's online services is also available through: 230- 230- Gopher - naic.nasa.gov (port 70) 230- World-Wide-Web - http://naic.nasa.gov/naic/naic-home.html 230- 230- If you experience any problems please send email to 230- 230- naic@nasa.gov 230- 230- or call +1 (800) 858-9947 230----------------------------------------------------------------- 230- 230-Please read the file README 230- it was last modified on Fri Dec 10 13:06:33 1993 - 165 days ago 230 Guest login ok, access restrictions apply. ftp> cd files/rfc 250-Please read the file README.rfc 250- it was last modified on Fri Jul 30 16:47:29 1993 - 298 days ago 250 CWD command successful. ftp> get rfc959.txt 200 PORT command successful. 150 Opening ASCII mode data connection for rfc959.txt (147316 bytes). 226 Transfer complete. local: rfc959.txt remote: rfc959.txt 151249 bytes received in 0.9 seconds (1.6e+02 Kbytes/s) ftp> quit 221 Goodbye. atlas.arc.nasa.gov% 不同之处 上面这个例子使用了UNIX操作系统的FTP程序,其他操作系统也有自己的FTP程序.使用不同的FTP程序,你操作时 输入的命令可能会不同.但一般情况下,你使用各种FTP程序时都会执行下列步骤: - 登陆进入你的本地主机,启动FTP程序. - 开启与远程服务器的连接(可以使用主机名,也可以用IP地址) - 一旦与远程主机建立连接,以用户名"anonymouse"登陆. - 用"guest",或者按照站点的要求提供登陆密码. - 执行你所需的FTP命令,例如更改目录以获取想要的文件. - 结束时,退出FTP程序,这会关闭你与档案站点的连接. 友好的服务器 最近,很多站点采用了一种新的FTP方式,它允许在用户列出目录内容时,同时显示相关的介绍文字,以帮助和指导 用户.naic.nasa.gov站点上的其他服务就采用了这种方式进行列表.如果这种方式导致你的FTP程序显示混乱,你 可以登陆时在密码的前面加上一个连字符("-"),这样做就可以禁止服务器对你采用交互模式. 其他FTP命令 我们已经介绍了一些常用的FTP命令,还有其他的一些命令.例如,当你登陆进一台远程服务器之后: - 不带任何参数启动FTP程序,然后输入"help",可以让FTP程序显示出可用命令的列表. - 输入"dir"或者"ls",可以查看你进入目录的内容. - 使用"get"命令时,在远程文件名的后面加上本地文件名,这样可以更改下载文件的名字.当远程文件名超出了 你本地系统对文件名的限制时(例如,远程文件名太长),你需要这样做.一个用"get"命令更改文件名的例子: "get really-long-named-file.txt short.txt". - 如果需要传输二进制文件(如,可执行文件,或者其他数据文件,等等),应该首先设置二进制模式.输入"binary" 即可.通常,FTP程序假定文件只使用每个字节中的7位,这正是ASCII编码文件的标准格式.二进制模式可以保 证你传输文件时使用全部八个字节而不会发生错误. 如果你无法确定一个文件是什么格式的,你可能需要使用另一种模式(二进制或者ASCII)把它再传一次,如果 你的第一次猜测是错误的.文件的扩展名可能会给你一个判断的依据.本文后面会对文件扩展名进行介绍. 因为某些机器使用与众不同的格式存放文本文件,所以在你不确定一个文件文件的格式时,你就只好碰运气了. 一个不错的猜测方法是,如果你认为它很可能是文本文件,就先试ASCII模式,否则就试二进制模式,最后再试 ASCII模式. - 用"mget"命令,你可以一次传输多个文件.你需要用远程主机能够辨别的匹配形式文件名,使之依次将每个文 件传回.如果你的本地FTP程序无法将远程文件名转换成本地的合法文件名,或者你需要的文件中,一部分要用 ASCII模式传输,而另一部分必须用二进制模式传输,你将不能使用这项FTP命令. 在你操作系统自带的FTP文档中,有对FTP命令的所有细节和可选项的介绍.你也可以在FTP命令提示符下输入"help" 来获得所有FTP命令和选项的列表. UNIX系统下的FTP文档可以从FTP的在线手册中得到.如果你的UNIX系统安装了这些手册,你可以在UNIX提示符下 输入下面的命令: % man ftp 文件的打包和命名 一些广泛使用的约定,使得FTP档案站点对信息的存储和传输变得更加有效. 通常用三种方式"转换"FTP档案站点存储的信息."压缩"(削减文件的大小)存储的信息,能获取更多的存储空间, 并且减少网络实际传输的数据量."打包"把几个文件并入一个更大的文件中,这样便于维护其内部的目录结构,这 样还能让用户只需一次传输一个大文件,而不是多次传输许多(有时是上百个)小文件. 另外,为了便于传输,二进制文件常常被转化成ASCII格式.这个过程在本文中被成为"格式转化".通常,基于RFC 822 的电子邮件和USENET协议不允许传输"二进制"(8位)数据.因此,二进制格式的文件在传输前,必须转化为可打印的 7位ASCII文件. 在许多操作系统中,有各种命名传统.这可以帮助远程用户根据文件名来判断该文件的格式,从而不需要先把文件 下载过去.下面,我们列出Internet上比较普遍的对压缩,打包和格式转换文件的命名传统.下面列出的信息并不是 详尽无遗漏的,网络上有很多与这些文件格式相关的应用程序和软件. 1) compress/uncompress 以".Z"结束的文件名一般意味着该文件被标准的UNIX Lempel-Ziv"压缩"程序处理过.与之相对应的有一类"解 压缩"程序,它们可以将压缩文件恢复为它们原始的状态."压缩"程序不提供"打包"机制.无论它们原来是什么 格式,压缩后的文件一般都是二进制格式. 2) atob/btoa 进行从ASCII到二进制的格式转换(atob).反之,是从二进制到ASCII的格式转换(btoa).如此转换过的文件经常 以".atob"结尾.不提供打包或压缩机制. 3) atox/xtoa 此标准用于转换二进制格式为可传输的ASCII格式.由于与其他类似的转换机制相比,它更能节省存储空间,被 使用的优先级也相对较高,尽管它并不属于压缩机制的一种.对与从一种格式到另一种格式之间的转换,它更为 有效.这种格式的文件通常有".atox"的后缀文件名. 4) uuencode/uudecode 从二进制到ASCII的转换("uuencode")和相反的转换("uudecode")是一种标准转换方式.它最初使用于UUCP ("Unix to Unix CoPy")电子邮件/USENET系统.没有使用压缩和打包机制.命名传统通常给这样的文件加上 ".uu"后缀文件名. 5) tar/untar 最初,它是一个基于UNIX的工具,用与把多个文件或目录打成一个包,或者从一个包文件中解出打包之前的文件 和目录(tar 是 "Tape ARchive"的缩写).它的标准格式不提供压缩机制.无论打包之前的状态如何,打包之后 生成的文件常常是二进制格式.命名传统通常给一个"tar文件"的文件名中加上".tar"或者"-tar". 6) zip/unzip 通常用于IBM PC环境,这类应用程序通常提供打包和压缩机制.生成的文件常常是二进制格式."zip"应用程序生 成的文件通常是以".zip"为扩展名. 7) arc/unarc 通常用于IBM PC环境,这类应用程序通常提供打包和压缩机制,生成的文件常常是二进制格式.以这种格式存储 的文件经常以".arc"作为扩展文件名. 8) binhex 用于Apple MacIntosh环境,转为binhex的过程提供和btoa一样的打包机制.命名传统对此类文件规定的扩展名 是".hqx". 9) shar 是Bourse shell下的一种文档类型,可以是文本或二进制格式,是一个单独的文件,比原文件大.一旦运行,将生 成它包含的原文件.因为这种格式有被用于不正当途径的危险,因此多数用户使用一个特殊的叫做unshar的工具 来解开这种文件.命名传统对此类文件规定的扩展名是".shar". 10) VMS_SHARE 是DCL的一种文档类型,可以是文本或二进制格式,是一个单独的文件,比原文件大.一旦运行,将生成它包含的 原文件.因为这种格式有被用于不正当途径的危险,运行这种格式的文件之前必须对其仔细检查.命名传统对此 类文件规定的扩展名是".shar". 11) 多卷shar/vms_share文件 有时候,档案文件被分割成多个小的分卷文件,以便于在具有相同的目录结构的档案服务器之间传输.为了达到 这样的目的,文件名的后面经常跟上数字标识(例如, xyz.01 xyz.02 xyz.03 ...或者.01-05).得到所有的分卷 文件之后,你可以把他们在自己的机器上合成一个shar文件或者vms_share文件,然后用上面提到的方法解开还 原为原来的文件. 12) zoo zoo将压缩/解压缩,打包/解包功能集成于一个应用程序之中.许多不同的操作系统下都有支持zoo格式文件的应 用程序,这些操作系统包括Unix, MS-DOS, Macintosh, OS/2, AtariST, 和 VAX VMS.命名传统把zoo程序建立 的文件的扩展名规定为".zoo".Zoo是一种广为流传的文件格式,原因在于它的应用程序在许多操作系统下都是 免费的(包括可执行文件和源代码). 13) gzip/gunzip 免费软件项目计划GNU采纳了不同的zip压缩机理,以替代压缩和解压缩命令.生成的文件是二进制格式."gzip" 程序生成的压缩文件扩展名是".z"或者".gz".gunzip程序也能识别".tgz"和".taz"扩展名的文件,将它们当作 ".tag.z"或".tag.Z"的缩写.同样,gzip程序能够识别并解压缩由gzip,zip,compress和pack命令压缩的文件. GNU项目计划最近开始分发和使用gzip/gunzip应用程序.就在近期,他们把默认的文件后缀.z改为.gz,这样做 一是为了防止人们把.z和.Z混淆,二是为了消除某些对大小写敏感的操作系统(例如MS-DOS)可能会引起的问题. gzip软件是免费分发传播的,而且它已经被移植到大多数的UNIX操作系统下,例如:Amiga,Atari,MSDOS,OS2和 VMS操作系统. 在某些时候,为了生成存储的档案文件,要经过一系列上面介绍的处理过程.考虑到文件要经过不止一次的处理, 因此,为了反映出所经历的各种过程,最终生成的文件名,是以原文件名为基础,在后面依次加上各种步骤所特有的 文件名后缀.例如,有一个过程是先把原文件用"tar"打包,然后"压缩"打包后的文件.如果开始的文件名是"foobar", 最后生成的文件名就是"foobar.tar.Z".由于这是一个二进制文件,为了便于被常用的电子邮件或USENET程序传输, 它还应该被转换为可打印的ASCII格式,例如用"uuencode"实现这个转换,因此最后生成的文件名将是"foobar.tar. Z.uu." 有些操作系统无法处理包含多个点(".")的文件名,可以采用连字符("-"),下划线("_")来代替,或者在目录里的 "read me"文件里有对具体解决办法的详细介绍. Compress和Tar 下面是一个使用"compress/uncompress"和"tar/untar"程序的例子. 假定"补丁"是一个对已有应用程序进行修补和升级的程序.你在一个FTP档案站点找到诸如"patch.tar.Z"的文件. 现在你可以知道,".Z"说明这个文件是用UNIX的"compress"命令压缩的,".tar"说明它被UNIX的"tar"命令处理过. 首先,用匿名FTP把这个文件传到你自己的主机上.要解开这个程序包,你首先应该运行下面的命令对其解压缩: uncompress patch.tar.Z 这会把这个文件的压缩解开,并将其重命名为"patch.tar".你可以执行"tar"命令再把里面每个文件释放出来. 在这个例子中,对patch.tar这个文件,你可以运行如下命令: %tar xvf patch.tar 被打包的文件将从文件"patch.tar"(加"f"参数的作用)释放出来(加"x"参数的作用).由于还使用了"v"参数(交互 模式),文件被释放时会显示其文件名.这个释放过程结束后,原来组成这个"patch"程序的目录和文件就完整地存 在于你现在的工作目录中了. 值得注意的礼节性问题 不是每个支持FTP的站点都允许匿名传输.试图从没有公开FTP服务的站点获得文件的做法是不正确的. 我们应该记住,那些FTP站点的管理员们是本着增进交流的目的开放FTP服务的.他们管理维护站点所付出的努力和 时间很少得到补偿.有些问题用户如果能够自己解决,最好不要要再去给管理增添麻烦. 大多数的档案站点都能很好地发挥它们功能.但用户们应该理解,有时候为了照顾到站点高级用户们的使用方便, FTP站可能会把普通用户的访问时间限制在访问的非高峰时段(一般是站点本地时间的19:00到6:00).对于远在大 洋彼岸的站点,注意到这一点是很重要的.因为连往这样站点的速度通常相对较慢. 另外,有些匿名FTP站点限制了同一时刻的连接数目.如果你在尝试连接这样的站点时,得到了"在线用户过多"的错 误信息,你应该等待一端时间后再做登陆尝试,,最好不要立即重新连接. 为了防止重复存储,你应该与你的团体成员共享使用那些你从匿名FTP站点的到的有用软件.一旦你发现某个软件 确实很有用处,你可以请求你的本地网络管理员,让这个软件在本地共享.这样可以避免每个人都在自己的用户目 录里安装同样的软件包,从而节省了存储空间. 如果你在一个档案站点发现一个有趣的程序,你可以把这个发现告诉其他的人.你不应该把它复制到你自己管理的 档案站点上,除非你愿意保持对它进行同步更新. 参考文献 [1] Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)", STD9, RFC 959, USC/Information Sciences Institute, October 1985. 安全方面的考虑 本文的讨论没有涉及安全方面的问题. 作者地址 Peter Deutsch Bunyip Information Systems 266 Blvd. Neptune Dorval, Quebec, H9S 2L4 Canada Phone: (514) 398-3709 EMail: peterd@bunyip.com Alan Emtage Bunyip Information Systems 266 Blvd. Neptune Dorval, Quebec, H9S 2L4 Canada Phone: (514) 398-3709 EMail: bajan@bunyip.com April N. Marine NASA NAIC M/S 204-14 Ames Research Center Moffett Field, CA 94035-1000 Phone: (415) 604-0762 EMail: amarine@atlas.arc.nasa.gov RFC1635 How to Use Anonymous FTP RFC1635 怎样使用匿名FTP 1 1 RFC文档中文翻译计划