admin 管理员组

文章数量: 887629


2024年1月24日发(作者:jdk是否安装成功)

FTP上传下载完整教程

第一章什么是FTP

一、FTP协议

什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令 TCP端口号为21,Port方式数据端口为20。

二、FTP服务器和客户端

同大多数Internet 服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows自带“ftp”命令,这是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。

三、FTP用户授权

1.用户授权

要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。

2.FTP地址格式

FTP地址如下:

ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名

上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。

3.匿名FTP

互连网中有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。

Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”登陆FTP服务,就可访问远程主机上公开的文件。许多系统要求用户将Emai1地址作为口令,以便更好地对访问进行跟综。匿名 FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息,数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登录获取所需的信息资料。虽然目前使用WWW环境已取代匿名FTP成为最主要的信息查询方式,但是匿名FTP仍是 Internet上传输分发软件的一种基本方法。如red hat 、autodesk等公司的匿名站点。

四、FTP的传输模式

FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

1.ASCII传输方式

假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

2.二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

五、FTP的工作方式

FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是

Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务

器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

下面介绍一个这两种方式的工作原理:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

六、FXP

FXP说简单点就是一个FTP客户端控制两个FTP服务器,在两个FTP服务器之间传送文件。FXP的全称为File Exchange Protocol――文件交换协议,可以认为FXP本身其实就是FTP的一个子集,因为FXP方式实际上就是利用了FTP服务器的Proxy命令,不过它的前提条件是FTP服务器要支持PASV,且支持FXP方式。

FXP传送时,文件并不下载至本地,本地只是发送控制命令,故 FXP传送时的速度只与两个FTP服务器之间的网络速度有关,而与本地速度无关。因FXP方式本地只发送命令,故在开始传送后,只要本地不发送停止的命令,就算是本地关机了,FXP仍在传送,直至一个文件传送完成或文件传送出错后,FTP服务器等待本地发送命令时,才会因不能接收到命令而终止FXP传送。

因为上述的原因,FXP传送出错时,本地的用户进程还留在FTP服务器中,并没有退出,如此时再次连接FTP服务器,可能会因用户线程超过允许,FTP服务器提示客户已登陆并拒绝客户端的连接,直至服务器中的傀儡进程因超时或其他原因被FTP服务器杀死后,才能再次连接FTP服务器。

成功FXP有两个必要条件:1.两个FTP服务器均支持FXP;2.两个FTP服务器均支持PASV方式。但并不是说满足这两个条件的FTP服务器均经本地操作成功FXP,这还与本地与FTP服务器的网络状况有关。故有时会出现同样两个FTP,别人可以FXP,而你不可以的情况。

第二章 FTP客户端软件

要登陆FTP服务器,你需要一款FTP客户端软件,Windows操作系统自带了FTP命令,但只能在命令行下操作,且要求用户熟悉FTP内部命令,多有不便,故安装一款好用的FTP客户端软件是有必要的。目前常用的FTP客户端软件有Cuteftp pro、Flashfxp、LeapFTP、流星雨-猫眼等,现就常用的Cuteftp pro给大家做一个简单的介绍。

一、全局选项

选择“工具/全局选项”(在2.0中是“编辑/全局选项”)或使用快捷键“Alt+F7”就可以打开Cuteftp pro的全局选项对话框。全局选项中保存了Cuteftp pro工作时的一些参数,正确的设置好这些参数是Cutepro pro正常工作的关键,好的参数设置能提高自动化程度和工作的效率。全局选项中的参数很多,现就常用的一些参数做一个简单的介绍。

1.常规选项

(1)选中“在Windows启动时开始Cuteftp pro传送引擎”将在每次系统启动时自动加载FTP传送引擎。

(2)程序退出事件

建议选择“如果任务挂起则不关闭传送引擎”,这样当你关闭Cuteftp pro时只要传送任务没有全部完成就会自动在后台传送文件,而不会退出传送。而选择关闭传送引擎则会在退出Cutepro pro管理界面后同时也停止了文件的传送。

(3)下载文件夹默认

选中“在本地窗格使用当前文件夹为默认”则每次下载文件的默认保存文件夹为本地窗格中的当前文件夹。否则,每次下载文件默认保存路径为此处指定的文件夹。

2.连接选项

全局连接的最大数量:指定Cuteftp pro的最大线程数,所在站点加在一起的数值。

每个站点连接的最大数量:指定单个站点的最大连接数,建议设为1。

连接重试尝试:在这设定重试的次数,这个当然是多多益善了,

重试延迟:这个设置每次重试的间隔时间,建议不要设置太小,且有的FTP站点当你的重试时间过短时会自动封锁你的帐户或IP。

数据连接类型:建议设置为PASV模式。

匿名登录邮件地址:随便写一个Email的地址就可以了。

断开前发送quit:这个不用想,选中不会错。

3.传输选项

传送方式:设置默认的传送方式,建议选自动检测。

重新连接并续传:设置传送超时的时间。超过这个时间如果没接收到数据,Cuteftp pro就会自动重连接服务器并续传,建议这个值不要太小,设置成60秒或以上的值是不错的选择。

所有被传送后:这个地方设置当所有队列完成后的操作,常用的选择有“断开interner”或关机。这样,当所有传送都完成时程序就会自动断开网络连接或关机。

最大线程:设置多线下载时的最大线程,建议不要大于4。

当续传时在APPE前发送REST命令:建议选中这项确保续传正确。

4.智能保持连接

许多FTP站点都设置了空闲超时,一但你在服务器设定的时间内没有动作,服务器将自动将你踢除,设置了智能保持连接后,Cuteftp pro 将自动发送一些FTP命令,就能避免这个现象,大大的方便了咱们。

页面最上面的复选框,不用多想,一定是要选中的了。第二个是设置空闲多久后系统自动发送命令,建议不要太大,30秒比较合适。第三个是设置智能保持连接的时间,这个你自己看着办就是了,我设置的是30分钟。随机间隔,这个设置SKA命令的间隔时间,只要最大不超过服务器的空闲超时时间就可以了,当然也不能设置得太短了。命令框,在这里添加SKA命令。关于这个设置大家可以参考我的设置。

5.智能覆盖

对于续传,好的覆盖规则能节约你大量的时间且是全自动操作无须人工干预。首先确保选中了第二个单选框,这样你定制的规则才会有效。至于规则,自己动脑子想啦。推荐几条规则:

当文件日期相同,大小更小,介于任何传送,续传;

当文件日期相同,大小更大,介于任何传送,覆盖;

当文件日期更新,大小更大,介于下载,续传;

其他的自己想吧。

二、站点管理

在Cuteftp pro的站点管理器中你可以方便的管理你的FTP站点。在这你可以建立、删除站点,分类整理站点,导入、导出站点列表。你还可以为站点管理器设置密码。

在站点管理器中,选中一个站点文件夹,单击右键,就可以建立、删除、重命名站点或站点文件夹。站点管理器支持拖动,你可以将一个站点从一个文件夹拖至另一个文件夹中,如在拖动时按住Ctrl键,将同时复制站点。你还可以给站点管理器加上密码,右键单击站点管理器的空白处,选择站点管理器安全,设置密码即可。

在站点管理器的空白处单击右键,从弹出的菜单中,你可以选择导入或导出站点列表,当然你也可以从“工具/站点管理器”中选择相应的菜单完成这个操作。Cuteftp pro支持导入的站点格式有:其它版本Cuteftp pro 和Cuteftp的站点文件、Leapftp的站点文件、WS-ftp的站点文件和纯文本格式站点文件等,导出则只能导出成文件格式。通过一个简单的技艺,你可以在导出站点时保持Cuteftp pro的站点列表的所有格式,这只要复制Cuteftp pro的用户站点文件就可以了。对于win2000或winXP这个文件保存在这个目录中:Xocuments

and Settings电脑中你的用户名Application DataGlobalSCAPECuteftp

pro .。其中X为系统的安装盘符,最后一个目录是版本号,对于Cuteftp pro2.0,最后一个目录就是2.0而不是3.0。

三、多线程下载和FXP

Cuteftp pro最大的特点就是多线程下载,他可以将一个文件分成几部分同时下载,这样能大大提高下载速度。选中想下载的文件后,单击右键,从弹出菜单中选择“高级下载/多线程下载”就可以了。提醒大家注意的是,在多线下载时,如果其中一线完成了,你不要在队列中清除那个已完成的线程,否则Cuteftp pro下载就会出错,我就曾误操作而不得不重下了2个700M的文件,惨痛的教训啊。

同样,在做FXP传送时只要单击右键,从弹出的菜单中选择“站点到站点传送”然后选择目的站点就可以了。但这种操作方式只能将文件传到目的FTP的主目录或站点设置中设置的自动切换目录中,不太方便。更好的方法是在Cuteftp pro中同时连接两个FTP,在源FTP中选中目标后,右键选复制,然后切换到目的FTP中粘贴,这时Cuteftp pro会提示你是否移动,选移动就可以了。

第三章 FTP服务器软件

一、Serv-U简介

Serv-U是一款功能强大的FTP服务器软件,他的管理界面友善,性能稳定,支持断点续传、支持带宽限制、支持磁盘配额、支持远程管理、支持虚拟主机等,是使用最广泛的FTP

服务器软件。有了它,你就可以将你的个人电脑变为一台FTP服务器。

Serv-U由两大部分组成,FTP引擎和用户管理界面。Serv-U引擎()是一个常驻后台的程序,是整个软件的核心部分,它负责处理来自各种FTP客户端软件的FTP命令,也是负责执行各种文件传送的软件。在运行Serv-U引擎也就是

文件后,它将作为一个后台服务运行,看不到任何界面和消息提示。Serv-U引擎可以在任何Windows平台下作为一个本地系统服务来运行,系统服务随操作系统的启动而开始运行,而后我们就可以运行用户界面程序了。在Win2000/XP系统中,Serv-U会自动安装为一个系统服务,但在Win 9x/Me 中,你需要在“本地服务器”面板中选择“自动开始”,才能让它转为系统服务。Serv-U用户管理界面()也就是Serv- U管理员,它负责与Serv-U引擎之间的交互,指示Serv-U按用户的设定配置工作。通过用户管理界面,你可以完成Serv-U配置和管理,同时还能监视FTP的工作情况、实时状态。

二、FTP服务器架设流程

架设FTP服务器的简单流程如下:

1.安装FTP服务器软件,如Serv-U。软件的安装我不准备讲解了,相信大家都能很轻松的完成这个任务。

2.正确配置有FTP服务器软件,使之正确运行。当你在FTP客户端软件中能用ftp://127.0.0.1这个地址成功登陆你的FTP服务器,也就是说能正常从本机登陆FTP服务器,这一步通过了,说明FTP服务器软件工作基本正常。如果不能登陆或出现其他问题,仔细检查FTP服务器的设置。登陆测试完成后,你还应该测试每一个用户的访问权限等设置,同样,用ftp://127.0.0.1这个地址登陆,但每次使用不同的用户,测试每一个用户的访问权限,上传、下载、续传等功能。测试正常后,就可以进入下步的设置了。

3.正确配置使互连网(局域网)的用户能正常访问你架设的FTP。如果你安装了防火墙软件,则要对防火墙进行相应的设置,使之允许外部连接你的FTP命令端口;如果你没有固定的公网IP,使用建议动态域名系统;如果架设FTP服务器的计算机是位于防火墙或局域网内部,则必须进行端口映射。这一步设置完成后,就得请其他人通过互联网帮你测试FTP运行情况,如果能正常访问,那么恭喜你,你的FTP服务器架设成功,否则,仔细查看FTP客户端软件给出的出错消息,分析出错消息,找出原因,解决后再次测试。

三、建立一个FTP服务器

Serv-U的安装很简单,一路点“Next”就是了,在Serv-U安装完成后会指导你创建一个域和用户帐号,如下图。如果你不习惯E文的话,你可以取消他,汉化后再手工建立域和用户帐号。这里的E文都很简单,咱们现在选“Next”,开始建立一个域并建立几个用户帐号。在Serv-U中,一个域就是一个单独的FTP服务器,创建一个域也就是创建了一个FTP服务器。在接下来的对话框中,Serv-U会依次要求你输入服务器IP等信息,我们一步步来做。

第一个对话框问你是否要图标菜单,这个当然选是了;

第二步问你是否在本地运行FTP服务,选是,这一步可能要会花点时间,咱们不急;

下一步Serv-U要你填写服务器的地址,一般个人用户没有固定的IP,留空直接点下一步就是了;

域名:自己随便取个名字吧,象我的MagicFire就不错;

是否安装为系统服务:安装为系统服务后,开机时就能自动启动FTP服务,选是;

是否允许匿名用户:你自己看着办了,一般选是;

匿名用户主目录:匿名用户登陆后进来的目录,选择硬盘中的一个目录;

是否销定用户于主目录中:建议选是,这样安全;

是否创建其他用户:选是开始创建其他用户,过程与创建匿名用户差不多,选否的话,就可以结束创建向导。这时已成功创建了一个域了,你可以通过Serv-U的管理程序配置、管理你刚才创建的域。

大多数国人的E文不是很好,就象我,故汉化一下是必要的。先在系统栏的Serv-U图标上单击右键,在弹出的菜单中停止Serv-U服务,然后再关闭Serv-U的管理界面。记住,仅仅关闭Serv-U的管理界面并不能停止Serv-U服务,Serv-U还在后台默默的工作。停止Serv-U服务后,就可以汉化Serv-U了。安装汉化包大家都会吧。

四、FTP服务器设置

刚才虽说已经建立了一个基本的 FTP服务器,但要使FTP服务器能更好的工作,加入更多的功能,还得仔细配置Serv-U,使它更好的为咱们服务。我不想详细讨论Serv-U的各项设置与参数,因为这方面的教程网上很多,各位大可以参照南山或吕荣达写的教程,这里仅讨论一些在Serv-U设置中常见的问题及本人在使用Serv-U过程中的一些经验,希望能对大家有所启发。

启动Serv-U的管理界面,服务器的所有配置均在这里完成,同时通过管理界面,还可以监视Serv-U的工作情况、监视当前用户的活动。管理界面由两个大的窗口组成,左边树形结构列出了当前所有的服务器和域,右边是左边每一项的详细设置,你可以在右面板中设置Serv-U的每一个细节。改动了Serv-U的每一项设置后,一定保存后才能生效,你可以在菜单中选择“设置/应用”或在工具栏中按下应用按钮“保存”来保存Serv-U的设置,并使之立即生效。

1.常见问题及技巧

(1)如果你不清楚设置的具体含义,不要改动Serv-U的默认设置。

(2)在“本地服务器/设置/常规”面板中选中“检查匿名用户密码”将使得IE不能正常登陆你的FTP。

(3)在“本地服务器/设置/常规”面板中选中“删除部分已上传的文件”将使你的FTP服务器上传不支持续传。

(4)在“本地服务器/设置/常规”面板中选中“禁用反超时调度”且可以使客户端的智能保持连接无效,建议选中。目前多数FTP客户端软件均支持智能保持连接功能。

(5)在“本地服务器/设置/常规”面板中选中“拦截FXP”将使你的FTP服务器不支持FXP,建议至少在上传帐户中不能选中此项。

(6)在“本地服务器/设置/常规”面板中的最下面一项“拦截连接超过XX次,于YY秒,ZZ分钟”含义如下:如果某用户在YY时间内连接次数XX次,且禁止ZZ分钟。建议选中此项并设置相应的时间。

(7)无条件选中“本地服务器/设置/高级”面板中的“加密密码”和“启用安全”两项。

(对于网络条件不对或网络时延很大的环境中,选中“本地服务器/设置/高级”面板中的“禁用Nagle运算法则”。

(9)对于流量很大的FTP站点,适当加大“本地服务器/设置/目录缓存”中的目录缓存大小和超时设置。

(10)在每个用户的“常规”面板中选中“隐藏隐藏文件”、不要选中“总是允许登录”和“允许用户更改密码”,但对于系统管理员则相反。

(11)适应设置用户的“空闲超时”、“登陆线程”和“下载速度”很有必要。建议下载用户给一线程,空闲超时不大于5分钟。

(12)无条件选中“锁定用户于目录中”这个选项。

(13)如无需要,不要启用磁盘配额和上传/下载率,有许多FTP不能正常访问就是因为这里设置不对引起的。

(14)鉴于目前扫PUB、黑FTP以及其他攻击情况日益增多,网络的安全状况越来越差,建议FTP命令端口不要用标准的21端口。

2.目录权限设置

关于目录访问权限,一定要小心设置,不要多给权限,也不能少给。下载帐户至少要求

有读取的权限,可以给列表和目录继承权限;上传帐户至少要求有写的权限,可以给追加、目录创建和子目录继承的权限。权限设置关系系统安全,切记不要能多余的权限,尤其是写、删除、执行的权限。另在Serv-U中目录访问权限和IP规则有优先级的,排在上面的规则比下面的优先级高,这点请大家注意。

3.用户登陆消息

在Serv-U中,你可以自定义FTP服务器的登陆消息,切换目录时的消息和用户退出登陆的消息。消息文件是一个文本文件,你可以用任何文本编辑工具编辑消息文件,编辑好就在“域/设置/消息”面板中设置后相应的消息文件就可以了。

在Serv-U的消息文件中,你可以使用一些变量,来显示服务器和用户当前的状态等参数。在消息文件中Serv-U的消息变量在客户端登陆时就会自动替换成对应的信息。相关变量的含义,你可以查阅Serv-U的帮助文件,这里就不多说了。提请大家注意的是在使用当前硬盘剩余空间这个消息变量时,一定要将消息文件放在更改消息文件主目录或更改消息文件次目录处,才能正确显示当前的磁盘剩余空间。

4.远程管理FTP服务器

Serv-U支持FTP服务器的远程管理,你可以远程管理你的FTP服务器。首先,在用于远程管理的计算机中安装并运行Serv-U,在左面板最上方的Serv-U服务器处单击右键,新建一个FTP服务器。这时系统提示你输入服务器IP、端口、服务器名字、用户名及密码。仔细填你好要管理的FTP服务器 IP或域名、端口、管理员名字、密码,服务器名字你可以随便取一个就是了。这样就建立了一个新的FTP服务器,如图。这里提醒大家注意,没有管理权限的用户是不能远程管理FTP服务器的,如你试图用一个没有管理权限的用户远程登陆管理FTP服务器,Serv-U将会报错。至于怎么管理,具体操作和本地服务器是一样的。

五、使用动态域名

大家都知道,FTP服务器地址要求是一个IP地址或一个域名,但对于大多数个人用户来说,一般都是采用ADSL拔号的上网方式,这种上网方式没有固定的IP,每次断线再次拔号后的IP与上次的IP一般是不相同的。那有没有办法使一个域名始终指向自己的电脑而不论IP怎么变化呢,办法当然是有的,我们可以申请动态域名解析服务。

动态域名服务是由互连网中的网络服务商提供的一项将域名解析到运行有动态域名客户端软件的计算机,使域名指向这台计算机而不论此计算机的IP如何变化。如果你申请了动态域名服务,同时动行了动态域名客户软件,客户端软件将自动连接动态域名服务器,反馈最新的IP地址信息至服务器,服务器更新数据库中的数据,使你申请的域名始终指向你的计算机。简单点说,动态域名客户端软件就是自动更新域名与IP地址之间的对应关系。

目前国内的动态域名服务商有希网网络/和网域科技/等,你可以去他们的主页申请动态域名服务。这两个服务商都提供免费的和收费是服务,咱们是穷人,就用免费的了。希网网络你可以选择后缀为、、

、、、、等的域名;而网域科技只提供 为后缀的域名,俗称花生壳。在使用动态域名的过程中,我发现希网网络的域名比网域科技的花生壳要稳定,故建议大家优先申请希网网络的动态域名。至于动态域名客户端软件的安装、设置,这些都十分简单,其网站中也有详细的说明,我就不多说了,相信大家能轻松完成。

六、FTP服务器中防火墙软件的设置

现在大多数计算机都安装了防火墙软件,你必须正确配置防火墙软件,才可使其他人能正常访问你架设的FTP服务器。一般的,你要在防火墙的IP规划中加一条允许其他人连接你的TCP21端口的规则,如果你的FTP服务器的命令端口采用的不是标准的21端口,则相应的规则中的端口应改为你的命令端口。也就是说,你必须在防火墙的IP规则中加入一条允许别人连接你FTP的命令端口的规则。同时,你还要允许Serv-U访问网络。对于位于内部局域网中的FTP服务器,还有一些特别的设置,我将在后面详细讲述。

七、同一台电脑架多个FTP服务器

Serv- U支持虚拟主机,可以用Serv-U在同一台计算机中架设多个FTP。你只要在Serv-U中建立多个域就可以实现这个目标,当然,每个域的命令端口应该不一样,不然,将指向同一个FTP。你可以为每一个域配置不同消息文件、不同的主目录、是否支持FXP、是否支持PASV等。具体每个域的配置和前面讲到的一样,你将每一个域看做是不同的FTP服务器就是了。这点对于FTP客户端来说是完全透明的,也就是说,客户端会将不同的域当作不同的FTP服务器。

八、局域网架设FTP服务器

局域网架设FTP服务器与一般的FTP服务器架设方法没什么区别,这里主要讨论怎样使局域网中的FTP服务器为互连网中的用户提供服务。通过正确的软件设置,是可以使互联网中的用户正确访问位于内部局域网或防火墙后面的FTP服务器的,下面我们详细讨论这个问题。

1.使互连网用户能访问局域网中的FTP

有许多FTP服务器架设在局域网内部或位于防火墙的后面,如不经过设置,互联网的用户是不能访问的,这里我假设你已经在内部局域网成功架设了一个FTP 服务器。要使互联网中的用户能访问位于内部局域网中或防火墙后的FTP服务器,首先必须在内部网关或防火墙中开一个端口,映射至你FTP服务器的命令端口。这时,互联网中用户访问的端口就是网关中映射的那个端口。例如,你的内部FTP服务器命令端口为21,同时你将网关上的1021端口映射至FTP服务器的21端口,这时互联网用户要用1021端口才能访问你的FTP。端口映射需要在防火墙或网关的机器中操作,你必须取得网管的同意或由网管授权。

如你没有网管的授权,但你又想使你的内网FTP服务器对互连网用户服务,还有一个方法。现在有一些动态域名服务商支持局域网内的用户,如科迈网、 dns2com等。这时你可以申请他们的服务,安装他们提供的动态域名软件,就可以解决内网FTP对外的服务问题。dns2com的服务全面收费了,咱们是穷人,交不起银子,故不做考虑。科迈网有一个月的试用期,正好,一个月后咱们换一个名字就可以了。科迈的具体操作大家去他们的主页看吧,有很仔细的帮助文件,我在这就不重复了。

2.局域网中的FTP支持PASV模式

相对于互连网用户,内部局域网中的FTP服务器一般是不支持PASV模式的,因为PASV模式在传送数据时要求客户端主动连接服务器的高端端口,而此时FTP服务器位于局域网内部,客户端将试图连接局域网网关或防火墙的高端端口,而不是FTP服务器的高端端口,从而被网关或防火墙拒绝。通过适当的设置,我们是可以使位于防火墙后面或网关后面的FTP服务器支持PASV模式的。

首先,我们在网关或防火墙在开一段高端端口,如4000-5000(如条件有限,不能开这么多端口,开20 个端口也就足够了),并设置防火墙IP规则,允许互连网计算机连接此段端口。再次,我们要将这段端口映射至FTP服务器中相应的端口。最后,在FTP服务器中我们对Serv-U要做如下设置:1.在“本地服务器/设置/高级”面板中的“PASV端口范围”填写刚才映射的的端口范围;2.在“域/设置/高级”面板中选中“允许被动模式数据传送”且在后面的“使用IP”中填写网关或防火墙的IP地址(局域网内部地址)。

第四章 FTP命令和服务器响应消息

一、常见消息、错误提示

常看见大家在登陆FTP出错时来坛子问,其实通过FTP服务器返回的出错消息,我们就可以知道是什么地方出了问题。下面我以Cuteftp pro登陆FTP服务器时常见的FTP错误消息做一个简要的说明,希望能对大家有所帮助。

----------------------------------------------------------------------------------------------

状态:>正在解析主机名

错误:>无法解析“”

这个错误消息说明FTP服务器的地址不正确,或你的DNS不能解释FTP服务器的地址。

----------------------------------------------------------------------------------------------状态:>正在解析主机名.

状态:>已解析主机名 : ip = 210.22.12.55。

状态:>正在连接到 ftp 服务器 :21 (ip = 210.22.12.55)...

错误:>无法连接到远程服务器。Socket 错误 = #10061。

出现这个错误有几种可能:

服务器关闭了

服务器的端口不对

3.你的IP被B,防火墙将你拦了

4.你重试次数过多,IP或用户被B,FTP服务器将你拦了

----------------------------------------------------------------------------------------------

命令:> USER anonymous

530 Sorry, no ANONYMOUS access allowed.

FTP服务器不支持匿名名用户。

----------------------------------------------------------------------------------------------

命令:> USER coc

331 User name okay, need password.

命令:> PASS *****

530 Not logged in.

密码错,找密码去吧。

----------------------------------------------------------------------------------------------命令:> PASV

550 Passive mode not allowed on this server.

服务器不支持PASV模式,改用PORT模式登陆。

----------------------------------------------------------------------------------------------218,20,10,68,12,25

200 PORT Command successful.

命令:> LIST

150 Opening ASCII mode data connection for /bin/ls.

命令:> PORT

在这一步后超时或

200 PORT 192,168,0,189,10,45

200 PORT Command successful.

命令:>LIST /vod3/vod/vod3/连续剧/03.3.22_金粉世家[完]/

150 Opening ASCII mode data connection for /bin/ls.

426 Data connection closed, transfer aborted.

以上两个错误消息都表示你不能使用PORT模式登陆FTP服务器,改用PASV模式吧。

----------------------------------------------------------------------------------------------421 Maximum session

time exceeded - closing.

超时错,动作快点,或关闭其他下载进程再试。

----------------------------------------------------------------------------------------------421 Connection timed out

- closing.

空闲超时错,在客户端中设置反超时调度。

----------------------------------------------------------------------------------------------426 Data connection

closed, file transfer aborted.

任务超时,在客户端中设置自动重试。

----------------------------------------------------------------------------------------------

530 Not logged in, only one session from same IP allowed at a time.

说了只能用单线,你非得要多线连我的FTP,你是不是想被Ban。

----------------------------------------------------------------------------------------------550 Permission denied.

< r o l i a. n e t >

错误:>请求的操作未执行(如,文件或目录未找到,不能访问)。

目录权限不足或文件、目录不存在。

----------------------------------------------------------------------------------------------Used disk quota 19999996

Kbytes, available 3 Kbytes

452 Sorry, insufficient disk quota - receive file 1.r42 aborted.

服务器使用了磁盘配额,你的磁盘配额已用完了。

----------------------------------------------------------------------------------------------421 Too many users -

please try again later.

人多,一会再来吧。再客户端中设置自动重试。

----------------------------------------------------------------------------------------------550 Sorry, insufficient

credit for download - upload first.

服务器启用了上传/下载比率,你的比率信任额不足了,先上传吧。

----------------------------------------------------------------------------------------------550 /upload: No such file

or directory.

目录不存在。刷新目录列表,看看目录是否改动了。

----------------------------------------------------------------------------------------------530 Only client IP address

allowed for PORT command.

530 Only client IP address allowed for PASV command.

以上两条错误消息都表示服务器主动禁止FXP,不能FXP的。

----------------------------------------------------------------------------------------------

二、FTP命令

FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令,熟悉并灵活应用FTP的内部命令,可以大大方便使用者。

ftp的命令行格式为:ftp -v -d -i-n -g[主机名]

-v 显示远程服务器的所有响应信息。

-d 使用调试方式。

-n 限制ftp的自动登录,即不使用.netrc文件。

-g 取消全局文件名。

1.访问控制命令

下列命令指定访问控制标记(命令码在括号内):

用户名(USER)

参数是标记用户的Telnet串。用户标记是访问服务器必须的,此命令通常是控制连接后第一个发出的命令,有些主机还会要求口令和帐户。服务器可以在任何时间接收新的USER命令以改变访问控制和(或)帐户信息。这可以重新猹始登录过程,所以传输参数不变,在进行中的文件传输在过去的访问控制参数下完成。

口令(PASS)

参数是标记用户口令的Telnet串。此命令紧跟USER命令,在某些站点它是完成访问控制不可缺少的一步。因此口令是个重要的东西,因此不能显示出来,服务器方没有办法隐藏口令,所以这一任务得由用户FTP进程完成。

ACCOUNT (ACCT)

参数是标记用户帐户的Telnet串。此命令不需要与USER相关,一些站点可能需要帐户用于登录,另一些可以限制帐户的权限,在后一种情况下,此命令可在任何时候发送。应答的不同可以区别不同的情况:当登录需要帐户信息时,对PASS命令的响应是332。另外,如果不需要帐户信息,对PASS的响应是 230,如果需要帐户信息在以后需要,服务器会返回332或532,这要看它是保存此命令还是拒绝此命令了。

改变工作目录(CWD)

此命令使用户可以在不同的目录或数据集下工作而不用改变它的登录或帐户信息。传输参数也不变。参数一般是目录名或与系统相关的文件集合。

回到上一层目录(CDUP)

此命令要求系统实现目录树结构,它的响应和CWD的相同。

结构加载(SMNT)

此命令使用户在不改变登录或帐户信息的情况下加载另一个文件系统数据结构。传输参数也不变。参数是文件目录或与系统相关的文件集合。

重新初始化(REIN)

此命令终止USER,将所有I/O和帐户信息写入,但不许进行中的数据传输完成。重置所有

参数,控制连接打开,可以再次开始USER命令。

退出登录(QUIT)

此命令终止USER,如果没有数据传输,服务器关闭控制连接;如果有数据传输,在得到传输响应后服务器关闭控制连接。如果用户进程正在向不同的USER 传输数据,不希望对每个USER关闭然后再打开,可以使用REIN。对控制连接的意外关闭,可以导致服务器运行中止(ABOR)和退出登录(QUIT)。

2.传输参数命令

所有数据传输参数有默认值。服务器必须记录下默认值,在FTP服务请求后,可以以任何顺序发送。下面命令传送参数:

数据端口(PORT)

参数是要使用的数据连接端口,通常情况下对此不需要命令响应。如果使用此命令时,要发送32位的IP地址和16位的TCP端口号。上面的信息以8位为一组,逗号间隔十进制传输,如下例:

PORT h1,h2,h3,h4,p1,p2

其中h1是IP地址的最高8位。

被动(PASV)

此命令要求服务器DTP在指定的数据端口侦听,进入被动接收请求的状态,参数是主机和端口地址。

表示类型(TYPE)

参数指定表示类型。有些类型需要第二个参数,第一个参数由单个Telnet字符定义,第二个参数是十进制整数指定字节大小,参数间以分隔。下面是格式:

默认表示类型是ASCII非打印字符,如果参数未改变,以后只改变了第一个参数,则使用默认值。

文件结构(STRU)

参数是一个Telnet字符代码指定文件结构。下面是代码及其意义:

F - 文件(非记录结构),它是默认值

R - 记录结构

P - 页结构

传输模式(MODE)

参数是一个Telnet字符代码指定传输模式。下面是代码及其意义:

S - 流(默认值)

B - 块

C - 压缩

3.FTP服务命令

FTP服务命令定义用户请求的文件传输或文件系统功能。此命令的参数通常是路径名,其语法要和服务器的规范一致。推荐的默认值是最近指定的设备目录或目录。命令顺序通常没有限制,只有"rename from"命令后面必须是"rename to",重新启动命令后面必须是中断服务命令。服务命令的响应通常在数据连接上传输。下面是具体的命令:

获得文件(RETR)

此命令使服务器DTP传送指定路径内的文件复本到服务器或用户DTP。这边服务器上文件的状态和内容不受影响。

保存(STOR)

此命令使服务器DTP接收数据连接上传送过来的数据,并将数据保存在服务器的文件中。如果文件已存在,原文件将被覆盖。如果文件不存在,则新建文件。

唯一保存(STOU)

此命令和STOR差不多,此命令要求在此目录下的文件名是唯一的,对此命令的响应必须包括产生的用户名。

附加(APPE)

它和STOR的功能差不多,但是如果文件在指定路径内已存在,则把数据附加到原文件尾部,如果不存在则新建文件。

分配(ALLO)

此命令用于在一些主机上为新传送的文件分配足够的存储空间。参数是十进制的逻辑字节数。如果是记录或页结构,页或记录的最大大小也需要,这在第二个参数内以十进制指定。第二个参数是可选的,如果有它,它和第一个参数以Telnet字符 R 分隔。此命令在STOR或APPE命令后,对于不需要分配存储空间的机器,它的作用等于NOOP。

重新猹始(REST)

参数域代表服务器要重新猹始的那一点,此命令并不传送文件,而是略过指定点后的数据,此命令后应该跟其它要求文件传输的FTP命令。

重命名(RNFR)

这个命令和我们在其它操作系统中使用的一样,只不过后面要跟"rename to"指定新的文件名。

重命名为(RNTO)

此命令和上面的命令共同完成对文件的重命名。

放弃(ABOR)

此命令通知服务中止以前的FTP命令和与之相关的数据传送。如果先前的操作已经完成,则没有动作,返回226。如果没有完成,返回426,然后再返回226。关闭控制连接,数据连

接不关闭。

删除(DELE)

此命令删除指定路径下的文件。用户进程负责对删除的提示。

删除目录(RMD)

此命令删除目录。

创建目录(MKD)

此命令在指定路径下创建新目录。

打印工作目录(PWD)

在响应是返回当前工作目录。

列表(LIST)

服务器传送列表到被动DTP,如果路径指定一个目录或许多文件,返回指定路径下的文件列表。如果路径名指定一个文件,服务器返回文件的当前信息,参数为空表示用户当前的工作目录或默认目录。数据传输在ASCII或EBCDIC下进行,用户必须确认这一点。因为文件信息因系统不同而不同,所以不可能被程序自动利用,但是人类用户却很需要。

名字列表(NLST)

服务器传送目录表名到用户,路径名应指定目录或其它系统指定的文件群描述子;空参数指当前目录。服务器返回文件名数据流,以ASCII或EBCDIC形式传送,并以分隔。这里返回的信息有时可以供程序进行进一步处理。

站点参数(SITE)

服务器用来提供服务器系统信息,信息因系统不同而不同,格式在HELP SITE命令应答中给出。

系统(SYST)

用于确定服务器上运行的操作系统。

状态(STAT)

此命令返回控制连接状态,它可以在文件传送过程中发送,服务器返回操作进行的状态。也可以在文件传送之间发送,这时命令有参数,参数是路径名,此命令的功能除了数据在控制连接上传送以外和列表命令相似。如果指定部分路径,服务器以文件名或与说明相关的属性返回;如没有参数,服务器返回服务器FTP进程的状态信息,包括传输参数的当前值和连接状态。

帮助(HELP)

这条命令我们在平常系统中得到的帮助没有什么区别,响应类型是211或214。建议在使用USER命令前使用此命令。

等待(NOOP)

此命令不产生什么实际动作,它仅使服务器返回OK。

FTP在控制连接上使用Telnet通信,因此有机会大家可以看看相关的协议说明。对下文的理解会很有好处。下面内容将对命令的应答和关于命令的详细信息作以说明。FTP命令可分为访问控制标记,数据传输参数或FTP服务请求,特定的命令(如ABOR,STAT)可以在数据传输过程中在控制连接上传输。有些服务器不能同时监视数据和控制链路,那就要另外采取措施了。请注意下面的几点建议:

(1)用户系统将Telnet的"Interrupt Process"(IP)信息插入Telnet流;

(2)用户系统发送Telnet的"Synch"信号;

(3)用户系统将命令(如ABOR)插入Telnet流;

(4)服务器PI在接收到IP后,在Telnet流中寻找仅有一个的FTP命令。

三、FTP应答

FTP命令的响应是为了对数据传输请求和过程进行同步,也是为了让用户了解服务器的状态。每个命令必须有最少一个响应,如果是多个,它们要易于区别。有些命令是有顺序性的,因此其中任何一个命令的失败会导致从头开始。FTP响应由三个数字构成,后面是一些文本。数字带有足够的信息命名用户PI不用检查文本就知道发生了什么。文本信息与服务器相关,用户可能得到不同的文本信息。文本和数字以间隔,文本后以Telnet行结束符结束。文本可能多于一行,这时文本必须在括号内,第一行内要有信息表示文本多于一行,最后一行也要有所标记。如果是多行,可以在数字代码后加上"-",最后一行以数字开始,后面是,再加上Telnet的行结束符就可以了。下面是一个例子:

123-第一行

第二行

234 以数字开始的一行

123 最后一行

三位数字每位都有一定的意义,第一位确定响应是好的,坏的还是不完全的,通过检查第一位,用户进程通常就能够知道大致要采取什么行动了。如果用户程序希望了解出了什么问题,可以检查第二位,第三位留表示其它信息。第一位有五个值:

1yz 确定预备应答

请求的操作正在被初始化;在进入下一个命令前等待另外的应答。这类响应用于说明命令被接受,在实现中如何同步监视有困难,用户进程现在可以关注数据连接了。服务器FTP

进程对第个命令几乎都返回1yz响应。

2yz 确定完成应答

要求的操作已经完成,可以执行新命令。

3yz 确定中间应答

命令已接受,但要求的操作被停止,停止接收更新的信息。

4yz 暂时拒绝完成应答

未接受命令,要求的操作未执行,但错误是临时的,过一会儿可以再次发送消息。用户应该返回命令序列的开始。这个暂时可是不好确定,此命令的意思就是让用户进程再次尝试使用此命令。

5yz 永远拒绝完成应答

它与暂时拒绝完成应答的区别就在于错误条件是一时半会不会消失。

下面我们来看看第二位所代表的意义:

x0z 格式错误;

x1z 此类应答是为了请求信息的;

x2z 此类应答是关于控制和数据连接的;

x3z 关于认证和帐户登录过程;

x4z 未使用;

x5z 此类应答是关于文件系统的;

第三个数字是在第二个数字的基础上对应答内容的进一步细化。一般来说,数字代码后要有文本信息。实现时应该尽量使用现有的代码,而不要随便添加新的意义不大的代码。

有些命令如TYPE或ALLO,它们的成功不为用户进程提供任务新信息,所以不会有200应答返回。如果有些命令对于服务器来说不支持,也要返回确定完成应答,这样用户进程才有可能进行下面的命令。如果要求的不是可选实现的命令,而这个命令确实没有实现,那就要返回代码502。下面我们根据数字顺序列出各个应答码及其意义:

110------重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm,其中yyyy是用户进程数据流标记,mmmm是服务器标记。

120------服务在nnn分钟内准备好

125------数据连接已打开,准备传送

150------文件状态良好,打开数据连接

200------命令成功

202------命令未实现

211------系统状态或系统帮助响应

212------目录状态

213------文件状态

214------帮助信息,信息仅对人类用户有用

215------名字系统类型

220------对新用户服务准备好

221------服务关闭控制连接,可以退出登录

225------数据连接打开,无传输正在进行

226------关闭数据连接,请求的文件操作成功

227------进入被动模式

230------用户登录

250------请求的文件操作完成

257------创建"ATHNAME"

331------用户名正确,需要口令

332------登录时需要帐户信息

350------请求的文件操作需要进一步命令

421------不能提供服务,关闭控制连接

425------不能打开数据连接

426------关闭连接,中止传输

450------请求的文件操作未执行

451------中止请求的操作:有本地错误

452------未执行请求的操作:系统存储空间不足

500------格式错误,命令不可识别

501------参数语法错误

502------命令未实现

503------命令顺序错误

504------此参数下的命令功能未实现

530------未登录

532------存储文件需要帐户信息

550------未执行请求的操作

551------请求操作中止:页类型未知

552------请求的文件操作中止,存储分配溢出

553------未执行请求的操作:文件名不合法


本文标签: 服务器 命令 用户 文件 连接