FTP协议中的主动模式与被动模式详解

合集下载

FTP主动模式及被动模式

FTP主动模式及被动模式

FTP主动模式及被动模式FTP(文件传输协议)是一种用于在网络上传输文件的标准协议。

它允许用户通过网络将文件从一台计算机传输到另一台计算机。

在FTP中,有两种常见的数据传输模式,即主动模式和被动模式。

本文将介绍这两种模式的工作原理和应用场景。

主动模式(Active Mode)在FTP主动模式中,客户端首先与服务器的端口21建立控制连接。

当需要传输文件时,客户端会随机选择一个高于1024的端口号,并通过控制连接向服务器发送PORT命令,指定该端口号。

服务器收到PORT命令后,会主动在端口20上建立一个数据连接,并通过该连接发送文件给客户端。

主动模式的优点是服务器主动连接客户端,无需过多配置客户端的防火墙或路由器。

然而,由于主动模式需要在客户端和服务器之间建立两个连接(控制连接和数据连接),并且需要动态分配端口号,因此其配置和维护相对较为复杂。

被动模式(Passive Mode)在FTP被动模式中,客户端同样首先与服务器的端口21建立控制连接。

当需要传输文件时,客户端发送PASV命令给服务器。

服务器收到PASV命令后,会在一个高于1024的端口号范围内,随机选择一个端口号,并将该端口号作为响应返回给客户端。

客户端收到服务器返回的端口号后,会在该端口上主动建立一个数据连接,并通过该连接与服务器进行文件传输。

被动模式下,服务器充当被动接收数据的角色,而客户端则主动连接服务器。

被动模式相对于主动模式来说,更加适用于在网络环境较为复杂的情况下进行文件传输。

由于被动模式下只需要建立一个连接,且无需动态分配端口号,因此在防火墙和路由器后面的客户端可以更方便地与服务器进行通信。

主动模式与被动模式的对比主动模式和被动模式在文件传输过程中的工作原理有所不同,因此它们适用的网络环境也不同。

主动模式适用于位于防火墙后面的客户端。

由于主动模式需要服务器主动连接客户端,因此需要开放防火墙的一些端口,以允许服务器建立数据连接。

FTP主动模式(Port)和被动模式(Passive)的区别

FTP主动模式(Port)和被动模式(Passive)的区别

FTP主动模式(Port)和被动模式(Passive)的区别
1、FTP的PORT(主动模式):
PORT中⽂称为主动模式,⼯作的原理: FTP客户端(1024以上端⼝)连接到FTP服务器的21端⼝,发送⽤户名和密码登录,
登录成功后要list列表或者读取数据时,客户端随机开放⼀个端⼝(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采⽤主动模式并开放端⼝;
FTP服务器收到PORT主动模式命令和端⼝号后,通过服务器的20端⼝和客户端开放的端⼝连接,发送数据,原理如下图:
2、PASV(被动模式):
PASV是Passive的缩写,中⽂成为被动模式,⼯作原理:FTP客户端(1024以上端⼝)连接到FTP服务器的21端⼝,发送⽤户名和密码登录,登录成功后要list列表或者读取数据时,
发送PASV命令到FTP服务器,服务器在本地随机开放⼀个端⼝(1024以上),然后把开放的端⼝告诉客户端,客户端再连接到服务器开放的端⼝进⾏数据传输,原理如下图:
两种模式的⽐较:
从上⾯的运⾏原来看到,主动模式与被动模式,建⽴连接的过程是⼀样的,差别在于数据传输。

主动模式传送数据时是“服务器(20端⼝)连接到客户端的端⼝,进⾏数据传输;
 被动模式传送数据是客户端连接到服务器的端⼝(1024以上端⼝),然后再进⾏数据传输。

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

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

FTP主动模式和被动模式

FTP主动模式和被动模式

FTP主动模式和被动模式基于Centos7、vsftpd3.0.20、前导:ftp通信中存在两种连接:控制连接:⽤于传递控制命令及其他⼩数据量通信。

数据连接:⽤于传输⽂件数据流。

根据数据连接的建⽴⽅式分为主动模式(active mode)和被动模式(passive mode),主动和被动都是以ftp服务端为中⼼来说的。

主动模式:顾名思义,主动模式就是ftp-erver主动发起通向ftp-client的数据连接。

被动模式:同理,被动模式就是ftp-erver不发起连接,⽽是被动接受ftp-client发起的数据连接。

ftp仍然属于tcp连接,故需三次握⼿。

⼀、主动模式:vim /etc/vsftpd/vsftpd.confpasv_enable=NO #1.关闭passive模式port_enable=YES #2.启⽤active模式connect_from_port_20=YES #3.允许从20端⼝连接,主动模式使⽤20端⼝进⾏数据传输pasv_min_port=3000 #active模式下属⽆效配置pasv_max_port=4000 #active模式下属⽆效配置systemctl restart vsftpd #重启ftp服务ftp -A 192.168.50.87 #以active模式连接ftp-server,⼀定要加参数【-A】连接过程:1. client⽤⼤于1024的任意端⼝(如1025)连接server的21端⼝,建⽴控制连接(controll-connection),⽤于控制通信。

2. client另起⼀个⼤于1024的端⼝(如1026),并通过控制连接将此端⼝告诉server,server使⽤其20端⼝主动与此端⼝建⽴数据连接(data-connection)。

⼆、被动模式:vim /etc/vsftpd/vsftpd.confpasv_enable=YES #1.开启被动模式,如果不配置pasv_enable=NO,默认是passive模式#默认值为0,表⽰取任意(1024 – 65535端⼝),把端⼝范围设在⽐较⾼的⼀段范围内,⽐如3000-4000pasv_min_port=3000 #2.指定数据连接端⼝下界pasv_max_port=4000 #3.指定数据连接端⼝上界systemctl restart vsftpd #重启ftp服务ftp -p 192.168.50.87 #以passive模式连接ftp-server,【-p】为可选参数连接过程:1. client⽤⼤于1024的任意端⼝(如1025)连接server的21端⼝,建⽴控制连接(controll-connection),⽤于控制通信。

ftp协议的工作原理

ftp协议的工作原理

ftp协议的工作原理
FTP (File Transfer Protocol)是一种用于文件传输的协议。

它的工作原理可以分为两个阶段:控制连接和数据连接。

1. 控制连接:
在FTP的控制连接阶段,客户端与服务器之间建立一个TCP 连接。

客户端通过端口21连接到服务器的端口21上。

在该连接中,客户端向服务器发送一系列的命令来控制文件的传输和访问。

2. 数据连接:
在FTP的数据连接阶段,控制连接被建立后,客户端将发送各种命令来请求进行文件传输。

服务器将根据这些命令开启数据连接,并通过数据连接传输文件。

具体来说,FTP的数据连接可以分为两种模式:
- 主动模式(Active Mode):在主动模式下,服务器主动打开一个端口,等待客户端连接。

客户端通过使用PORT命令,将自己的IP地址和相应的端口发送给服务器,以便服务器能够将数据发送到客户端指定的端口。

- 被动模式(Passive Mode):在被动模式下,客户端主动打开一个端口,服务器通过使用PASV命令告知客户端使用哪个端口进行数据连接。

客户端连接到指定的端口,并进行数据传输。

无论是主动模式还是被动模式,一旦数据连接建立,文件传输就可以开始了。

客户端通过使用FTP命令(如GET、PUT等)来发送或接收文件。

需要注意的是,FTP的控制连接和数据连接是分开建立和管理的。

在文件传输中,控制连接用于传输命令和控制信息,而数据连接用于实际的文件传输。

这样的设计可以提高文件传输的效率和可靠性。

FTP主动模式与被动模式

FTP主动模式与被动模式

FTP主动模式与被动模式FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。

相比于HTTP,FTP协议要复杂得多。

复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP 有两种工作模式:PORT方式和Passive方式中文意思为主动模式和被动模式。

这两种模式的主要区别在于数据连接的发起方和数据连接的端口号。

在主动模式(Port)下,数据连接由服务器发起,也就是三次握手的第一次是服务器先来的,端口号服务器端20,客户端随机。

这时只要放行20 和21 就可以。

在被动模式(Passive)下,数据连接由客户端发起,也就是三次握手的第一次是客户端先来的,端口号服务器端和客户端都是随机。

被动模式解决了防火墙阻止从服务器到客户端的传入数据端口连接的问题。

主动模式的FTP服务器数据端口固定在20,而被动模式(Passive)则在1025-65535之间随机主动模式原理在主动模式下,FTP 客户端首先从一个随机的非特殊端口(N > 1024)连接到FTP 服务器的命令端口(21 端口)。

然后客户端在N+1 端口监听,并通过N+1 端口发送命令给FTP 服务器。

服务器接收到客户端的命令后,会从20 端口连接到客户端指定的数据端口(N+1 端口),然后开始传输数据。

这意味着,在主动模式下,数据连接是由服务器发起的。

被动模式原理在被动模式下,FTP 客户端首先从一个随机的非特殊端口(N > 1024)连接到FTP 服务器的命令端口(21 端口)。

然后客户端发送PASV 命令,告诉服务器它希望使用被动模式。

服务器接收到PASV 命令后,会打开一个随机的非特殊端口(P > 1024),并将P 端口号发送给客户端。

客户端接收到P 端口号后,会从N+1 端口连接到服务器的P 端口,然后开始传输数据。

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

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

FTP的主动模式和被动模式的区别(在使用网站搬家功能的时候也会提到选择模式是主动还是自动,这个最好联系主机提供商,问清楚了再操作。

下面我们了解一下FTP 主动模式和被动模式的区别)FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。

于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。

当需要传送数据时,服务器在命令链路上用PASV 命令告诉客户端:“我打开了XXXX端口,你过来连接我”。

于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。

而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是指服务器被动地等待客户端连接自己的数据端口。

FTPS协议的传输模式选择

FTPS协议的传输模式选择

FTPS协议的传输模式选择FTPS(File Transfer Protocol Secure)是一种在FTP协议基础上增加了SSL/TLS安全层的文件传输协议。

它提供了一种安全的方式来传输文件,并保护数据的完整性和机密性。

在使用FTPS进行文件传输时,我们可以选择不同的传输模式来满足不同的需求。

本文将介绍FTPS的传输模式选择,并讨论各种模式的优缺点。

1. 主动模式(Active Mode)在主动模式下,客户端创建一个主动的数据连接,并通知服务器要连接的端口号。

服务器则监听该端口,并在接收到连接请求后建立数据连接。

主动模式适用于客户端在防火墙外,服务器在防火墙内的情况下。

主动模式的优点是在一些特定的网络环境下表现较好,兼容性较好。

然而,它也存在一些问题。

首先,由于客户端主动连接,需要打开一个高位端口,这给安全设置带来了一定的挑战。

其次,主动模式对服务器需要进行特殊的配置,以允许外部访问打开的数据端口。

2. 被动模式(Passive Mode)在被动模式下,客户端发起一个命令连接,并通知服务器要使用被动模式进行数据传输。

服务器在接收到命令后,打开一个动态端口,等待客户端建立数据连接。

被动模式适用于客户端和服务器都在防火墙后的情况。

被动模式相比主动模式更为常见,它能够解决主动模式下面临的安全性和配置问题。

客户端只需连接一个常规端口,而无需打开额外的高位端口。

服务器只需允许客户端的命令连接,而无需打开额外的数据端口。

3. 显式SSL/TLS(Explicit SSL/TLS)在显式SSL/TLS模式下,客户端和服务器首先建立一个未加密的FTP连接。

客户端通过发送"AUTH SSL"或"AUTH TLS"命令来请求建立SSL/TLS连接,服务器则通过发送SSL证书来响应请求。

SSL/TLS连接的建立过程在命令通道上进行,文件数据将通过该SSL/TLS连接进行加密传输。

FTP服务2种工作方式详解,PORT方式和PASV方式,(即主动模式和被动模式)

FTP服务2种工作方式详解,PORT方式和PASV方式,(即主动模式和被动模式)

2种模式都是从服务器角度出发的,主动就是服务器主动连接客户机,被动就是服务器做监听,等客户机来连接PORT主动模式:命令发送后是由client建立N+1端口监听,然后让Server的N-1端口(默认为20)来连接这个端口,所以client需要开放1024以上端口。

Flashfxp可以指定port端口范围,方便设置防火墙PASV被动模式:命令发送后是由server建立1024以上端口监听(serv-u可以指定PASV监听端口范围),client用1024以上端口来连接。

整个过程server没有用到20(N-1)端口一、ftp的port和pasv模式的工作方式FTP使用2个TCP端口,首先是建立一个命令端口(控制端口),然后再产生一个数据端口。

国内很多教科书都讲ftp 使用21命令端口和20数据端口,这个应该是教书更新太慢的原因吧。

实际上FTP分为主动模式和被动模式两种,ftp工作在主动模式使用tcp 21和20两个端口,而工作在被动模式会工作在大于1024随机端口。

FTP最权威的参考见RFC 959,有兴趣的朋友可以仔细阅读ftp:///documents/rfc/rfc0959.txt的文档了解FTP详细工作模式和命令。

目前主流的FTP Server服务器模式都是同时支持port和pasv两种方式,但是为了方便管理安全管理防火墙和设置ACL了解FTP Server的port和pasv模式是很有必要的。

1.1 ftp port模式(主动模式)主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口)。

紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。

最后服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

ftp port模式工作流程如下图所示:针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1、客户端口>1024端口到FTP服务器的21端口(入:客户端初始化的连接S<-C)2、FTP服务器的21端口到客户端>1024的端口(出:服务器响应客户端的控制端口S->C)3、FTP服务器的20端口到客户端>1024的端口(出:服务器端初始化数据连接到客户端的数据端口S->C)4、客户端>1024端口到FTP服务器的20端口(入:客户端发送ACK响应到服务器的数据端口S<-C)如果服务器的ip为192.168.10.1在H3C 8500的GigabitEthernet 2/1/10 上创建in acl策略允许ftp 主动模式其他禁止:rule permit tcp source 192.168.10.1 0 source-port eq 21 destination-port gt 1024rule permit tcp source 192.168.10.1 0 source-port eq 20 destination-port gt 1024rele deny ip1.2 ftp pasv模式(被动模式)在被动方式FTP中,命令连接和数据连接都由客户端。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FTP协议中的主动模式与被动模式详解
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议。

在FTP协议中,主动模式(Active Mode)和被动模式(Passive Mode)是两种常见的连接方式。

本文将详细解释FTP协议中的主动模式与被动模式的原理、特点和使用场景。

一、主动模式(Active Mode)
主动模式是FTP协议中最早的一种连接方式。

在主动模式下,客户端主动发起控制连接,并通过数据连接与服务端进行数据传输。

在主动模式中,客户端首先与FTP服务器的默认端口(端口号为21)建立控制连接。

控制连接的建立过程涉及到三次握手,以确保双方正常通信。

建立成功后,客户端发送PORT命令,通知服务器客户端的数据传输端口。

服务器接收到PORT命令后,通过控制连接向客户端发起数据连接。

客户端接收到服务器的连接请求后,通过数据连接进行文件的传输。

主动模式的优点是连接的主动性强,适用于FTP客户端位于防火墙后的情况。

然而,主动模式也存在一些缺点。

首先,由于服务器需要主动向客户端发起连接请求,因此必须允许服务器主动连接客户端的数据端口,这在某些情况下可能会被防火墙拦截。

其次,在主动模式下,FTP服务器必须确定客户端的IP地址和端口,这对服务器的资源消耗较大。

因此,在现代网络环境下,被动模式逐渐成为了主流。

二、被动模式(Passive Mode)
被动模式是FTP协议中现代化的一种连接方式。

在被动模式下,客
户端与服务器之间的控制连接和数据连接都是由客户端发起。

在被动模式中,客户端首先与FTP服务器的默认端口(端口号为21)建立控制连接,控制连接的建立过程同样包括三次握手。

建立成
功后,客户端发送PASV命令,通知服务器切换至被动模式。

服务器
接收到PASV命令后,随机选择一个端口,将该端口号返回给客户端。

客户端通过控制连接接收到服务器返回的端口号后,便通过该端口与
服务器建立数据连接。

最后,文件的传输通过该数据连接完成。

被动模式的主要优点是适应性强,能够克服主动模式在某些网络环
境下的限制。

由于被动模式下,数据连接是由客户端发起的,因此可
以穿过防火墙等网络设备。

同时,被动模式下,FTP服务器只需要监
听默认的控制端口,大大减少了资源消耗。

因此,被动模式是目前应
用较广泛的FTP连接方式。

三、主动模式与被动模式的比较
从上述的介绍中可以看出,主动模式和被动模式在连接方式及数据
传输过程上存在明显差异。

主动模式下,数据连接是由服务器主动向
客户端建立的,而被动模式下,数据连接是由客户端主动与服务器建
立的。

主动模式的优势在于主动性强,连接的建立相对可靠,但存在被防
火墙拦截的问题。

被动模式则能够更好地适应各种网络环境,并且减
少了FTP服务器的资源消耗。

四、主动模式与被动模式的适用场景
根据上述的比较,我们可以总结出主动模式和被动模式的适用场景。

主动模式适用于以下情况:
1. 客户端位于防火墙后,并且允许FTP服务器主动连接客户端的数
据端口。

2. 对于强制使用FTP主动模式的服务端应用程序,客户端需要与其
进行通信。

被动模式适用于以下情况:
1. 客户端或FTP服务器位于防火墙后,并且不允许FTP服务器主
动连接客户端的数据端口。

2. 在大多数情况下,现代化网络环境下被动模式更为普遍,并且能
够更好地兼容各种网络设备和防火墙。

总结:
FTP协议是进行文件传输的标准协议,而主动模式和被动模式是
FTP连接中的两种常见方式。

主动模式通过服务器主动向客户端发起
数据连接,适用于客户端位于防火墙后的情况。

被动模式由客户端主
动发起数据连接,适应能力较强,可克服主动模式在网络环境中的限制。

根据实际需求,选择适合的模式可以更好地进行FTP文件传输。

相关文档
最新文档