ftp端口号20和21的区别(【扫盲】FTP基础知识详解)
ftp端口号20和21的区别是21端口用于连接,20端口用于传输数据。进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,...
ftp端口号20和21的区别
ftp端口号20和21的区别是21端口用于连接,20端口用于传输数据。进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。FTP(FileTransferProtocol,文件传输协议)是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。ftp端口号20和21的区别拓展阅读

【扫盲】FTP基础知识详解
FTP协议就是文件传输控制协议。它可以使文件通过网络从一台主机传送到同一网络的另一台主机上,而不受计算机类型和操作系统类型的限制。服务器、大型机,还是DOS操作系统、Windows操作系统、Linux操作系统,只要双方都支持FTP协议,就可以方便地传送文件。
FTP 的两种模式
FTP分为两种工作模式:主动模式(Active)与被动模式(Passive)
FTP 主动工作模式(PORT)原理
FTP客户端首先会随机开启一个大于1024的端口N(1032),并连接服务端的21号端口,然后开放M端口(与端口N没直接联系)进行监听, 同时向服务器发出PORT 1033命令通知服务器自己的在接收数据时所使用的端口号。服务器在传输数据的时候,服务端通过自己的20端口去连接客户端的端口M。当不需要传输时,此连接会自动断开。如下图(图中端口号仅为示例):
FTP 被动模式(PASV)原理
FTP客户端随机开启一个大于1024的端口X向服务器的21端口发起连接,同时会开启X+1端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口Y进行监听,然后在ACK回复中通知客户端,自己的数据端口是Y。客户端收到命令后,会通过X+1号端口连接服务器的端口Y,然后在两个端口之间进行数据传输。这样就能使防火墙知道用于数据连接的端口号,而使数据连接得以建立 。如下图:
主动模式与被动模式区别
在主动模式中,传输数据时,服务器是主动连接客户端的数据端口。但如果客户端存在防火墙,那么当服务端在连接客户端数据端口的时,就有可能被防火墙阻挡。所以FTP主动模式在许多时候用于没有防火墙隔离的内部网络机器。一但有防火墙的存在,那么一般就不会在使用主动模式,而是被动模式。因为在被模式中,命令连接与数据连接,都是由客户端发起的,而防火墙一般不会对出去的数据包进行阻挡。
同时,FTP的主动模式(PORT)和被动模式(PASV)都只ipv4,在针对IPV6扩展后就出现EPRT、EPSV相对应。
简而言之,客户端被防火墙保护时,尽量使用被动模式;服务端被保护时,尽量使用主动模式。但不管使用哪种模式,数据连接的目标端口都不固定,无法简单配置基于端口的策略,当前防火墙一般通过解析FTP控制连接数据,临时开启数据连接访问权限的方式实现(经测试确认H3C防火墙确实采用此方式支持FTP协议,且V5版本不支持EPSV、EPRT)。
常见FTP客户端支持的连接方式:
PORT:主动模式
EPRT:增强主动模式
PASV:被动模式
EPSV:增强被动模式
