目录
FTP文件传输协议
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
FTP服务
FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议。简单地说,支持FTP协议的服务器就是FTP服务器。
与大多数Internet服务一样,FTP也是一个客户端/服务器系统。用户通过一个支持FTP协议的客户端程序,连接到在远程主机上的FTP服务器程序。用户通过客户端程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户端。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户端程序代表用户接收到这个文件,将其存放在用户目录中。
FTP工作模式
1、主动模式 (PORT)
主动模式下,客户端随机打开一个大于 1024 的端口向服务器的命令端口 P,即 21 端口,发起连接,同时开放N +1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从它自己的数据端口 (20) 主动连接到客户端指定的数据端口 (N+1)。
FTP 的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞。
2、被动模式 (PASV)
为了解决服务器发起到客户的连接问题,有了另一种 FTP 连接方式,即被动方式。命令连接和数据连接都由客户端发起,这样就解决了从服务器到客户端的数据端口的连接被防火墙过滤的问题。
被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 (N > 1024 和 N+1) 。
第一个端口连接服务器的 21 端口,提交 PASV 命令。然后,服务器会开启一个任意的端口 (P > 1024 ),返回如“227 entering passive mode (127,0,0,1,4,18)”。 它返回了 227 开头的信息,在括号中有以逗号隔开的六个数字,前四个指服务器的地址,最后两个,将倒数第二个乘 256 再加上最后一个数字,这就是 FTP 服务器开放的用来进行数据传输的端口。如得到 227 entering passive mode (h1,h2,h3,h4,p1,p2),那么端口号是 p1*256+p2,ip 地址为h1.h2.h3.h4。这意味着在服务器上有一个端口被开放。客户端收到命令取得端口号之后, 会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。
安装配置FTP服务器
1、安装FTP服务
选择Web服务器(IIS),添加角色服务;勾选FTP服务器
2、添加FTP站点
右击“网站”,选择“添加FTP站点”,弹出添加FTP站点窗口
设置FTP站点名称和物理路径。物理路径即FTP主目录,所谓主目录是指映射为FTP根目录的文件夹,FTP站点中所有文件将保存在该目录中。用户可以把主目录修改为计算机中的其它文件夹,甚至可以是另一台计算机上的共享文件夹
绑定IP地址。Windows Server 2008 R2操作系统中允许安装多块网卡,而且每块网卡也可以绑定多个IP地址,通过设置IP地址,FTP客户端可以利用设置的这个IP地址来访问该FTP服务器,在下拉列表中选择一个即可,端口号使用默认的21即可
FTP身份验证有匿名和基本两种方式,为了安全建议使用基本身份验证方式。“授权”栏目中可以根据需求选择允许所有用户访问还是只允许指定用户访问;权限可以根据需要选择“读取”或者“写入”。点击“完成”按钮,就完成了FTP站点的添加
设置FTP读取权限
FTP的读取权限由两方面构成,一方面是FTP服务器的访问权限,另一方面由磁盘的NTFS读写权限
1、首先,在FTP服务器上对站点设置读写权限
2、选择FTP站点主目录文件夹,选择“编辑权限”,切换到“安全”选项,设置用户相应的读取权限
注意:以上图为例,虽然在FTP服务器上已经允许了所有用户具有读写权限,但是在FTP主目录文件夹NTFS权限中只设置了读取权限而没有设置写入权限,这就会导致用户虽然能够访问FTP,但是依旧不能进行写入
FTP访问方式
1、通过命令行访问
登陆FTP命令:ftp 192.168.0.2
2、通过Web方式访问
在地址栏中输入:ftp://192.168.0.2/
3、通过FTP软件访问
以软件CuteFTP为例:安装完成之后选择新建 -- FTP站点
输入FTP的IP地址和用户名密码
连接成功
创建隔离用户的FTP站点
隔离用户的FTP即每个用户登录到FTP之后只能看到对应自己的文件夹以及一些公共的文件夹,而看不到别人的文件夹
以域环境中建立隔离用户的FTP站点为例:
1、首先在创建好的FTP站点主目录文件夹下建立好相应用户的文件夹
2、在域中新建组织单元,并新建相应的FTP用户;用户名建立的要和你建立路径下的用户名要相同,还需要建立一个另外的FTP用户来当作两个用户登录的“影子用户”。启用高级功能
3、双击或者右键user1用户,选择属性编辑器,找到msIIS-FTPDir和msIIS-FTPRoot,分别输入用户名和路径,user2也一样。注意:一定要开启高级功能!
4、打开IIS信息管理服务,打开ftp,选择用户隔离;选择“在Active Directory中配置的FTP主目录”,输入刚才的“影子用户”的用户名和密码,选择“启用”
5、测试隔离用户的FTP站点
创建多台FTP站点
1、使用不同的端口号创建多个站点
2、通过网卡绑定多个IP地址创建多个站点(参看前述文章配置IIS搭建网站(二))
创建虚拟目录
虚拟目录,是为服务器硬盘上不在主目录下的一个物理目录或者在其它计算机上的主目录而指定的名称,或者称之为“别名”。简单来说,就是将硬盘中分散的一些文件夹整合然后挂接在FTP站点的主目录文件夹下,用户可以通过采用访问站点+虚拟目录的方式来访问挂接的文件夹
选择FTP站点,右击“添加虚拟目录”,在弹出的窗口中设置虚拟目录的别名和路径;
原创文章,转载请注明出处