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