【FTP】Windows访问vsftp服务器报错

情景再现

Windows连接vsftp服务器放置文件,报错如下:

打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹。
详细信息:
200 Switching to ASCII model.
277 Entering Passive Model(192,184,90).

原因

port方式在传输数据时,是Server端连接client端,有一个条件:它必须有一个公网ip。
如果client处于防火墙或net网关后面,server就找不到client端,就会报错。
所有的ftp客户端软件都支持两种传输方式,IE默认是port(主动)。

解决

IE浏览器->Internet选项->高级->将“使用被动FTP(用于防火墙和DSL调制解调器的兼容)”选项去掉勾选->确定。

扩展

FTP主动模式(active mode)与被动模式(passive mode)的工作原理

主动模式(服务器向客户端敲门,然后客户端开门)FTP:
客户机与服务器之间建立连接时,客户机是大于1024的端口上,服务器是20端口。
客户机的端口是大于1024的,而服务器的端口是21端口接收请求,而是20端口给客户机回应。
允许FTP客户机从大于1024的端口连接服务器的21端口。
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口。
允许FTP客户机从大于1024的端口回应来自FTP服务器的20端口的网络连接。
命令连接:客户端大于1024的端口 -> 服务器 21端口
数据连接:服务器 20端口 -> 客户端大于1024的端口
20171226094239038.jpg

被动模式(客户端向服务器敲门,然后服务器开门)FTP:
客户机与服务器之间建立连接都是在大于1024的端口上的。
客户机的端口是大于1024的,而服务器的端口是21端口接收请求,而是从大于1024端口给客户机回应。
允许FTP客户机从大于1024的端口连接服务器的21端口。
允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接。
允计FTP客户机从大于1024的端口连接FTP服务器的大于1024端口。
允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接。
命令连接:客户端大于1024的端口 -> 服务器 21端口
数据连接:客户端大于1024的端口 -> 服务器大于1024的端口
20171226094256663.jpg