当前位置: 首页 > 图文教程 > 服务器 > FTP服务器 > 实现文件双向传输 搭建FTP服务器

FTP服务器
用SSL加密增强FTP服务器安全性
Windows下FTP服务器的安全管理
如何配置FTP服务器
FTP服务器快速架设全攻略
FTP服务器如何实现安全性 (上)
基于UNIX平台FTP服务器的建立(下)
Windows XP架设FTP服务器的方法教程
Linux系统架设VSFTP服务器实例解析
企业内部FTP服务器的架设
FTP服务器安全
Linux的ftp服务vsftp详细配置
Ubuntu自带的FTP服务器vsftpd技巧
在Linux下建立强大的FTP搜索引擎
用无线路由器构建FTP服务器
FTP服务中允许上传权限存在的问题
简单实用 Linux下的FTP服务器配置
FTP空间不足 Windows 系统性能监控来报警
如何启用Web服务器并运行FTP服务
FTP服务器架设的三方面安全因素
如何配置Linux操作系统下的FTP服务器

实现文件双向传输 搭建FTP服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 113 ::
收藏到网摘: n/a

FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。

FTP协议

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。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无法和内部网络的客户端建立一个新的连接,造成无法工作。

用Serv-U架设个人FTP

架设FTP服务器,其实并没有技术难度,只需用Serv-U这个软件就可轻松搞定了。Serv-U支持所有版本的Windows操作系统,可以设定多个FTP服务器,可以限定登录用户的权限、登录目录及服务器空间大小,功能非常完善。以下笔者就以Serv-U汉化版为例,给大家讲讲架设个人FTP的具体步骤。

首先下载安装Serv-U,运行,将出现“设置向导”窗口,我们就来跟随着这个向导的指引,一步步进行操作。

1. 设置Serv-U的IP地址与域名

一路单击“下一步”跳过系统提示信息,来到“您的IP地址”窗口,这里要求输入本机的IP地址。

如果你的电脑有固定的IP地址,那就直接输入;如果你只有动态IP(例如拨号用户),那该处请留空,Serv-U在运行时会自动确定你的IP地址。

下一步,进行“域名”设定。这个域名只是用来标识该FTP域,没有特殊的含义,比如笔者输入“ftp.hello.com”。

接下来的“系统服务”选项必须选“是”,这样当你的电脑一启动,服务器也会跟着开始运行。

2.设置匿名登录

匿名访问就是允许用户以Anonymous为用户名,无需特定密码即可连接服务器并拷贝文件。如果你不想让陌生人随意进入你的FTP服务器,或想成立VIP会员区,就应该在“匿名账号”窗口中选“否”,这样就只有经过你许可的用户才能登录该FTP。鉴于匿名登录尚有一定的实用需求,笔者在此选“是”。

之后就要为匿名账户指定FTP上传或下载的主目录,这是匿名用户登录到你的FTP服务器后看到的目录。设定后,向导还会继续询问你是否将匿名用户锁定于此目录中,从安全的角度考虑,建议选“是”。这样匿名登录的用户将只能访问你指定的主目录及以下的各级子目录,而不能访问上级目录,便于保证硬盘上其他文件的安全。

3.创建新账户

除了匿名用户,我们一般还需要建立有密码的专用账号,也就是说可以让指定用户以专门的账号和密码访问你的服务器,这样做适用于实行会员制下载或只让好友访问。在“命名的账号”窗口中将“创建命名的账号吗”选为“是”,进入“账号名称”设置,填入你制定的账号名称,而后在“账号密码”窗口输入该账号的密码。

单击“下一步”,会要求你指定FTP主目录,并询问是否将用户锁定于主目录中,选“是”,作用与匿名账户设定基本相同,不再赘述。

紧接着要设置该账户的远程管理员权限,分为“无权限”、“组管理员”、“域管理员”、“只读管理员”和“系统管理员”五种选项,每项的权限各不相同,可根据具体情况进行选择。

至此,我们已拥有了一个域——ftp.wxxi520.com及两个用户——Anonymous和wxxi520。点击“完成”退出向导,稍等片刻Serv-U软件主界面将自动弹出,我们还要在此进行一些管理员设置。

4.管理员设置

每个Serv-U引擎都能用来运行多个虚拟的FTP服务器,而虚拟的FTP服务器就称为“域”。

对FTP服务器来说,建立多个域是非常有用的,每个域都有各自的用户、组和相关的设置。以下笔者就简要说说管理器界面上必要的各项设置。

首先点击窗体左方的“本地服务器”,勾选右边的“自动开始(系统服务)”。

选择左方的“域→活动”,这里记载了该域下所有用户的活动情况,是非常重要的监控数据。

“域→组”:在此可自建一些用户组,把各类用户归到相应的组中,便于管理。

“域→用户”:这里有我们刚建立的两个账号,其中的细节设置十分重要,具体如下。

账号:如果有用户违反FTP的规定,你可以点击此处的“禁用账号”,让该用户在一段时间内被禁止登录。另外此处的“锁定用户于主目录”一定要勾选,否则你硬盘的绝对地址将暴露。

常规:根据自身的实际需要,在此设置最大的下载和上传速度、登录到本服务器的最大用户数、同一IP的登录线程数等。

IP访问:你可以在此拒绝某个讨厌的IP访问你的FTP服务器,只要在“编辑规则”处填上某个IP地址,以后该IP的访问将会全部被拦下。

配额:勾选“启用磁盘配额”,在此为每位FTP用户设置硬盘空间。点击“计算当前”,可知当前的所有已用空间大小,在“最大”一栏中设定最大的空间值。

最后,请在有改动内容的标签卡上点击右键,选择“应用”,如此才能使设置生效!

下载和上传

要使用FTP服务器下载和上传,就要用到FTP的客户端软件。常用的FTP客户端软件有CuteFTP、FlashFXP、FTP Explorer等等。对于它们的具体使用,这里就不细讲了。基本上只要在这些软件的“主机名”处中填入你庙宇的FTP服务器IP地址,而后依次填入用户名,密码和端口(一般为21),点击连接,只要能看到你设定的主目录并成功实现文件的下载和上传,就说明这个用Serv-U建立起来的FTP服务器能正常使用了!