FTP主动模式、被动模式介绍_FTP服务器

主动模式

  1. FTP client use TCP port 1026 for command to FTP server command port 21
  2. FTP server use TCP port 21 responed  to FTP client command port 1026
  3. FTP server use TCP port 20 for sending data to FTP client data port 1027 (1026 + 1)
  4. FTP client use TCP port 1027 ( 1026 + 1) for data ACK to FTP server port 20

被动模式

  1. FTP client use TCP port 1026 to FTP server command port 21 via command PASV
  2. FTP server use TCP port 21 to FTP client 1026 command port for reply data port 2024
  3. FTP client use TCP port 1027 (N+1) to FTP server 2024 for data transmit and ACK
  4. FTP server use TCP port 2024 to FTP client for data transmit and ACK

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优缺点

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

幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有 限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危 险。

简而言之:

主动模式(PORT)和被动模式(PASV)。主动模式是从服务器端向客户端发起连接;被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21端口进行用户验证及管理,差别在于传送数据的方式不同,PORT模式的FTP服务器数据端口固定在20,而PASV模式则在1025-65535之间随机

FTP主动模式与被动模式的解决与原理

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

概括:
--------------------------------------------------------------------------------
  主动模式:服务器向客户端敲门,然后客户端开门
  被动模式:客户端向服务器敲门,然后服务器开门
  所以,如果你是如果通过代理上网的话,就不能用主动模式,因为服务器敲的是上网代理服务器的门,而不是敲客户端的门
而且有时候,客户端也不是轻易就开门的,因为有防火墙阻挡,除非客户端开放大于1024的高端端口
--------------------------------------------------------------------------------

时间: 2024-10-09 12:34:35

FTP主动模式、被动模式介绍_FTP服务器的相关文章

阿里云金融云下FTP主动模式的讨论

阿里云的金融云集群,针对金融用户做了很多主动式的防御手段,其中包含主动禁止外网连接,安全组默认是黑名单的形式,必须要显式的放行对应的端口或IP才可以向外通信. 问题的起点 大多数FTP客户端默认使用被动模式来进行连接,在这个模式下,客户端会去连接服务器的某个大于1024的随机端口,但在金融云下使用就不太方便,如之前所述,金融云端口需要显式放开,但又不可能为了FTP将所有端口放开,所以就需要使用FTP的主动模式. FTP的主动模式工作流程 以下是使用lftp的一个典型的主动模式下的抓包与流程: 主

FTP 主动模式和被动模式

FTP可以运行两种模式:主动模式和被动模式.FTP的客户端和服务器之间有两个通道,分别是命令通道和数据通道 ,这两个通道存在的目的是把TCP连接分开.命令通道用来发送命令和接收响应,数据通道专门用来传输文件.这样设计有一个很大的好处就是:命令的发送不用等待数据传输完成. 主动模式 在主动模式中,客户端从任意非特殊端口(N>1023)接入服务器 命令端口 21,建立命令通道:然后客户端会发送N+1端口到服务器 数据端口 20,客户端开始监听N+1端口,服务器端用本地的20端口和客户端发送的N+1端

centos 搭建ftp服务器详解及简单介绍_FTP服务器

centos 搭建ftp服务器 1.安装vsftpd sudo yum install vsftpd 2.配置vsftpd.conf # Allow anonymous FTP? (Beware - allowed by default if you comment this out). anonymous_enable=NO # When SELinux is enforcing check for SE bool ftp_home_dir local_enable=YES write_ena

FTP 分类账户设置经验谈_FTP服务器

现在我将我们学校的一些经验写出来供大家参考. 我们架设FTP服务的原则就是要老师们容易上手,我们好管理,系统稳定,尽可能的少出问题.我们用的是Sever-U,如何架设FTP服务器已经有很多文章都详细介绍了,笔者这里主要说的是如何充分利用FTP服务.如果只是简单地开设一个账户,方便教师在局域网中文件的临时存放与传输,那离充分挖掘它的潜力还差得远呢! 为了使用上的更方便,我们一共设立了公共账户.个人账户.常用软件账户.资源账户等几大类账户. 公共账户 公共区只有一个账户,用户名很简单"123&quo

启用账户安全策略防FTP穷举攻击的保护?_FTP服务器

默认地,星外虚拟主机管理平台已安装了对抗FTP穷举攻击的保护服务. 但你必须进一步设置它才有作用: 开始--管理工具--本地安全策略 帐户策略---设置500次错误就锁定.(其他设置不要改动!) 为什么不限制在3次? 3次太少了.用户一错,就要去用户区修改FTP密码才能登陆,所以,一般建议是500次. 这样,当攻击发生时,星外FTP穷举攻击的保护服务会自动启动,自动将此用户的密码改成一个40位的不可逆的随机密码. 受攻击的用户,必须到用户区修改FTP密码才能登陆.

ftp客户端主动模式代码(c语言)

问题描述 ftp客户端主动模式代码(c语言) 跪求大神指点ftp主动模式如何用c编写,知道客户端和服务器端传输流程,但是写不出代码 解决方案 http://www.codeproject.com/Articles/8667/FTP-Client-Class 解决方案二: 只是缺少练习,找本unix网络编程的书看看,东西不多,只涉及到socket和多线程的就行了.

设置Serv-U FTP 支持被动模式连接 ,530错误等解决办法集锦_FTP服务器

设置Serv-U FTP 支持被动模式连接 一大早被朋友说ftp始终连不上去,我自己去掉被动模式就可以连接. 这个问题困扰了 我好长时间,是下面这篇文章解决了它.特在这里留个备份. 我的问题是没有进行相应的端口设置. 设置支持被动(PASV)模式连接: 本地服务器-->设置-->高级-->PASV 端口范围-->写上范围,听说得写上4000以后的,可以写上5000-5005-->FTP设置完毕 进入本地连接属性-->TCP/IP属性-->高级-->选项--&

如何设置FTP的主动模式和被动模式?

在使用ftp的时侯,经常遇到ftp链接后出现文件列表错误的情况,只是因为ftp的模式不正确,如何设置ftp的工作模式,什么是主动模式,什么又是被动模式,主动模式和被动模式有什么区别,今天搜集了相关资料和常用ftp软件工作模式的设置的方法: 一.什么是PASV和PORT方式 (1)PORT其实是Standard模式的另一个名字,又称为Active模式.中文意思是"主动模式. (2)PASV也就是Passive的简写.中文就是"被动模式. 二.两者不同 不同之处是由于PORT(主动)这个方

FTP基础知识 FTP port(主动模式) pasv(被动模式) 及如何映射FTP

您是否正准备搭建自己的FTP网站?您知道FTP协议的工作机制吗?您知道什么是PORT方式?什么是PASV方式吗?如果您不知道,或没有完全掌握,请您坐下来,花一点点时间,细心读完这篇文章.所谓磨刀不误砍柴功,掌握这些基础知识,会令您事半功倍.否则,很可能折腾几天,最后一事无成. FTP基础知识 FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件.相比于HTTP,FTP协议要复杂得多.复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命