背景
在阿里云上部署一台CentOS实例,并安装了vsftpd,虚拟用户主体设置为nginx,根目录设置到/usr/share/nginx/html下。在windows下连接ftp时,出现连接超时的问题,并提示拉取目录列表失败。
问题根源
windows下的ftp软件是以pasc模式连接服务器,服务器端相应的端口因为防火墙导致客户端无法访问到。
FTP两种模式
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
解决
设置vsftpd.conf中pasv的端口
|
|
开启阿里云防火墙上对应的端口
如下所示