因为对外FTP客户要求安全升级的原因,针对部分FTP User启用了SSL认证功能。
启用方式:
1,建立FTP User时,“Force SSL for user login ”前面打勾。
2,启用被动传输模式,进入FileZilla Server-->Edit-->Settings,找到右边的Passive mode settings,启用被动模式,并且设置端口,65401~65420
对内网FTP测试,建立FTP加密类型时,选择“要求显式的FTP Over TLS”,测试通过,没有问题。
对外网FTP测试时,提示如下:
状态: 读取目录列表…
状态: 服务器发回了不可路由的地址。使用服务器地址代替。
命令: MLSD
响应: 425 Can’t open data connection.
错误: 读取目录列表失败
。。。
问度娘,一般三种解决思路,1是启动上述被动传输模式,配置相应端口。2是开启本机防火墙对应端口,3是将FileZilla的传输模式修改为被动传输模式。
思考一下,我内网认证是通过的,只是外网认证不透过,证明和对外的防火墙有关系,应该是相应的端口没有开放的原因,于是,在对外防火墙上打开了上述端口对FTP Server的映射,同时开放了990端口(隐式FTP认证端口)。再次测试,OK,一次性通过,这里,透过防水墙的日志,也看到认证过程了。
对等的是,客户端也需要除了开启对服务器20,21端口外,还要开启对PASV端口(Eg,这里是65401~65420)的访问权限,客户端才可以正常访问服务器的FTP资源。
解决问题过程中,发现一个尴尬的问题,FileZilla FTP没有将FTP 的数据连接(Data Connect)端口显示出来,但采用FlashFXP却清晰看到整个连接过程,更有助于问题的解决。