FTP 本地环境正常,服务器时storeFile返回fasle的问题

今天部署服务器出现一个问题storeFile返回fasle问题,可是本地上传文件是正常的,百度了很多帖子讲的都不够详细(不够小白–),这里特意把解决方式贴一下:

以下需要仔细看



PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服 务器的21端口,发送用户名和密码登录,登录成功后要list列表或者 读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据

PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。



那么我们看完了上面的东西,就是如何解决问题了。

首先将连接方式改为被动模式。之所以选择被动模式是因为多台服务器连接ftp时每台都需要去部署安全组和防火墙,对服务器部署很麻烦,被动模式仅仅需要配置ftp服务方安全组即可,当然主动模式也是可以解决这个问题,原理一致,不多说。

第一步:在ftpclient.storeFile(filename, in)前加上这行 :

    ftpclient.enterLocalPassiveMode();//被动方式

第二步:修改vsftpd 的配置文件,在文件后加入

vim /etc/vsftpd/vsftpd.conf (找不到的话就 find / -name vsftpd.conf)

    # 开启被动模式

    pasv_enable=YES

    # 数据传输最大端口

    pasv_max_port=21110

    # 数据传输最小端口

    pasv_min_port=21100

    重启ftp

    systemctl restart vsftpd.service

第三步: 修改阿里云安全组(防火墙)


你可能感兴趣的:(FTP 本地环境正常,服务器时storeFile返回fasle的问题)