ftp服务器 百科内容来自于: 百度百科

FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。

服务内容

一般来说.用户联网的首要目的就是实现信息共享文件传输是信息共享非常重要的一个内容之
一。Internet上早期实现传输文件,并不是一件容易的事,我们知道 Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

软件使用

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上传或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件
值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。
作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。
Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。这是Internet吸引我们的重要原因之一。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。
匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是 Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

软件种类

Server-U

Serv-U是一种被广泛运用的FTP服务器端软件,
server-u server-u
支持3x/9x/ME/NT/2K/2000/xp等全Windows系列。可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。 它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。
Serv-U 是众多的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了象FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。

FileZilla

是一款经典的开源FTP解决方案
FileZilla_Server FileZilla_Server
,包括FileZilla客户端和FileZillaServer。其中,FileZillaServer的功能比起商业软件FTP Serv-U毫不逊色。无论是传输速度还是安全性方面,都是非常优秀的一款。

VsFTP

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户.

IIS FTP

Windows Server 2003中配置FTP服务器 在Windows Server 2003系统中配置FTP服务器的方法:
第1步,在开始菜单中依次单击“管理工具”→“Internet信息服务(IIS)管理器”菜单项,打开“Internet信息服务(IIS)管理器”窗口。在左窗格中展开“FTP站点”目录,右键单击“默认FTP站点”选项,并选择“属性”命令。
第2步,打开“默认FTP站点 属性”对话框,在“FTP站点”选项卡中可以设置关于FTP站点的参数。其中在“FTP站点标识”区域中可以更改FTP站点名称、监听IP地址以及TCP端口号,单击“IP地址”编辑框右侧的下拉三角按钮,并选中该站点要绑定的IP地址。如果想在同一台物理服务器中搭建多个FTP站点,那么需要为每一个站点指定一个IP地址,或者使用相同的IP地址且使用不同的端口号。在“FTP站点连接”区域可以限制连接到FTP站点的计算机数量,一般在局域网内部设置为“不受限制”较为合适。用户还可以单击“当前会话”按钮来查看当前连接到FTP站点的IP地址,并且可以断开恶意用户的连接。
第3步,切换到“安全账户”选项卡,此选项卡用于设置FTP服务器允许的登录方式。默认情况下允许匿名登录,如果取消选中“允许匿名连接”复选框,则用户在登录FTP站点时需要输入合法的用户名和密码。本例选中“允许匿名连接”复选框
第4步,切换到“消息”选项卡,在“标题”编辑框中输入能够反映FTP站点属性的文字(如“服务器配置技术务网FTP主站点”),该标题会在用户登录之前显示。接着在“欢迎”编辑框中输入一段介绍FTP站点详细信息的文字,这些信息会在用户成功登录之后显示。同理,在“退出”编辑框中输入用户在退出FTP站点时显示的信息。另外,如果该FTP服务器限制了最大连接数,则可以在“最大连接数”编辑框中输入具体数值。当用户连接FTP站点时,如果FTP服务器已经达到了所允许的最大连接数,则用户会收到“最大连接数”消息,且用户的连接会被断开。
第5步,切换到“主目录”选项卡。主目录是FTP站点的根目录,当用户连接到FTP站点时只能访问主目录及其子目录的内容,而主目录以外的内容是不能被用户访问的。主目录既可以是本地计算机磁盘上的目录,也可以是网络中的共享目录。单击“浏览”按钮在本地计算机磁盘中选择要作为FTP站点主目录的文件夹,并依次单击“确定”按钮。根据实际需要选中或取消选中“写入”复选框,以确定用户是否能够在FTP站点中写入数据。
第6步,切换到“目录安全性”选项卡,
IISFTP IISFTP
在该选项卡中主要用于授权或拒绝特定的IP地址连接到FTP站点。例如只允许某一段IP地址范围内的计算机连接到FTP站点,则应该选中“拒绝访问”单选框。然后单击“添加”按钮,在打开的“授权访问”对话框中选中“一组计算机”单选框。然后在“网络标识”编辑框中输入特定的网段),并在“子网掩码”编辑框中输入子网掩码。最后单击“确定”按钮。
第7步,返回“默认FTP站点 属性”对话框,单击“确定”按钮使设置生效。现在用户已经可以在网络中任意客户计算机的Web浏览器中输入FTP站点地址来访问FTP站点的内容了。

工作模式

FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP 工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。主要有两种工作模式:

主动FTP

即Port模式,客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
  针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:
  1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
  2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
  3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
  4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)

被动FTP

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
  在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
  当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
  对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:
  1. 从任何大于1024的端口到服务器的21端口 (客户端初始化的连接)
  2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接)
  3. 从任何大于1024端口到服务器的大于1024端口 (客户端初始化数据连接到服务器指定的任意端口)
  4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)

总结

在主动模式下:FTP服务器的控制端口是21,数据端口是20,所以在做静态映射的时候只需要开放21端口即可,他会用20端口和客户端主动的发起连接。
在被动模式下:FTP服务器的控制端口是21,数据端口是随机的,且是客户端去连接对应的数据端口,所以在做静态的映射话只开放21端口是不可以的。此时需要做DMZ。
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定