FTP的主动模式和被动模式

摘自http://blog.csdn.net/love_gaohz/article/details/50723164

  http://my.oschina.net/binny/blog/17469

FTP的主动模式和被动模式

主动模式:客户端通过控制链接发送PORT <address>(IP 地址和两字节的端口 ID)给服务器,然后bind之后对发送的端口进行监听。服务器收到后通过端口20和客户端建链,发送数据。

被动模式:客户端通过发送PASV 请求服务器等待链接。服务器返回。这意味着在服务器上有一个端口被开放,他将为我们后面接着的数据传输作好准备,但是我们如何知道该端口号呢,就在中,前面四位指服务器的地址,关键是最后两位,将最后第二位乘再加上最后一位的值就是我们的端口号,也就是。取得端口号之后我们就可以用连接到这里。去获取数据。

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同。在此重温一下FTP的主动模式和被动模式的相关知识。

在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题。如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题。要避免出现这样的问题,首先要了解FTP的工作模式。

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

(1) PORT(主动模式)

PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:

(2) PASV(被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

 2.两种模式的比较

从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。

主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。

被动模式只需要服务器端开放端口给客户端连接就行了。

 3.不同工作模式的网络设置

    我在实际项目中碰到的问题是,FTP的客户端和服务器分别在不同网络,两个网络之间有至少4层的防火墙,服务器端只开放了21端口, 客户端机器没开放任何端口。FTP客户端连接采用的被动模式,结果客户端能登录成功,但是无法LIST列表和读取数据。很明显,是因为服务器端没开放被动模式下的随机端口导致。

由于被动模式下,服务器端开放的端口随机,但是防火墙要不能全部开放,解决的方案是,在ftp服务器配置被动模式下开放随机端口在 50000-60000之间(范围在ftp服务器软件设置,可以设置任意1024上的端口段),然后在防火墙设置规则,开放服务器端50000-60000之间的端口端。

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

 4.如何设置 工作模式?

    哈哈,有人可能会问FTP服务器如何设置工作模式?实时上FTP服务器一般都支持主动和被动模式,连接采用何种模式是有FTP客户端软件决定。

时间: 2024-08-10 21:57:10

FTP的主动模式和被动模式的相关文章

FTP的主动模式与被动模式

1.FTP的主动模式与被动模式 FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. 1.1FTP主动模式: FTP客户端向服务器的FTP控制端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,客户端在命令链路上用PORT的命令告诉服务器我开放了某端口,你过来连接我.于是服务器从20端口向客户端的该端口发送连接请求,建立一条数据链路来传送数据.在数据链路建立过程中是服务器主动请求

FTP的主动模式和被动模式的相关知识

FTP的主动模式和被动模式的相关知识. 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题.如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题.要避免出现这样的问题,首先要了解FTP的工作模式. 1.FTP的PORT(主动模式)和PASV(被动模式) (1) PORT(主动模式) PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口, 发送用户名和密码登录,登录成功

ftp的主动模式和被动模式的配置和区别

原文链接: https://blog.csdn.net/zhangyuan12805/article/details/71425385 ftp模式分为主动模式(active mode)和被动模式(passive mode),ftp是tcp连接,所以要进行三次握手 1. active和passive模式的配置: 在命令行输入vim /etc/vsftpd/vsftpd.conf: 1> active mode: pasv_enable=NO     (passive模式关闭)pasv_min_po

FTP的主动模式和被动模式区别

主动模式的FTP工作原理:客户端从一个任意的非特权端口N连接到FTP服务器的命令端口,也就是21端口.然后客户端开始监听端口N+1,并发送FTP命令"port N+1"到FTP服务器.接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1). 被动模式:当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1).第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提

【ftp】主动模式和被动模式

来自:http://blog.csdn.net/liuhelong12/article/details/50218311 原博主不让转载全文,不过下面这部分是原博主转载别人的,所以我拿过来应该没问题吧(^ ^) (一)主动FTP主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口.然后客户端开始 监听端口N+1,并发送FTP命令"port N+1"到FTP服务器.接着服务器会从它自己的数据端口(20)连接到客户端指定

FTP Port主动模式 Passive被动模式区别-Filezilla Server设置Passive被动模式

1. FTP包含两种模式:Port主动模式.Passive被动模式. FTP一般使用2个端口,一个是命令端口(默认为21),一个为数据端口(默认为20). 主动模式:FTP客户端向FTP服务器端的命令端口请求,FTP客户端告知FTP服务器端自己的端口是多少,FTP服务器端的数据端口会连接FTP客户端的端口并进行数据传输. 被动模式:FTP客户端向FTP服务器端的命令端口请求,告知自己是被动模式,FTP服务器打开数据端口并告知FTP客户端,FTP客户端连接该FTP服务器数据端口并进行数据传输. 主

FTP 传输中的主动模式和被动模式

最近做一个项目用到FTP和其它系统进行文件传输,结果在FTP网络连接的问题上花了很多时间,由于太久没搞多FTP,忘记了FTP不单单开放21端口,客户端采用不同连接模式对网络有不同.在此重温一下FTP的主动模式和被动模式的相关知识. 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题.如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题.要避免出现这样的问题,首先要了解FTP的工作模式.  1.F

FTP主动模式和被动模式在VRP上实现(实验、报文和理论解析)

嗯~点关注不迷路 1.简述主动模式的FTP建立连接的主要步骤 图1-19 FTP主动模式示意图基本原理FTP(文件传输协议)的特殊性: 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯.但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计.一般,FTP连接包括:一个控制连接(control connection) ,它使用服务器的21端口,生存期是整个FTP会话时间:另外一个传输数据为工作在端口20的连接主动模式PORT模

FTP主动模式和被动模式的区别

基础知识: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常21端口是命令端口,20端口是数据端口.当混入主动/被动模式的概念时,数据端口就有可能不是20了. 主动模式FTP: 主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口--21端口.然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令给F