问题分析:
网上一大堆关于类似问题的分析文章,都指向服务器不支持TLS,笔者认为,这种理由并非完全正确:除非服务器端没有启用FTPS,否则这种原因和解决方式是不成立的。
经过实践测试,如果FTP服务器端正常启用FTPS,出现“auth tls 无法连接到服务器”这个问题的客户端电脑,都是没有独立外网IP地址的。同时也要排除客户端电脑防火墙的原因,因为关闭防火墙后,问题依然存在。
同样一台服务器(被动模式和TLS设置都正确),客户端电脑,如果没有外网IPV4地址,但有外网IPV6地址,那么通过FTPS是可以成功连接到FTP服务器上的。如果IPV4和IPV6同时具备,那就100%可以成功连接。
以测试结果分析,FileZilla 的 TLS 连接,可能需要客户端的外网IP地址支撑,才能成功地验证TLS加密信息。而国内很多网络是不提供外网IPV4(一般都有提供独立的IPV6地址)的,或者服务器不支持IPV6,所以才导致大规模的用户使用FTPS连接受限无法成功。
解决方案:
1. 网上说的关闭TLS(FTPS),使用普通的FTP连接,是不可取的,且不一定能成功(如果服务器有要求必须加密验证)。如果实在找不到解决方法,只此一条路,就先凑合着用吧。。。
2. 有一种情况,是FTP软件BUG,笔者曾经历过一次,升级FileZilla后问题解决。
3. 使用一台远程计算机作为中转,可以是桌面,也可以是代理(比较复杂 )。
4. 使用手机热点连接FTPS。如果有线宽带无法验证TLS,可以尝试此方法。笔者用此方法使用手机热点成功连接,一旦切换回有线网络,立马出问题。也正因此才确定问题的关键是网络,而非软件和服务器(以前能正常连接,突然间无法连接)。
由此也产生了另一种猜测,可能是TLS请求被网络供应商(或业务员)恶意拦截。因为手机热点纵然有IPV6地址,服务器若不支持IPV6,走的还是IPV4(没有IPV4外网IP),与前面提到的需要外网IP观点产生了矛盾,那么就可能是被恶意拦截。至于为什么要这样做?网上全是建议关掉FTPS,使用不加密的FTP方式连接;从“阴谋论”的角度看,这是有人在逼迫我们用不安全的方式连接,我们的账号和密码一旦使用,就可能被拦截和窃取,从而威胁到服务器的安全。