【扫盲】ftp基础知识详解-尊龙凯时ag旗舰厅

【扫盲】ftp基础知识详解
发布日期:2020-04-21

本文主要介绍ftp的工作原理,ftp主动与被动两种工作模式。

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:增强被动模式

ftp与其他文件传输类型对比

网站地图