下载
第26章文件传输协议
作者:Anne Carasik
本章内容包括:
• FTP 和T F T P在网络世界中的作用
• 使用F T P传输文件
• 使用T F T P
将文件从一个系统发送到另一个系统是网络功能的重要组成部分。用户可以使用e m a i l完
成这一任务,但要获得较快的传输速度,则可以使用文件传输协议,它包括文件传输协议
(File Transfer Protocol,F T P )和普通文件传输协议( Trivial File Transfer Protocol,T F T P )。远
程拷贝将在第2 8章中讨论。
26.1 FTP和TFTP在网络世界中的作用
大多数站点都使用We b在服务器间传送文件,文件传输协议F T P和T F T P已不如过去那么
流行。然而,并不是所有系统都运行了We b服务器。因此,在文件传输时,仍需要使用F T P和
T F T P。
即使安装了We b,将文件传送到服务器也比较困难。许多We b命令不如F T P命令健壮,不
支持许多开关和功能。
许多F T P应用仍被广泛使用。这些命令行方式的应用允许用户在没有安装We b服务器的系
统间传输文件。大多数U N I X和L i n u x系统,均安装了F T P应用。
因为大多数F T P应用都不基于图形界面(有一些应用包含图形接口),本章使用U N I X系统
中基于命令行方式的F T P应用程序以便更好地说明F T P协议。
虽然T F T P不如F T P常见,但本章还是对它进行了一定的阐述。
26.2 使用FTP传输文件
F T P是I n t e r n e t和I P网络上传输文件的
通用方法。在万维网( W W W )出现以前,
用户使用命令行方式传输文件,最通用的
应用程序是F T P。虽然,目前大多数用户
选择使用E m a i l和We b传输文件,以代替命
令行方式的接口,但是F T P仍然被使用。
F T P是T C P / I P应用,它工作在O S I模
型的第七层, T C P模型的第四层上,在
RFC 959中定义。F T P使用T C P传输而不
是U D P。F T P位于O S I和T C P模型的应用
层(见图2 6 - 1 )。图26-1 FTP在OSI和TCP模型中的设置
应用层
传输层
网络层
物理层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
T C P模型
F T P
F T P
O S I模型
起初, F T P是A R PA N E T网络中计算机间的文件传输协议, A R PA N E T是美国国防部组建
的老网络,于1 9 6 0~1 9 8 0年使用。在那时, F T P的主要功能是在主机间高速可靠地传输文件。
目前F T P仍然保持其可靠性,即使在今天,它还允许文件远程存取。
这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行
We b服务器,需要从远程主机上取得H T M L文件和C G I程序在本机上工作,他需要从远程存储
站点获取文件(远程站点也需安装We b服务器)。
当用户完成工作后,可使用F T P将文件传回到We b服务器。采用这种方法,用户无需使用
Te l n e t登录到远程主机进行工作。
26.2.1 FTP连接
当用户建立F T P连接时,将与两个端
口建立联系:端口2 0和2 1。这两个端口有
不同的功能—端口2 0是数据端口, 2 1是
控制端口。
图2 6 - 2说明F T P客户端是如何与远程服
务器F T P守护进程建立连接的。
1. 控制端口
F T P控制端口用于交换命令信息及对命令的响应信息。其工作过程类似于军官和新兵。军
官发出命令,新兵迅速响应命令。
在F T P中,如果用户发送命令如get this file,其响应如下:
控制端口的命令以P O RT开始,这表示命令通过控制端口2 1而不是数据端口进行传输。命
令也允许通过设置被动方式( PA S V )发送到数据端口。
控制连接用于显示数据的状态、所处的模型、传输状态及数据传输总量。控制连接使用
Te l n e t协议,在RFC 495中定义。
PA S V命令允许原始F T P连接,它不使用用户熟悉的命令。PA S V连接仅使用一个端口进行
文件传输(端口2 0 ),而不像其他连接那样使用端口2 0和2 1。
用户也可以使用相同的命令进行PA S V连接,但是,使用控制命令的“ c o o k e d”连接更加
安全并且便于管理,因为管理员可以设置用户可以使用的命令。
2. 数据端口
数据端口是F T P数据文件发送到F T P服务器( f t p d )时使用的端口。
注意FTP服务器,ftpd是UNIX系统服务器守护进程,它可能与其他操作系统不同。
与控制端口不同,控制端口是用户发送命令的端口,数据端口是用户传输文件的端口,
一般为端口号为2 0。
与数据端口的连接一般称为被动( p a s s i v e )连接,它有自己的一组命令。所有数据连接均知
第2 6章文件传输协议使用287
下载
图26-2 FTP客户端与FTP服务器建立连接的过程
端口2 1
端口2 0
F T P客户端
控制端口
数据端口
1 0 2 4以上的任
何端口
F T P服务器
道文件的模式、文件类型和文件传输量。用户还可以仅传送文件的一部分,虽然并没有太多
很实际的应用要求这么做。
一般情况下,命令通过控制端口发送,但用户也可直接使用被动F T P命令控制数据端口。
被动F T P命令
PA S V命令不直接被用户使用,其用户接口为P O RT命令。虽然不是每一台F T P服
务器均支持被动命令(RFC 11 2 3 ),但大多数服务器都支持RFC 11 2 3。
用户可以通过t e l n e t到端口2 1调用这些命令:
然后将会看到:
接着,所有用户敲入的命令都是被动命令。
现在,P W D命令将显示用户当前路径:
如果用户使用‘C D U P’被动F T P命令,将进入到用户当前目录的上一级目录。
现在可用P W D显示当前路径:
用户可以看到其他用户的目录。
在每个用户命令前并未加上P O RT命令,因为命令并未使用控制端口,而是直接访问了数
据端口。
26.2.2 使用FTP客户端建立连接
使用F T P命令打开连接,在F T P命令后加入主机名即可。F T P的语法格式如下:
ftp [开关] [主机名称]
表26-1 ftp命令行属性
属性功能
- d 启用调试功能
- i 关闭提示功能
- n 关闭自动登录
- v 显示远程服务器响应
- g 关闭通配符功能
288使用第七部分使用T C P / I P应用
下载
例如,用户需要与f t p . t i g e r l a i r. c o m建立连接,可以敲入如下命令:
tigerlair:/home/stripes -ftp ftp.example.org
如果用户需要F T P客户端完成平时不常用的任务,可以使用一些命令属性。表2 6 - 1列出了
f t p客户方可以使用的命令属性。
当用户需要使用F T P客户方关闭自动登录功能( F T P客户端自动提示用户名及登录口令),
并且在多文件传输时不显示提示功能,可用以下命令:
ftp -i -n ftp.example.org
当我们不使用任何命令属性时,即使用最初的f t p命令:
tigerlair:/home/stripes-ftp ftp.example.org
将获得以下消息:
由以上消息可以看到,登录到远程节点的缺省用户名为本地帐号名(在本例中为s t r i p e s ),
如果登录用户名不同,必须敲入正确的用户名:
注意不要使用e x a m p l e . o rg作为F T P站点。它仅用于示例说明。如果用户需要使用F T P
客户方而不愿登录到远程站点,可以使用FTP客户端连接本地主机。
用户将被提示输入口令,确认口令输入正确。口令不在屏幕上显示,甚至敲入时不显示
星号。
下面,用户将获得F T P提示符,如下:
f t p >
提示符表明用户可以输入命令传输文件,这通常称为命令解释器(command interpreter)。
1. FTP 命令解释器
f t p命令解释器使用户可与F T P客户方进行交互,它使用户可以通过命令打开/关闭特定连
接,传输文件、改变传输文件类型等,而不需要断开F T P。
表2 6 - 2列出了用户在交互模式下使用F T P时可使用的命令。
表26-2 交互式模式下的F T P命令
命令功能
!<local command> 在本地系统运行命令
$ < m a c r o > 运行宏
account [password] 应用其他用户名/口令以获取额外的对远程系统的访问权限
a s c i i 将文件传输模式设为A S C I I
append localfile [remotefile] 将本地文件添加到远程文件中(文件在远程计算机中)
b e l l 文件传输完成后响铃
第2 6章文件传输协议使用289
下载
(续)
命令功能
b i n a r y 将文件传输模式设为二进制方式
bye, exit 退出,结束远程连接
c a s e 打开c a s e功能
close, disconnect 关闭远程连接
cd <directory> 改变远程系统目录名
cd up 进入父目录
debug <level> 设置调试级别
d i r 打印路径名
delete <filename> 在远程计算机中删除文件
get <filename> 将文件从远程系统下载到本地系统
g l o b 在文件传输时使用通配符
h a s h 每传输1 0 2 4字节打印一个“#”
h e l p 打印帮助文件
l c d < d i r e c t o r y > 改变本地系统路径
l s 打印远程主机目录
l p w d 打印本地主机工作路径
macdef <macroname> 定义宏
mdel <filename (s)> 删除多个宏文件
mdir <filename (s)> 打印多个文件的路径
mget <filename (s)> 将多个文件从远程系统下载到本地系统
mkdir <directory> 在远程计算机上创建路径
mput <filename (s)> 将多个文件上载到远程计算机
open <site> 打开到< s i t e >的连接
p r o m p t 交互式提示
put <filename> 将文件上载到远程计算机
p w d 显示当前工作路径
user [user] [password] 登录到远程计算机系统
v e r b o s e 激活冗余模式
通过对上述命令的运用,用户可以使用F T P完成多种功能,为了使用户有一个列形象具体
的认识,下面一小节将列举一个具体的F T P会话实例。
2. FTP 会话示例
并非所有的F T P会话均包含在以下示例之内,示例仅对用户使用F T P经常碰到的情况加以
说明。首先,用户需要与远程F T P站点建立连接。
至此,用户可以访问远程节点。当需要查看远程节点的文件时,有两种列出文件的方法,
290使用第七部分使用T C P / I P应用
下载
l s和d i r。注意F T P列的是U N I X系统。下面是l s命令的输出:
d i r命令的输出如下:
d i r命令不仅显示出l s命令列举出的文件的更详细信息,而且它还列出了U N I X的隐含文件
(以.开头的文件)。
注意在U N I X系统中,l s和d i r均可列举文件,但d i r可显示文件的信息更为详细,包括
最近修改时间、文件所有者、权限和大小等。如果用户F T P登录到N T或Wi n d o w s系统,
ls将不能工作。仅dir可用来列举文件,但它不能列出文件的详细信息。
列出系统当前目录中的文件后,可以从远程系统获取文件并将它存放入本地系统。用户
第2 6章文件传输协议使用291
下载
在下载文件前,可以先检查本地工作路径,以确定文件被下载在正确的位置。
如果用户想要将文件下载到H o m e目录,则不需做任何修改就可下载文件。
从远程系统下载到本地计算机的文件名将不会发生改变,除非用户指定新的文件名。要
修改文件名,需使用以下语法格式:
get 远程文件名用户指定的本地文件名
因此,当用户需要下载另一个名为n o t e s的文件时,需将文件更名。
在本地系统中,用户已有一个文件名为n o t e s,因此,用户必须修改本地文件名;或下载
时修改远地文件名。本例中,我们将第二个下载的文件更名为n o t e s 2。用户可从F T P输出中看
到下载文件的本地文件名和远程文件名。
上述两个n o t e s文件均为文本文件。用户可以看到F T P使用A S C I I方式传输文本文件。它确
保传输的文件为文本文件。如果需要传输二进制文件,需要修改文件类型:
类型I表示二进制,类型A表示A S C I I。二进制文件包括可执行文件、压缩文件和库文件。
基本上,二进制文件是不可读文件。
用户可将文件类型设为二进制文件类型,以传输二进制文件。
注意, F T P会显示文件传输方式。如果用户需要将传输类型设为A S C I I方式,只需敲入
a s c i i即可。
292使用第七部分使用T C P / I P应用
下载
当用户下载单个文件时,采用上述方法,当用户需要一次下载多个文件呢?
例如,用户需要下载以“ s”开头的所有文件,可能会尝试使用s *,但F T P将显示失败信
息。
当用户需要F T P识别通配符时,需要使用m g e t命令下载多个文件。
当用户使用m g e t或m p u t下载或上载多个文件时,缺省情况下, F T P将询问用户文件是否
需要下载或上载。当用户需要下载或上载时,敲入“ y”。
每下载一个文件都需敲入“ y”,是一件十分枯燥的工作,尤其当下大量文件时。为了除
去提示信息,可敲入p r o m p t。
除去提示信息后,用户敲入相同的命令,将不需每下载一个文件均需确认。因此,文件
第2 6章文件传输协议使用293
下载
传输速度快得多。
这比使用提示模式快捷得多。
警告如果用户打算覆盖一个文件(在上述例子中,使用相同文件),F T P将不会在覆盖
之前收到警告信息。
现在,我们已经示例了如何下载文件,下面举例说明如何将文件上载到远程服务器。上
载文件需要使用命令p u t。
它将本地文件传送到远程服务器。如果用户需要一次传输多个文件,可使用m p u t命令。
294使用第七部分使用T C P / I P应用
下载
*
与m g e t类似,用户首先需要关闭提示功能,以避免每传输一个文件都要敲入“ Y”或“N”
确认。
注意在与传输文件相关的命令(get、put或delete)前加上“m”可对多个文件进行操作。
如果用户需要删除远程系统上的文件(用户有权限完成此操作),用户可以非常简便地完成
删除文件的任务。d e l e t e命令专门用于删除文件,它还可简写为d e l。
如果用户需要一次删除多个文件,可使用m d e l。同时, p r o m p t命令对于m d e l的作用与
m g e t或m p u t相同。
警告与覆盖文件类似,用户在远程系统删除文件时也不会得到警告信息。
用户不仅可以在本地系统与远程系统间进行文件复制、删除操作,而且也可以创建和删
除目录。m k d i r命令用于创建一个目录。
用户也可以在不同的目录间移动。与U N I X和Wi n d o w s命令行(其命令解释器称为D O S )相
似,可以使用c d改变当前目径。
如果用户不知道当前路径或需要查看当前所处的路径,可以使用p w d命令。
如果用户需要对大文件进行传输,可能需要使能h a s h,它将显示F T P的工作状态,即使
F T P空闲几分钟甚至数小时。激活这一功能,仅需敲入h a s h。
第2 6章文件传输协议使用295
下载
如果用户在h a s h模式下p u t或g e t一个文件,可以看到文件传输的速度。
现在,我们已经完成了对一个站点的操作,如果不想退出F T P而只想关闭连接,可以敲入
c l o s e命令,它仅断开与远程系统的连接但仍处在F T P命令解释器中。
注意我们仍有ftp>提示符,当需要打开到另外一主机的连接时,使用open命令:
现在,已经处在另外一个系统中。用户可以使用相同的命令,但得到的信息将与上一个
系统不同。
完成了对F T P的操作后,可以敲入q u i t或b y e命令。
26.2.3 FTP安全
虽然F T P可以对文件进行访问,但没有一个用户会允许别人在自己的系统制造混乱。F T P
可以实现基本的访问控制,但它不能解决F T P基本的安全问题。
F T P一直使用明文认证。这意味着用户的口令未经加密就在网上传输,这是一个很严重的
安全问题。不恰当的匿名F T P服务器的配置将使用户进入他们不能访问的目录, F T P服务需要
两个端口而不像大多数T C P / I P网络服务仅需一个端口也是F T P的一个安全隐患。
1. /etc/ftpusers文件
如果用户需要控制F T P服务器上客户对特定帐号的访问权限,可以使用/ e t c / f t p u s e r s文件。
文件中列出了不能使用f t p的用户名。而且它不限制用户对其他网络应用如r s h、t e l n e t和S e c u r e
shell (SSH)的访问。
296使用第七部分使用T C P / I P应用
下载
一个合理的/ e t c / f t p u s e r s文件如下:
它限制管理员帐号及相关帐号不能使用F T P。
2. 使用. n e t r c
. n e t r c文件用于F T P客户自动登录到远程主机,该文件位于用户根目录,并且可在不需要
键入用户名和口令的情况下进入不同的系统。该文件的权限为7 0 0 (除了所有者外,没有人可
读/写该文件)。
. n e t r c文件的格式如下:
machine <机器名> login<用户名> password<用户口令>
如果用户要设置到e x a m p l e . o rg的访问,文件如下:
. n e t r c通常用于登录帐号,因此它可以很安全地用于匿名F T P站点,它仅需要用户的电子
邮件地址,而无需用户口令。同时,匿名F T P站点仅向用户提供公用信息——即无需口令就可
获取的信息。
警告在当今社会,设置. n e t r c文件不是一个好主意。它包含可被任何人获取的口令,
因此,帐号可被轻易地破解。
3. 使用不同的f t p客户端软件
前述的案例中,我们使用的是操作系统如U N I X、Wi n d o w s或V M S自带的标准F T P客户端
软件。此外,因用户使用的操作系统不同, F T P客户端软件的功能也略有差异。下面简单介绍
这些差异。
图26-3 激活的xftp会话
第2 6章文件传输协议使用297
下载
4. UNIX
在U N I X系统中,有两个不同的F T P客户端软件可以提供比标准F T P客户软件更复杂的功
能:n c f t p和x f t p (见图2 6 - 3 )。
n c f t p自动登录匿名f t p,因此,用户无需敲入口令(可能是用户邮件地址)或不必担心保
存. n e t r c文件。同时,它也提供一些基于文本的图形界面,以显示文件传输速度及其他命令行
编辑功能。n c f t p可从h t t p : / / w w w.ncftp.com 中获得。
x f t p软件提供图形化用户接口,它使用户无需与命令解释器直接接触即可完成F T P传输,
图2 6 - 3显示x f t p窗口。x f t p软件可从h t t p : / / w w w.llnl.gov/ia/xdir_xftp/xftp.html 中获得。
5. Wi n d o w s和M a c i n t o s h客户端软件
有大量F T P软件可用于Wi n o d w s和M a c i n t o s h平台,其中大部分都有与x f t p类似的图形界面,
它允许用户在远程系统和本地计算机间拖放文件。
同时,也有一些F T P客户端软件支持命令行方式。其他的客户端软件将激活浏览器,基于
浏览器的F T P仅能提供部分F T P功能。
表2 6 - 3列出了部分可用于Wi n d o w s和M a c i n t o s h的F T P客户端软件。
表26-3 支持Wi n d o w s和M a c i n t o s h平台的F T P客户端软件
F T P客户端站点
WS-FTP Pro h t t p : / / w w w. i p s w i t c h . c o m
f e t c h h t t p : / / w w w. d a r t m o u t h . e d u / p a g e s / s o f t d e v / f e t c h . h t m l
c u t e F T P h t t p : / / w w w. c u t e f t p . c o m
F T P P r o 2 0 0 0 h t t p : / / w w w. f t p p r o . c o m
E m a i l
无论相信与否,用户可以通过电子邮件使用F T P客户端。F T P m a i l可使得仅能通过电子邮
件访问互联网的用户使用F T P。这种方法可使用户不需直接使用F T P而只需通过e m a i l就可从
F T P站点获取文件。
互联网上的某些服务器为用户提供F T P m a i l服务。这些服务器提供F T P m a i l帐号,用户可
将包含F T P请求的消息发送到F T P m a i l帐号( F T P请求使用与F T P命令解释器类似的命令)。
F T P会话通过发送的F T P请求进行,结果发送到用户电子邮件地址。如果F T P m a i l连接
F T P服务器失败,返回给用户的邮件将解释失败的原因。
许多站点提供F T P m a i l服务,任何可以使用电子邮件的用户均可使用这些服务。建议大家
最好使用本国站点的服务。
表2 6 - 4列出了部分F T P m a i l服务器及其所处的国家。
表26-4 FTPmail服务器
298使用第七部分使用T C P / I P应用
下载
服务器国家
ftpmail@grasp.insalyon.fr 法国
ftpmail@doc.ic.ac.uk 英国
f t p m a i l @ d e c w r 1 . d e c . c o m 美国
26.2.4 FTP服务器及守护进程
理解F T P客户端的工作过程,将有助于用户理解F T P服务器及其工作过程。因为F T P由服
务器方控制,所以用户需要了解F T P服务器基本工作流程。
1. UNIX和L i n u x
在U N I X和L i n u x系统中, F T P守护进程i n . f t p d通常由I n t e r n e t超级守护进程i n e t d运行。
i n e t d监听连接,它可以更安全地管理连接。i n e t d更详细的信息见3 5章。
因此,在/ e t c / i n e t d . c o n f文件中,包含如下行:
f t p stream tcp nowait root / u s r / s b i n / i n . f t p d . i n . f t p d
这一行启动i n . f t p d,用户可以添加一些属性如- d调试、- l记录日志及- t修改活跃时间域等。
2. Windows NT
同时也存在一些可运行于N T、Windows 95和Windows 98的F T P服务器,包括FTP Servu
(可从h t t p : / / w w w. f t p s e r v - u . c o m下载)和War FTP daemon(可从h t t p : / / w w w. j g a a . c o m / t f t p d . h t m下
载)。
26.2.5 匿名FTP访问
即使当前We b站点蓬勃发展,匿名F T P站点仍然是I n t e r n e t的重要组成部分。在众多的匿名
F T P站点上,我们可以获取各种各样的信息、文件和软件。其中最著名的匿名F T P站点之一为
w u a r c h i v e . w u s t l . e d u。
大量匿名F T P站点对所有用户公开文件访问权,它们旨在发布软件和信息,因而免去了需
要用户名和口令所带来的不便。
1. 匿名F T P服务器
匿名F T P服务器是提供文件访问的公用站点。在We b出现前,g o p h e r (菜单驱动的互联网应
用)和F T P是人们从互联网获取信息和文件的主要手段。
因此,匿名F T P日益流行,至今仍有许多匿名F T P站点运行。匿名F T P站点需要单独的环
境和硬盘且完全与系统文件分离。我们通常称之为c h r o o t e d环境。
例如, U N I X系统有/ u s r和/ e t c目录。U N I X系统中的匿名F T P服务器也包含这两个目录。
并且,存储于U N I X系统/ e t c目录下的文件与匿名F T P服务器中/ e t c下的文件不能相同。
系统文件不能存贮在匿名F T P目录下。F T P的运行环境一定要与系统的运行环境彻底分
开。
2. 匿名F T P客户端
为了便于使用,匿名F T P允许用户使用“a n o n y m o u s”或f t p作为用户名,邮件地址作为口
令(例如:stripes @ tigerlair. c o m )。
匿名F T P也控制用户的访问权限。通常用户仅能访问公用目录下的文件,而不能访问系统
及配置文件,这可使系统更加安全。
以下示例说明一个匿名F T P的会话过程:
第2 6章文件传输协议使用299
下载
因为We b的日益普及,许多匿名F T P站点可通过We b浏览器直接访问而无需F T P客户软件。
提示用户在敲入口令时,不需要输入整个邮件地址,仅需要键入:
用户名@
例如,用户可敲入:
stripes @
代替:
stripes @ tigerlair. c o m
26.3 使用TFTP
在网络发展早期,T F T P是局域网传输文件的通用方式。T F T P是普通文件传输协议,它也
用于文件传输,缺省端口为6 9。
T F T P不需要任何形式的用户登录认证, T F T P有共享安全问题。目前,它常用于工作站向
路由器发送路由器访问列表及无盘工作站的启动中。
警告除非特别需要,否则不要启动T F T P服务,因为如果用户疏忽,它可带来许多安
全问题,包括允许客户访问口令文件。
T F T P目前已开发出第2版,在RFC 1350中定义。与F T P不同, F T P使用T C P而T F T P使用
U D P。因此,T F T P简单并且紧凑。与F T P类似,T F T P也由i n e t d启动。
每一个客户和服务器间的报文交换均开始于客户向服务器发送的文件读/写请求。
300使用第七部分使用T C P / I P应用
下载
文件以o c t e t (八进制)或n e t a s c i i方式传输。在n e t a s c i i方式下,数据为以返回符加上行结束
符( C R / L F )结尾的A S C I I码文本。
26.3.1 FTP与TFTP的区别
T F T P的功能比F T P少。例如,T F T P不能使用通配符,不能创建和删除目录,不能删除文
件。同时,它也不提供用户名与口令认证,其访问由其他手段限制(TCP Wr a p p e r等)。
因为T F T P的简洁性,所以路由器使用T F T P传输访问列表及路由配置信息。因为路由器无
需登录(除非用户运行TA C A C S +或R A D I U S实施访问控制),在已有文本上进行编辑远比一行
行敲入简单。
26.3.2 TFTP命令
如果用户熟悉F T P,T F T P将不难理解。T F T P命令较少,表2 6 - 5中列出了所有命令。其中
大部分与F T P类似。
表26-5 TFTP命令
命令描述
a s c i i 将传输模式设为n e t a s c i i (文本)
b i n a r y 将传输模式设为o c t e t (非文本)
c o n n e c t 连接远程T F T P
m o d e 设置文件传输模式
p u t 发送文件到远程站点
g e t 从远程站点下载文件
q u i t 退出T F T P
rexmt <value> 设置每个报文的超时值
s t a t u s 显示服务器的状态
timeout <seconds> 设置传输超时(秒)
t r a c e 打开报文路径
v e r b o s e 激活冗余模式
26.4 小结
文件传输对于在T C P / I P网络不同系统间传输文件至关重要。T C P / I P使用文件传输协议
( F T P )和普通文件传输协议( T F T P )作为T C P / I P网络发送文件的重要方式。
使用T C P传输文件的F T P需要打开两个端口:端口2 0为数据端口,端口2 1为控制端口。数
据端口传输文件,控制端口用于传输命令和消息。
T F T P使用U D P传输文件,它仅需要端口6 9。T F T P远比F T P简单,其功能也较F T P少。
T F T P通常用于路由器管理访问列表和配置信息。它也用于无盘工作站的启动。
在下一章,我们将讨论Te l n e t,学习另一种类型的交互式T C P / I P网络服务。
第2 6章文件传输协议使用301
下载
第26章文件传输协议
作者:Anne Carasik
本章内容包括:
• FTP 和T F T P在网络世界中的作用
• 使用F T P传输文件
• 使用T F T P
将文件从一个系统发送到另一个系统是网络功能的重要组成部分。用户可以使用e m a i l完
成这一任务,但要获得较快的传输速度,则可以使用文件传输协议,它包括文件传输协议
(File Transfer Protocol,F T P )和普通文件传输协议( Trivial File Transfer Protocol,T F T P )。远
程拷贝将在第2 8章中讨论。
26.1 FTP和TFTP在网络世界中的作用
大多数站点都使用We b在服务器间传送文件,文件传输协议F T P和T F T P已不如过去那么
流行。然而,并不是所有系统都运行了We b服务器。因此,在文件传输时,仍需要使用F T P和
T F T P。
即使安装了We b,将文件传送到服务器也比较困难。许多We b命令不如F T P命令健壮,不
支持许多开关和功能。
许多F T P应用仍被广泛使用。这些命令行方式的应用允许用户在没有安装We b服务器的系
统间传输文件。大多数U N I X和L i n u x系统,均安装了F T P应用。
因为大多数F T P应用都不基于图形界面(有一些应用包含图形接口),本章使用U N I X系统
中基于命令行方式的F T P应用程序以便更好地说明F T P协议。
虽然T F T P不如F T P常见,但本章还是对它进行了一定的阐述。
26.2 使用FTP传输文件
F T P是I n t e r n e t和I P网络上传输文件的
通用方法。在万维网( W W W )出现以前,
用户使用命令行方式传输文件,最通用的
应用程序是F T P。虽然,目前大多数用户
选择使用E m a i l和We b传输文件,以代替命
令行方式的接口,但是F T P仍然被使用。
F T P是T C P / I P应用,它工作在O S I模
型的第七层, T C P模型的第四层上,在
RFC 959中定义。F T P使用T C P传输而不
是U D P。F T P位于O S I和T C P模型的应用
层(见图2 6 - 1 )。图26-1 FTP在OSI和TCP模型中的设置
应用层
传输层
网络层
物理层
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
T C P模型
F T P
F T P
O S I模型
起初, F T P是A R PA N E T网络中计算机间的文件传输协议, A R PA N E T是美国国防部组建
的老网络,于1 9 6 0~1 9 8 0年使用。在那时, F T P的主要功能是在主机间高速可靠地传输文件。
目前F T P仍然保持其可靠性,即使在今天,它还允许文件远程存取。
这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行
We b服务器,需要从远程主机上取得H T M L文件和C G I程序在本机上工作,他需要从远程存储
站点获取文件(远程站点也需安装We b服务器)。
当用户完成工作后,可使用F T P将文件传回到We b服务器。采用这种方法,用户无需使用
Te l n e t登录到远程主机进行工作。
26.2.1 FTP连接
当用户建立F T P连接时,将与两个端
口建立联系:端口2 0和2 1。这两个端口有
不同的功能—端口2 0是数据端口, 2 1是
控制端口。
图2 6 - 2说明F T P客户端是如何与远程服
务器F T P守护进程建立连接的。
1. 控制端口
F T P控制端口用于交换命令信息及对命令的响应信息。其工作过程类似于军官和新兵。军
官发出命令,新兵迅速响应命令。
在F T P中,如果用户发送命令如get this file,其响应如下:
控制端口的命令以P O RT开始,这表示命令通过控制端口2 1而不是数据端口进行传输。命
令也允许通过设置被动方式( PA S V )发送到数据端口。
控制连接用于显示数据的状态、所处的模型、传输状态及数据传输总量。控制连接使用
Te l n e t协议,在RFC 495中定义。
PA S V命令允许原始F T P连接,它不使用用户熟悉的命令。PA S V连接仅使用一个端口进行
文件传输(端口2 0 ),而不像其他连接那样使用端口2 0和2 1。
用户也可以使用相同的命令进行PA S V连接,但是,使用控制命令的“ c o o k e d”连接更加
安全并且便于管理,因为管理员可以设置用户可以使用的命令。
2. 数据端口
数据端口是F T P数据文件发送到F T P服务器( f t p d )时使用的端口。
注意FTP服务器,ftpd是UNIX系统服务器守护进程,它可能与其他操作系统不同。
与控制端口不同,控制端口是用户发送命令的端口,数据端口是用户传输文件的端口,
一般为端口号为2 0。
与数据端口的连接一般称为被动( p a s s i v e )连接,它有自己的一组命令。所有数据连接均知
第2 6章文件传输协议使用287
下载
图26-2 FTP客户端与FTP服务器建立连接的过程
端口2 1
端口2 0
F T P客户端
控制端口
数据端口
1 0 2 4以上的任
何端口
F T P服务器
道文件的模式、文件类型和文件传输量。用户还可以仅传送文件的一部分,虽然并没有太多
很实际的应用要求这么做。
一般情况下,命令通过控制端口发送,但用户也可直接使用被动F T P命令控制数据端口。
被动F T P命令
PA S V命令不直接被用户使用,其用户接口为P O RT命令。虽然不是每一台F T P服
务器均支持被动命令(RFC 11 2 3 ),但大多数服务器都支持RFC 11 2 3。
用户可以通过t e l n e t到端口2 1调用这些命令:
然后将会看到:
接着,所有用户敲入的命令都是被动命令。
现在,P W D命令将显示用户当前路径:
如果用户使用‘C D U P’被动F T P命令,将进入到用户当前目录的上一级目录。
现在可用P W D显示当前路径:
用户可以看到其他用户的目录。
在每个用户命令前并未加上P O RT命令,因为命令并未使用控制端口,而是直接访问了数
据端口。
26.2.2 使用FTP客户端建立连接
使用F T P命令打开连接,在F T P命令后加入主机名即可。F T P的语法格式如下:
ftp [开关] [主机名称]
表26-1 ftp命令行属性
属性功能
- d 启用调试功能
- i 关闭提示功能
- n 关闭自动登录
- v 显示远程服务器响应
- g 关闭通配符功能
288使用第七部分使用T C P / I P应用
下载
例如,用户需要与f t p . t i g e r l a i r. c o m建立连接,可以敲入如下命令:
tigerlair:/home/stripes -ftp ftp.example.org
如果用户需要F T P客户端完成平时不常用的任务,可以使用一些命令属性。表2 6 - 1列出了
f t p客户方可以使用的命令属性。
当用户需要使用F T P客户方关闭自动登录功能( F T P客户端自动提示用户名及登录口令),
并且在多文件传输时不显示提示功能,可用以下命令:
ftp -i -n ftp.example.org
当我们不使用任何命令属性时,即使用最初的f t p命令:
tigerlair:/home/stripes-ftp ftp.example.org
将获得以下消息:
由以上消息可以看到,登录到远程节点的缺省用户名为本地帐号名(在本例中为s t r i p e s ),
如果登录用户名不同,必须敲入正确的用户名:
注意不要使用e x a m p l e . o rg作为F T P站点。它仅用于示例说明。如果用户需要使用F T P
客户方而不愿登录到远程站点,可以使用FTP客户端连接本地主机。
用户将被提示输入口令,确认口令输入正确。口令不在屏幕上显示,甚至敲入时不显示
星号。
下面,用户将获得F T P提示符,如下:
f t p >
提示符表明用户可以输入命令传输文件,这通常称为命令解释器(command interpreter)。
1. FTP 命令解释器
f t p命令解释器使用户可与F T P客户方进行交互,它使用户可以通过命令打开/关闭特定连
接,传输文件、改变传输文件类型等,而不需要断开F T P。
表2 6 - 2列出了用户在交互模式下使用F T P时可使用的命令。
表26-2 交互式模式下的F T P命令
命令功能
!<local command> 在本地系统运行命令
$ < m a c r o > 运行宏
account [password] 应用其他用户名/口令以获取额外的对远程系统的访问权限
a s c i i 将文件传输模式设为A S C I I
append localfile [remotefile] 将本地文件添加到远程文件中(文件在远程计算机中)
b e l l 文件传输完成后响铃
第2 6章文件传输协议使用289
下载
(续)
命令功能
b i n a r y 将文件传输模式设为二进制方式
bye, exit 退出,结束远程连接
c a s e 打开c a s e功能
close, disconnect 关闭远程连接
cd <directory> 改变远程系统目录名
cd up 进入父目录
debug <level> 设置调试级别
d i r 打印路径名
delete <filename> 在远程计算机中删除文件
get <filename> 将文件从远程系统下载到本地系统
g l o b 在文件传输时使用通配符
h a s h 每传输1 0 2 4字节打印一个“#”
h e l p 打印帮助文件
l c d < d i r e c t o r y > 改变本地系统路径
l s 打印远程主机目录
l p w d 打印本地主机工作路径
macdef <macroname> 定义宏
mdel <filename (s)> 删除多个宏文件
mdir <filename (s)> 打印多个文件的路径
mget <filename (s)> 将多个文件从远程系统下载到本地系统
mkdir <directory> 在远程计算机上创建路径
mput <filename (s)> 将多个文件上载到远程计算机
open <site> 打开到< s i t e >的连接
p r o m p t 交互式提示
put <filename> 将文件上载到远程计算机
p w d 显示当前工作路径
user [user] [password] 登录到远程计算机系统
v e r b o s e 激活冗余模式
通过对上述命令的运用,用户可以使用F T P完成多种功能,为了使用户有一个列形象具体
的认识,下面一小节将列举一个具体的F T P会话实例。
2. FTP 会话示例
并非所有的F T P会话均包含在以下示例之内,示例仅对用户使用F T P经常碰到的情况加以
说明。首先,用户需要与远程F T P站点建立连接。
至此,用户可以访问远程节点。当需要查看远程节点的文件时,有两种列出文件的方法,
290使用第七部分使用T C P / I P应用
下载
l s和d i r。注意F T P列的是U N I X系统。下面是l s命令的输出:
d i r命令的输出如下:
d i r命令不仅显示出l s命令列举出的文件的更详细信息,而且它还列出了U N I X的隐含文件
(以.开头的文件)。
注意在U N I X系统中,l s和d i r均可列举文件,但d i r可显示文件的信息更为详细,包括
最近修改时间、文件所有者、权限和大小等。如果用户F T P登录到N T或Wi n d o w s系统,
ls将不能工作。仅dir可用来列举文件,但它不能列出文件的详细信息。
列出系统当前目录中的文件后,可以从远程系统获取文件并将它存放入本地系统。用户
第2 6章文件传输协议使用291
下载
在下载文件前,可以先检查本地工作路径,以确定文件被下载在正确的位置。
如果用户想要将文件下载到H o m e目录,则不需做任何修改就可下载文件。
从远程系统下载到本地计算机的文件名将不会发生改变,除非用户指定新的文件名。要
修改文件名,需使用以下语法格式:
get 远程文件名用户指定的本地文件名
因此,当用户需要下载另一个名为n o t e s的文件时,需将文件更名。
在本地系统中,用户已有一个文件名为n o t e s,因此,用户必须修改本地文件名;或下载
时修改远地文件名。本例中,我们将第二个下载的文件更名为n o t e s 2。用户可从F T P输出中看
到下载文件的本地文件名和远程文件名。
上述两个n o t e s文件均为文本文件。用户可以看到F T P使用A S C I I方式传输文本文件。它确
保传输的文件为文本文件。如果需要传输二进制文件,需要修改文件类型:
类型I表示二进制,类型A表示A S C I I。二进制文件包括可执行文件、压缩文件和库文件。
基本上,二进制文件是不可读文件。
用户可将文件类型设为二进制文件类型,以传输二进制文件。
注意, F T P会显示文件传输方式。如果用户需要将传输类型设为A S C I I方式,只需敲入
a s c i i即可。
292使用第七部分使用T C P / I P应用
下载
当用户下载单个文件时,采用上述方法,当用户需要一次下载多个文件呢?
例如,用户需要下载以“ s”开头的所有文件,可能会尝试使用s *,但F T P将显示失败信
息。
当用户需要F T P识别通配符时,需要使用m g e t命令下载多个文件。
当用户使用m g e t或m p u t下载或上载多个文件时,缺省情况下, F T P将询问用户文件是否
需要下载或上载。当用户需要下载或上载时,敲入“ y”。
每下载一个文件都需敲入“ y”,是一件十分枯燥的工作,尤其当下大量文件时。为了除
去提示信息,可敲入p r o m p t。
除去提示信息后,用户敲入相同的命令,将不需每下载一个文件均需确认。因此,文件
第2 6章文件传输协议使用293
下载
传输速度快得多。
这比使用提示模式快捷得多。
警告如果用户打算覆盖一个文件(在上述例子中,使用相同文件),F T P将不会在覆盖
之前收到警告信息。
现在,我们已经示例了如何下载文件,下面举例说明如何将文件上载到远程服务器。上
载文件需要使用命令p u t。
它将本地文件传送到远程服务器。如果用户需要一次传输多个文件,可使用m p u t命令。
294使用第七部分使用T C P / I P应用
下载
*
与m g e t类似,用户首先需要关闭提示功能,以避免每传输一个文件都要敲入“ Y”或“N”
确认。
注意在与传输文件相关的命令(get、put或delete)前加上“m”可对多个文件进行操作。
如果用户需要删除远程系统上的文件(用户有权限完成此操作),用户可以非常简便地完成
删除文件的任务。d e l e t e命令专门用于删除文件,它还可简写为d e l。
如果用户需要一次删除多个文件,可使用m d e l。同时, p r o m p t命令对于m d e l的作用与
m g e t或m p u t相同。
警告与覆盖文件类似,用户在远程系统删除文件时也不会得到警告信息。
用户不仅可以在本地系统与远程系统间进行文件复制、删除操作,而且也可以创建和删
除目录。m k d i r命令用于创建一个目录。
用户也可以在不同的目录间移动。与U N I X和Wi n d o w s命令行(其命令解释器称为D O S )相
似,可以使用c d改变当前目径。
如果用户不知道当前路径或需要查看当前所处的路径,可以使用p w d命令。
如果用户需要对大文件进行传输,可能需要使能h a s h,它将显示F T P的工作状态,即使
F T P空闲几分钟甚至数小时。激活这一功能,仅需敲入h a s h。
第2 6章文件传输协议使用295
下载
如果用户在h a s h模式下p u t或g e t一个文件,可以看到文件传输的速度。
现在,我们已经完成了对一个站点的操作,如果不想退出F T P而只想关闭连接,可以敲入
c l o s e命令,它仅断开与远程系统的连接但仍处在F T P命令解释器中。
注意我们仍有ftp>提示符,当需要打开到另外一主机的连接时,使用open命令:
现在,已经处在另外一个系统中。用户可以使用相同的命令,但得到的信息将与上一个
系统不同。
完成了对F T P的操作后,可以敲入q u i t或b y e命令。
26.2.3 FTP安全
虽然F T P可以对文件进行访问,但没有一个用户会允许别人在自己的系统制造混乱。F T P
可以实现基本的访问控制,但它不能解决F T P基本的安全问题。
F T P一直使用明文认证。这意味着用户的口令未经加密就在网上传输,这是一个很严重的
安全问题。不恰当的匿名F T P服务器的配置将使用户进入他们不能访问的目录, F T P服务需要
两个端口而不像大多数T C P / I P网络服务仅需一个端口也是F T P的一个安全隐患。
1. /etc/ftpusers文件
如果用户需要控制F T P服务器上客户对特定帐号的访问权限,可以使用/ e t c / f t p u s e r s文件。
文件中列出了不能使用f t p的用户名。而且它不限制用户对其他网络应用如r s h、t e l n e t和S e c u r e
shell (SSH)的访问。
296使用第七部分使用T C P / I P应用
下载
一个合理的/ e t c / f t p u s e r s文件如下:
它限制管理员帐号及相关帐号不能使用F T P。
2. 使用. n e t r c
. n e t r c文件用于F T P客户自动登录到远程主机,该文件位于用户根目录,并且可在不需要
键入用户名和口令的情况下进入不同的系统。该文件的权限为7 0 0 (除了所有者外,没有人可
读/写该文件)。
. n e t r c文件的格式如下:
machine <机器名> login<用户名> password<用户口令>
如果用户要设置到e x a m p l e . o rg的访问,文件如下:
. n e t r c通常用于登录帐号,因此它可以很安全地用于匿名F T P站点,它仅需要用户的电子
邮件地址,而无需用户口令。同时,匿名F T P站点仅向用户提供公用信息——即无需口令就可
获取的信息。
警告在当今社会,设置. n e t r c文件不是一个好主意。它包含可被任何人获取的口令,
因此,帐号可被轻易地破解。
3. 使用不同的f t p客户端软件
前述的案例中,我们使用的是操作系统如U N I X、Wi n d o w s或V M S自带的标准F T P客户端
软件。此外,因用户使用的操作系统不同, F T P客户端软件的功能也略有差异。下面简单介绍
这些差异。
图26-3 激活的xftp会话
第2 6章文件传输协议使用297
下载
4. UNIX
在U N I X系统中,有两个不同的F T P客户端软件可以提供比标准F T P客户软件更复杂的功
能:n c f t p和x f t p (见图2 6 - 3 )。
n c f t p自动登录匿名f t p,因此,用户无需敲入口令(可能是用户邮件地址)或不必担心保
存. n e t r c文件。同时,它也提供一些基于文本的图形界面,以显示文件传输速度及其他命令行
编辑功能。n c f t p可从h t t p : / / w w w.ncftp.com 中获得。
x f t p软件提供图形化用户接口,它使用户无需与命令解释器直接接触即可完成F T P传输,
图2 6 - 3显示x f t p窗口。x f t p软件可从h t t p : / / w w w.llnl.gov/ia/xdir_xftp/xftp.html 中获得。
5. Wi n d o w s和M a c i n t o s h客户端软件
有大量F T P软件可用于Wi n o d w s和M a c i n t o s h平台,其中大部分都有与x f t p类似的图形界面,
它允许用户在远程系统和本地计算机间拖放文件。
同时,也有一些F T P客户端软件支持命令行方式。其他的客户端软件将激活浏览器,基于
浏览器的F T P仅能提供部分F T P功能。
表2 6 - 3列出了部分可用于Wi n d o w s和M a c i n t o s h的F T P客户端软件。
表26-3 支持Wi n d o w s和M a c i n t o s h平台的F T P客户端软件
F T P客户端站点
WS-FTP Pro h t t p : / / w w w. i p s w i t c h . c o m
f e t c h h t t p : / / w w w. d a r t m o u t h . e d u / p a g e s / s o f t d e v / f e t c h . h t m l
c u t e F T P h t t p : / / w w w. c u t e f t p . c o m
F T P P r o 2 0 0 0 h t t p : / / w w w. f t p p r o . c o m
E m a i l
无论相信与否,用户可以通过电子邮件使用F T P客户端。F T P m a i l可使得仅能通过电子邮
件访问互联网的用户使用F T P。这种方法可使用户不需直接使用F T P而只需通过e m a i l就可从
F T P站点获取文件。
互联网上的某些服务器为用户提供F T P m a i l服务。这些服务器提供F T P m a i l帐号,用户可
将包含F T P请求的消息发送到F T P m a i l帐号( F T P请求使用与F T P命令解释器类似的命令)。
F T P会话通过发送的F T P请求进行,结果发送到用户电子邮件地址。如果F T P m a i l连接
F T P服务器失败,返回给用户的邮件将解释失败的原因。
许多站点提供F T P m a i l服务,任何可以使用电子邮件的用户均可使用这些服务。建议大家
最好使用本国站点的服务。
表2 6 - 4列出了部分F T P m a i l服务器及其所处的国家。
表26-4 FTPmail服务器
298使用第七部分使用T C P / I P应用
下载
服务器国家
ftpmail@grasp.insalyon.fr 法国
ftpmail@doc.ic.ac.uk 英国
f t p m a i l @ d e c w r 1 . d e c . c o m 美国
26.2.4 FTP服务器及守护进程
理解F T P客户端的工作过程,将有助于用户理解F T P服务器及其工作过程。因为F T P由服
务器方控制,所以用户需要了解F T P服务器基本工作流程。
1. UNIX和L i n u x
在U N I X和L i n u x系统中, F T P守护进程i n . f t p d通常由I n t e r n e t超级守护进程i n e t d运行。
i n e t d监听连接,它可以更安全地管理连接。i n e t d更详细的信息见3 5章。
因此,在/ e t c / i n e t d . c o n f文件中,包含如下行:
f t p stream tcp nowait root / u s r / s b i n / i n . f t p d . i n . f t p d
这一行启动i n . f t p d,用户可以添加一些属性如- d调试、- l记录日志及- t修改活跃时间域等。
2. Windows NT
同时也存在一些可运行于N T、Windows 95和Windows 98的F T P服务器,包括FTP Servu
(可从h t t p : / / w w w. f t p s e r v - u . c o m下载)和War FTP daemon(可从h t t p : / / w w w. j g a a . c o m / t f t p d . h t m下
载)。
26.2.5 匿名FTP访问
即使当前We b站点蓬勃发展,匿名F T P站点仍然是I n t e r n e t的重要组成部分。在众多的匿名
F T P站点上,我们可以获取各种各样的信息、文件和软件。其中最著名的匿名F T P站点之一为
w u a r c h i v e . w u s t l . e d u。
大量匿名F T P站点对所有用户公开文件访问权,它们旨在发布软件和信息,因而免去了需
要用户名和口令所带来的不便。
1. 匿名F T P服务器
匿名F T P服务器是提供文件访问的公用站点。在We b出现前,g o p h e r (菜单驱动的互联网应
用)和F T P是人们从互联网获取信息和文件的主要手段。
因此,匿名F T P日益流行,至今仍有许多匿名F T P站点运行。匿名F T P站点需要单独的环
境和硬盘且完全与系统文件分离。我们通常称之为c h r o o t e d环境。
例如, U N I X系统有/ u s r和/ e t c目录。U N I X系统中的匿名F T P服务器也包含这两个目录。
并且,存储于U N I X系统/ e t c目录下的文件与匿名F T P服务器中/ e t c下的文件不能相同。
系统文件不能存贮在匿名F T P目录下。F T P的运行环境一定要与系统的运行环境彻底分
开。
2. 匿名F T P客户端
为了便于使用,匿名F T P允许用户使用“a n o n y m o u s”或f t p作为用户名,邮件地址作为口
令(例如:stripes @ tigerlair. c o m )。
匿名F T P也控制用户的访问权限。通常用户仅能访问公用目录下的文件,而不能访问系统
及配置文件,这可使系统更加安全。
以下示例说明一个匿名F T P的会话过程:
第2 6章文件传输协议使用299
下载
因为We b的日益普及,许多匿名F T P站点可通过We b浏览器直接访问而无需F T P客户软件。
提示用户在敲入口令时,不需要输入整个邮件地址,仅需要键入:
用户名@
例如,用户可敲入:
stripes @
代替:
stripes @ tigerlair. c o m
26.3 使用TFTP
在网络发展早期,T F T P是局域网传输文件的通用方式。T F T P是普通文件传输协议,它也
用于文件传输,缺省端口为6 9。
T F T P不需要任何形式的用户登录认证, T F T P有共享安全问题。目前,它常用于工作站向
路由器发送路由器访问列表及无盘工作站的启动中。
警告除非特别需要,否则不要启动T F T P服务,因为如果用户疏忽,它可带来许多安
全问题,包括允许客户访问口令文件。
T F T P目前已开发出第2版,在RFC 1350中定义。与F T P不同, F T P使用T C P而T F T P使用
U D P。因此,T F T P简单并且紧凑。与F T P类似,T F T P也由i n e t d启动。
每一个客户和服务器间的报文交换均开始于客户向服务器发送的文件读/写请求。
300使用第七部分使用T C P / I P应用
下载
文件以o c t e t (八进制)或n e t a s c i i方式传输。在n e t a s c i i方式下,数据为以返回符加上行结束
符( C R / L F )结尾的A S C I I码文本。
26.3.1 FTP与TFTP的区别
T F T P的功能比F T P少。例如,T F T P不能使用通配符,不能创建和删除目录,不能删除文
件。同时,它也不提供用户名与口令认证,其访问由其他手段限制(TCP Wr a p p e r等)。
因为T F T P的简洁性,所以路由器使用T F T P传输访问列表及路由配置信息。因为路由器无
需登录(除非用户运行TA C A C S +或R A D I U S实施访问控制),在已有文本上进行编辑远比一行
行敲入简单。
26.3.2 TFTP命令
如果用户熟悉F T P,T F T P将不难理解。T F T P命令较少,表2 6 - 5中列出了所有命令。其中
大部分与F T P类似。
表26-5 TFTP命令
命令描述
a s c i i 将传输模式设为n e t a s c i i (文本)
b i n a r y 将传输模式设为o c t e t (非文本)
c o n n e c t 连接远程T F T P
m o d e 设置文件传输模式
p u t 发送文件到远程站点
g e t 从远程站点下载文件
q u i t 退出T F T P
rexmt <value> 设置每个报文的超时值
s t a t u s 显示服务器的状态
timeout <seconds> 设置传输超时(秒)
t r a c e 打开报文路径
v e r b o s e 激活冗余模式
26.4 小结
文件传输对于在T C P / I P网络不同系统间传输文件至关重要。T C P / I P使用文件传输协议
( F T P )和普通文件传输协议( T F T P )作为T C P / I P网络发送文件的重要方式。
使用T C P传输文件的F T P需要打开两个端口:端口2 0为数据端口,端口2 1为控制端口。数
据端口传输文件,控制端口用于传输命令和消息。
T F T P使用U D P传输文件,它仅需要端口6 9。T F T P远比F T P简单,其功能也较F T P少。
T F T P通常用于路由器管理访问列表和配置信息。它也用于无盘工作站的启动。
在下一章,我们将讨论Te l n e t,学习另一种类型的交互式T C P / I P网络服务。
第2 6章文件传输协议使用301
下载