FTP即File Transfer Protocol文件传输协议
客户端与服务端建立会话,双方启动控制进程,用到TCP的21端口
利用此端口控制文件是上传还是下载,删除或是复制等操作命令。
真正的数据传输走的是另外的端口。
主动模式
当会话建立完成后,客户端就开启某个端口比如6666,然后告诉服务器自己用的是6666端口侦听,FTP服务器会主动访问客户端6666端口,服务器这边的端口为20。
被动模式
当会话建立完成后,服务器告诉客户端自己打开了某个端口,比如8888这样一个端口来侦听,然后等待客户端访问,这就是被动模式。
(注意:使用主动模式,防火墙需要打开21和20端口。如果只打开21和20端口,被动模式不能下载数据,访问ftp不成功很大可能就是模式不对)
下面,我将在自己的Win10上安装与配置ftp服务器
1.win+R输入:appwiz.cpl
![](https://img-blog.csdnimg.cn/20190508192353373.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
![图片名称](https://img-blog.csdnimg.cn/20190508192626580.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
![图片名称](https://img-blog.csdnimg.cn/20190508192821995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
4.稍等一会
![图片名称](https://img-blog.csdnimg.cn/20190508193059224.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
5.在window管理工具下找到iis并点击进入
6.单击网站添加站点
7.站点名字随意,物理路径填找个文件夹路径填就可以了。
8.选择自己的ip地址
![图片名称](https://img-blog.csdnimg.cn/20190508193937253.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
![图片名称](https://img-blog.csdnimg.cn/20190508194146549.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
10.在同一局域网虚拟机上即可访问,资源管理器和浏览器中都可访问
![图片名称](https://img-blog.csdnimg.cn/20190508194722456.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
![图片名称](https://img-blog.csdnimg.cn/2019050819552694.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYxNjE3OA==,size_16,color_FFFFFF,t_70)
那么如何知道ftp服务器使用的是被动模式还是主动模式呢?
我准备个大的文件,往共享的文件夹里上传文件,再查看会话进程就可以看见了。注意文件要大,不然等还没查看到,会话就结束了。
查看会话的命令:netstat -n
此时我的虚拟机中没有会话
当会话开始后注意看,10.168.10.249为ftp服务器的ip,后面跟的端口号不是20,显然是被动模式的传输。
那我硬要改为主动模式的传输呢?
首先点击工具选项卡找到Internet选项
点击高级,取消勾
再次上传文件,执行netstat -n命令
注意看,端口号变成20了,说明用的是主动模式传输。