关于FTP的PORT与PASV模式的理解

前几天面试被问到为什么FTP服务器有PORT模式还需要PASV模式,没回答上来,很遗憾。

FTP分为PORT模式和PASV模式,熟知的概念。

首先要知道FTP都是通过一个控制端口发送命令的,即服务器的21端口;

PORT模式:

PORT模式也叫对于服务器的主动模式,由客户端选择自己的随机端口主动连接服务器的21端口,这个时间是有三次握手,四次挥手过程在里面的,在连接建立之后,即可以开始发送命令,并选择用什么模式完成此次连接(不清楚,这句话有待查验),如果用PORT模式,则需要客户端发送一个端口号给服务器,服务器来连接客户端的这个端口完成此次发送文件或者目录的任务。并且在下一次发送命令时重新选择端口。

PASV模式:

PASV模式也叫对于客户端的被动模式,由客户端选择随机端口连接服务器的21端口,这个 过程与PORT模式相同,连接建立以后发送命令给服务器,同时发送端口号给服务器,这个时候服务器查看自己的这个端口是否是可用的,如果可用则返回ACK码并完成此次任务传输,不可用时返回UNACK码,这时客户端重新发送PASV命令,选择另一个新的端口完成任务。

至于为什么已经有了PORT模式还要用PASV模式,

约定俗成的端口更容易为多数人所知,黑客也知道,这样一来黑客也知道服务器20端口在发送文件,更容易入侵抓取发送的数据

PASV模式的缺点,服务器需要开启所有的大于1024的端口以供客户端连接,如果此时有一软件可以知道哪个ip成功连接了ftp的服务器就只对这个客户端开放所有的端口,或者检测到客户端发来的端口号以后检测能不能用,能用的话再只对这个客户端开放这个端口。

全文综上,菜鸟一个,还请大佬指点。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章