`
javaboy2006
  • 浏览: 183169 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)(转载)

阅读更多
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
    在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
    总的来说,主动模式的FTP是指服务器主动连接客户端的数据端口,被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
    被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTp服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。

=========================================

FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP 工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。

(一)主动FTP
主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接)
2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)
3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)
4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)

(二)被动FTP

为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。

在被动方式FTP中,命令连接和数据连接都由客户端发起,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。

当开启一个 FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:

1. 从任何大于1024的端口到服务器的21端口 (客户端初始化的连接)
2. 服务器的21端口到任何大于1024的端口 (服务器响应到客户端的控制端口的连接)
3. 从任何大于1024端口到服务器的大于1024端口 (客户端初始化数据连接到服务器指定的任意端口)

4. 服务器的大于1024端口到远程的大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)


以上关于主动和被动FTP的解释,可以简单概括为以下两点:

1、主动FTP:

命令连接:客户端 >1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 1024端口 -> 服务器 21端口
数据连接:客户端 >1024端口 -> 服务器 >1024端口

(三) 主动与被动FTP优缺点:

主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
分享到:
评论

相关推荐

    ftp可登录但是无法下载,上传问题解决

    通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211.159.185.198 (211.159.185.xxx). 220 (vsFTPd 3.0.2) Name (211.159.185.xxx:...

    主动模式下载ftp文件

    ftp服务器如果是主动模式,下载方法与被动模式有很大差异,本案例提供主动模式下载方案

    MATLAB 中的被动模式 FTP:这些文件允许用户在 MATLAB 中使用被动模式 FTP。-matlab开发

    在防火墙后面工作的 FTP 客户端通常使用被动模式 FTP 连接到服务器,以避免防火墙出现问题。 MATLAB 的 ftp 对象没有被动模式功能。 附加文件修改此 MATLAB 类以允许此功能。 这些文件仅使用 MATLAB 使用的 ...

    模拟集成电路原理:ch05eng Passive and Active Current Mirrors.pdf

    模拟集成电路原理:ch05eng Passive and Active Current Mirrors.pdf

    vsftp这主被动模式的搭建文档

    FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。 先假设客户端为C,服务端为S. Port模式: 当客户端C向服务端S连接后,使用的是Port...

    仿写CodeIgniter的FTP类.zip

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP 的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端...

    ftp 客户端实现

    用edtftpj.jar 实现的ftp client ... 2)具有主动(Active)模式和被动(Passive)模式,支持二进制(Binary)传输和ASCII传输  3)支持中断后恢复传输  4)支持以FTP流的方式灵活地从FTP服务器读取和写入

    ftp_Solaris ftp passive mode

    How to set the ftp sever to passive mode in Solaris 10

    FTP流程解析

    FTP的协议流程,讲述Active以及Passive模式如何工作

    Linux FTP服务配置

    ftp1和ftp2用户的具体参数配置都需要/ftpconfig下的ftp1和ftp2文件来定义.我将已经写好的配置如下: [root@centos vsftpd]# cat /ftpconfig/ftp1 local_root=/var/ftp/vuser guest_username=vuser anon_world_...

    深入PHP FTP类的详解

    FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP 的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端...

    FTP客户端程序--VC

    自己写的一个网络课程设计-FTP客户端程序,实现本地文件浏览和服务器端文件浏览、上传和下载、用户FTP和匿名FTP登陆、ASCII和Binary传输模式、Port和Passive连接模式,包括源程序和设计报告,有详细代码解释

    Understanding Passive and Active Service Discovery

    Increasingly, network operators do not directly operate computers on their network, yet are responsible for assessing network vulnerabilities to ensure compliance with policies about information ...

    ftp主动模式突破防火墙自动上传下载.rar

    配置实现ftp自动上传下载,支持突破本地和服务端防火墙的主动模式上传下载。

    Design and synthesis of Active and Passive Vehicle Suspensions

    Design and synthesis of Active and Passive Vehicle Suspensions

    Passive Event Listeners - 被动事件监听器1

    Passive Event Listeners - 被动事件监听器在写webapp页面的时候,Chrome 提醒  [Violat

    ftpclient:PHP Ftp客户端类

    使用被动模式:### // This uses passive mode$ ftp -> passive ();// If you want to disable using passive mode then$ ftp -> passive ( false );使用二进制模式:### // This uses binary mode, required for ...

    UVM的学习笔记.docx

    uvm学习笔记,1. 关于UVM平台搭建的简单介绍省略。 P7 Agent是封装monitor, driver,sequencer的组件,agent包含两种模式。Active和Passive模式,其中Passive的模式只包含monitor,不能驱动DUT

    ftp协议相关文档

    根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号,在详细描述FTP前,我们来 简单讨论一下TCP端口号的一些基本概念。TCP使用端口号来标识所发送和接收的应用,端口号 可以帮助TCP来分离字节流并且帮相应...

    RHE5服务器管理之搭建FTP服务器步骤分享[图]

    FTP数据连接即FTP传输数据的过程,它有3种传输模式,即主动传输模式(PORT)、被动传输模式(PASSIVE,简称PASV)、单端口模式。  主动传输模式:当FTP控制连接建立,客户端提出目录列表及传输文件时,客户端发出...

Global site tag (gtag.js) - Google Analytics