前段时间公司几个不同地方用的IBM FTP接连出现异常,首次排查过程也并不顺利,当时花了不少时间去了解FTP这个东西的工作流程以及它的两种不同模式。由于网上查到的文档确实有用,但也掺杂了很多无效无帮助内容,需要的时候再去筛选略难受,所以决定自己记一记笔记。
首先,想要解决问题必须先了解原理,提下我自己参考的《FTP的主动模式和被动模式》,这篇图文并茂可以说讲的很不错了,说明的很清楚看了很易懂,具体内容我就直接贴图了。
我在工作中实际遇到的问题是:系统应用报错FTP连接异常,但通过Serv-U软件查看ftp日志时,发现FTP用户能正常登录,但上传文件下载文件以及浏览文件目录等数据操作全部失败。同时,客户端采用linux 命令直连ftp服务端时,可正常使用相同用户名密码进行文件操作。
其实这个时候基本可以排除应用本身的问题,由工作模式我们很容易想到,是不是端口开放的问题。同时,由于我们应用采用被动模式连ftp,会需要访问服务端的随机开放数据端口。
问题应该是大概找到了,那怎么确认是什么端口呢,我们通过增加Serv-U的日志打印范围,再次查看日志,看到了文件操作时的提示内容:227 entering passive mode (X,X,X,X,X,X)。
通过查看资料,确认了端口,果然,telnet一下果然端口不通,问题基本就找到了,解决方案就相对简单了,可以使用Serv-u软件限制服务端随机开放的端口范围,然后服务端和客户端防火墙、堡垒机等对应限制上均对约定端口放行,telnet通了,问题也就解决了。