关于ftp的被动模式和主动模式

2023-04-14 17:20:25 6227

ftp的主动模式和被动模式

 

在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。

 

如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题。

图片2.png

图片3.png

要避免出现这样的问题,首先要了解FTP的工作模式。

 

FTP的PORT(主动模式)和PASV(被动模式)

 

主动模式 port

 

工作原理:

 

- FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录。

- 登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;

- FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据

图片4.png

被动模式 pasv passive

 

- FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录。

- 登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上,可在客户端指定),然后把开放的端口告诉客户端。

- 客户端再连接到服务器开放的端口进行数据传输。

 

 

图片5.png

 

问题的解决方法

出现开头提到的问题的原因是:服务器端只开放了21端口, 客户端机器没开放任何端口。

 

FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动模式下的随机端口导致。

 

解决方法如下:

 

1.首先在ftp服务器中指定被动模式随机生成的端口范围

图片6.png

2.在防火墙中开放刚才指定的端口,如果是云服务器,有安全组的,也需开放


3. 重新连接测试,连接成功

图片7.png

主动模式下,客户端的FTP软件设置主动模式开放的端口段,在客户端的防火墙开放对应的端口段。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: