FTP有两种模式,一种是主动模式,一种是被动模式。
FTP有两类端口,一个是连接端口,21,另一类是数据通道端口
主动模式:客户端开放数据通道端口,由服务器端来连接。因此需要客户端有外网ip
被动模式:服务器端开放数据通道端口,由客户端去连接。
阿里云的windows server如何搭建FTP服务,网上有参考。
需要注意的是,如果配置完成后连接FTP服务,报错:未路由的ip 172.xx.xx,原因是因为FTP防火墙设置那边没有指定防火墙外部IP地址。因此,只要在FTP站点的FTP防火墙支持菜单中,把防火墙外部IP地址设置为阿里云公网IP就可以解决。
另外,如果服务器的数据通道端口没有设定,默认的会是默认范围,同时如果阿里云控制台的安全组规则没有开放相应端口,会导致连接成功,但是数据传输不了。
解决办法:在IIS的FTP防火墙支持菜单中将数据通道端口范围指定为一个范围,例如:5000-6000,然后在windows的服务中
重启FTP service,并且重启IIS站点。同时在阿里云控制台的安全规则中TCP规则填入5000-6000.
就能正常访问FTP了,并且FTP所用的数据通道端口会被限制在你所设定的5000-6000范围。