一、vsftpd配置被动模式

pasv_enable=YES #被动模式

pasv_min_port=10071 #pasv连接模式时的最小端口

pasv_max_port=10099 #pasv连接模式时的最大端口

二、vsftpd配置主动模式

pasv_enable=NO

port_enable=YES

当pasv_enable和port_enable同时为YES时,同时支持主、被动模式

三、主动模式与被动模式区别

1、PORT(主动)模式

所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端通过访问服务端的21端口,然后客户端分配一个端口供ftp服务端获取数据,然后服务端通过20端口主动到客户端指定端口获取数据,20为服务器的出向端口

此模式,防火墙只需要开放21端口的对外访问策略

2、PASV(被动)模式

所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:客户端通过访问服务端的21端口,然后客户端提交PASV命令,让服务端分配一个用于传输数据的端口,此端口范围为vsftpd.conf配置的pasv_min_port-pasv_max_port,然后客户端通过分配的端口上传数据。(注意此模式下的FTP服务器不需要开启tcp 20端口)

此模式,防火墙需要开放21端口的对外访问策略和pasv_min_port - pasv_max_port端口范围内的访问策略

四、linux ftp客户端默认使用被动模式

   ftp客户端,默认使用被动模式连接服务端,若服务端设置的为主动模式上传数据,则需要在ftp客户端命令行切换,切换的方式为执行以下命令:

passive

使用被动模式的客户端访问主动模式的服务端时,上传会报没有权限

五、使用java代码访问ftp服务端

       当使用java代码ftp工具访问ftp服务时,若已经服务端是使用的被动模式,则需要在连接时,调用以下命令,告之服务端分配数据上传端口   

        ftp.enterLocalPassiveMode();            // 使用被动模式时,需要通知服务端分配一个上传端口   

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐