一、FTP概述
1.FTP概念
- 文件传输协议(File Transfor Protocol)
- 和WEB服务类似,都是通过网络提供相关服务–WEB服务器提供网页,FTP提供文件
2.FTP端口号
- TCP 20/21
二、FTP的工作方式
1.FTP两种工作模式原理
-
被动模式
-
需要使用的端口
-
21端口
-
随机端口作为数据传输端口
-
图示
-
被动模式过程详细说明
-
FTP服务器的固定控制端口号是21,而客户机开始与FTP服务器连接的一瞬间由所用的FTP软件随机生成一个端口号(一般在50000以上),向服务器21端口发一个信号(我要用被动模式连接你了)
-
服务器向50001端口给回应(好的,输入账号和密码)
-
客户机输入账号密码给服务器
-
服务器开始验证,验证通过就和客户机之间建立命令通道(命令通道用于客户机输入FTP命令,服务器再提供相应的反馈)
比如开始客户机都会发送list命令(用于显示出FTP站点内容),下载命令,上传命令等。图形化界面操作本质上也是命令操作
-
客户机向服务器发送FTP命令给21端口
-
服务器收到后由于客户机选择使用被动模式,所以会临时开启一个随机端口号20001向客户机50001端口发送信息(你连接我的端口号20001)
-
客户机会临时生成随机端口号50002,并向服务器20001端口拨号(请求建立数据传输通道)
-
服务器如果可以收到请求,就会建立数据传输通道,接着服务器就可以根据上面客户机的FTP命令就可以传输数据了。
比如客户机一般第一条FTP命令都是列出文件内容list,那么建立数据传输通道后,就可以将FTP站点中的内容传输给客户端;如果客户机再传输下载命令,就将某一文件的数据传输给客户机。
-
-
-
主动模式
-
需要使用的端口
-
21端口:控制端口
-
20端口:数据端口
-
-
图示
-
过程详细说明
- FTP服务器的固定控制端口号是21,而客户机开始与FTP服务器连接的一瞬间由所用的FTP软件随机生成一个端口号(一般在50000以上),向服务器21端口发一个信号(我要用主动模式连接你了)
- 服务器向50001端口给回应(好的,输入账号和密码)
- 客户机输入账号密码给服务器
- 服务器开始验证,验证通过就和客户机之间建立命令通道
- 客户端会随机开启一个端口50002,向服务器的21端口发送FTP命令
- 服务器收到后由于客户机选择主动模式,服务器会开启20端口号,主动向客户端的50002端口拨号请求建立数据传输通道;如果建立成功,服务器就会按照FTP命令将相关数据传输给客户端
-
-
总结
-
主被动模式,描述的是数据传输过程,而不是控制过程(连接过程)
-
主被动模式,选择权在客户机上!
-
主被动模式,所谓主或被是站在服务器的角度!
服务器主动向客户端拨号建立通道传输数据叫主动模式
客户端主动向度武器拨号建立通道传输数据叫被动模式
-
2.FTP访问失败的原因—防火墙
- 服务器开启防火墙,且没有添加列外–开放21号端口
- 客户端通过主动和被动模式都无法访问FTP服务器
- 服务器开启防火墙,且添加列外–开放21号端口号
- 客户端通过被动模式可以进行用户登录和验证过程,但是无法显示目录列表和传输数据
- 客户端通过主动模式可以正常和FTP服务器通信
- 客户端开启防火墙
- 客户端通过被动模式可以正常与FTP服务器通信
- 客户端通过主动模式可以进行用户登录与验证过程,但无法显示目录列表和传输数据
- 客户端开启防火墙,但设置了入站规则—允许被访问8UFTP软件开启的端口
- 客户端通过主被动模式都可以访问FTP服务器
只有客户端能够选择FTP访问方式:一般在我的电脑地址栏上的FTP访问模式为被动模式,用第三方软件可以修改FTP访问模式。
三、部署FTP服务器
-
配置静态IP
-
安装IIS-ftp软件
-
如果安装IIS没有FTP站点,在安装IIS时点击详细信息,勾选FTP即可
-
-
使用默认站点或创建新的站点
-
取名–绑定IP(FTP服务器的IP)和端口号(21)
-
输入FTP站点主目录(要传输哪个文件夹中的内容就输入哪个文件夹)
-
设置权限
注意:用户最终权限为FTP权限与NTFS权限取交集
建议:FTP权限全部勾选,然后具体的在NTFS里做!
默认站点路径为:
C:\inetpub\ftproot
-
-
新建账号用于给他人访问FTP,去掉匿名访问对勾
-
一个管理员账户用于管理FTP传输的文件内容,另一个用于他人访问FTP进行读取下载等操作
-
取消匿名访问
-
-
为FTP站点(文件夹)及其子文件设置NTFS权限
-
要求为homework文件夹所有用户都可以访问
-
普通用户子文件夹download只能下载,管理员有完全控制权
-
upload只能上传,管理员有完全控制权
-
四、访问FTP站点
-
客户机可以使用第三方软件8UFTP或者直接在我的电脑地址栏输入
ftp:\\FTP服务器上站点绑定的IP
即可访问 -
输入服务器提供的账号密码(普通用户student和管理员用户admin登录,即可对FTP站点做不同的操作)
五、FTP与WEB结合使用
1.FTP传输网站(文件夹)的意义
- 我通过WEB服务器发布了一个网站(网站是文件夹的形式存储和发布的,上章学过),那么网站发布后肯定是需要人员去更新和维护的。如果我直接将WEB服务器的账号密码交给维护人员,让他登录服务器来直接管理网站的那个文件夹,肯定是有安全隐患的,那么我可以通过将发布的网站的文件夹通过FTP服务器共享出去,那么维护人员只需要在自己的主机上通过FTP来访问和管理网站的文件夹即可
2.实现方法
- 打开IIS–右键FTP站点–新建站点–绑定FTP服务器的IP和端口–选择FTP站点主目录(即指定发布的路径,这里为网站文件夹)–设置FTP权限
- 再创建一个新的本地账号,再在网站文件夹属性中设置新账户的NTFS权限,交给维护人员用于访问FTP传输的文件夹
- 再右键FTP站点–属性–安全账户–不允许匿名访问
3.总结(联系生活)
- 所有我们平时发布网站的时候,服务器会给你一个FTP账号,就是用来管理你发布的网站的
六、FTP第三方软件推荐
1.FTP客户端第三方软件
-
8UFTP
2.FTP服务端第三方软件
-
FTPserver
用于临时传文件使用(不适用于生产环境):将自己的主机部署成FTP服务器,传输本地的一些文件或文件夹,优势在于直接用软件的图形化界面设置权限(不用懂FTP权限和NTFS权限),因为软件已经拿到了要传输的文件夹或文件的最高控制权限,原理还是软件修改了FTP权限和NTFS权限;而且不需要创建系统用户,直接用软件的账号登录,比较安全
-
Serv-U
用于管理型长期给不同群体传输文件:比如在教学时可以用此软件给不同班的同学分享文件,里面选项和设置很多,更便于管理,使用说明见官方网站