使用过FTP的都可能遇到以下错误(以CuteFtp为例)
状态:> 正在重获目录列表...
命令:> PASV
227 Entering Passive Mode (127.0.0.1,7,221)
命令:> LIST
状态:> 正在连接数据 socket...
错误:> 建立数据 socket 失败
如果出现这个错误,请在FTP软件设置当中将你的数据连接类型由 PASV 改为 PORT 应该就可以了。
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。