服务器配置ftp时出现 200 Type set to A – 227 Entering Passive Mode

今天在配置阿里云服务器ftp的时候,始终是连接不上,一直出现"200 Type set to A - 227 Entering Passive Mode"这个错误,各种纠结抓狂呀。经过一顿猛搜索,并在仔细的挖掘了下ftp的相关知识后,问题得以解决,在此分享一下吧,也算是对ftp有了一个较为深刻的认识。

一、首先来说下ftp的两种模式:主动模式和被动模式

之前一直对这两种模式比较困惑,其实呢主动和被动是相对于服务器来说的。ftp连接后,在建立数据链路的时候,如果是服务器主动连向客户端的话就成为主动模式;反之,如果是客户端连向服务器的话就称为被动模式,下面来具体说明下两者的工作过程。

主动模式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:"我打开了xx端口,你过来连接我"。于是服务器从20端口向客户端的xx端口发送连接请求,建立一条数据链路来传送数据。

被动模式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了xx端口,你过来连接我”。于是客户端向服务器的xx端口发送连接请求,建立一条数据链路来传送数据。

二、两种方案来解决本文问题

本文所用到的ftp服务器为IIS,并且确保你ftp的21端口是对外开放的,其他ftp服务器配置可能与此不同,但是思路是一样的。

1、配置ftp的被动模式,具体步骤如下

①打开FTP防火墙支持

②打开后,配置下数据通道端口范围和防火墙的外部IP地址(即你的服务器的ip地址)

③这步骤至关重要,就是要把以上配置的数据通道端口范围对外开放,即这些端口要在防火墙中进行放行,如果你是阿里云服务器的话,那么你要在管理控制台的安全组配置中进行端口放行配置。

2、第二个解决方法是在主动模式的情况下,一定要把20端口对外放行,因为这个是主动模式建立数据链路的通道。

至此,以上问题得以解决。

发表评论