关于FTP下载的被动模式与主动模式

合集下载

ftp工作原理

ftp工作原理

ftp工作原理FTP(File Transfer Protocol)是一种用于在计算机网络中进行文件传输的协议。

它基于客户端-服务器模型,通过控制连接和数据连接来实现文件的上传和下载。

下面将详细介绍FTP的工作原理。

1. FTP的连接建立和断开:- 客户端通过TCP/IP协议与FTP服务器建立连接。

默认情况下,FTP服务器监听在TCP端口21上。

- 客户端发送登录请求,包括用户名和密码等认证信息。

- 服务器验证用户信息,如果认证通过,建立控制连接。

- 控制连接用于传输命令和响应,如上传、下载、删除文件等操作。

- 控制连接保持开放状态,直到客户端或者服务器发起断开连接的请求。

2. FTP的数据传输模式:- FTP支持两种数据传输模式:主动模式(Active Mode)和被动模式(Passive Mode)。

- 在主动模式下,客户端通过控制连接向服务器发出PORT命令,并指定一个端口号,服务器将通过该端口与客户端建立数据连接。

- 在被动模式下,客户端通过控制连接向服务器发出PASV命令,服务器返回一个IP地址和端口号,客户端通过该地址和端口与服务器建立数据连接。

- 主动模式适合于服务器在防火墙后面的情况,被动模式适合于客户端在防火墙后面的情况。

3. FTP的命令和响应:- 客户端通过控制连接向服务器发送各种命令,如登录、切换目录、上传文件、下载文件等。

- 服务器接收到命令后,执行相应的操作,并返回响应码和响应消息给客户端。

- 响应码由三位数字组成,其中第一个数字表示响应的类型,如1xx表示信息响应,2xx表示成功响应,3xx表示重定向响应,4xx表示客户端错误响应,5xx 表示服务器错误响应。

4. FTP的安全性:- FTP的传输过程是明文的,包括用户的身份验证信息和文件的内容。

- 为了增强安全性,可以使用FTP over SSL/TLS(FTPS)或者SSH File Transfer Protocol(SFTP)等加密协议。

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

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

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主动模式及被动模式FTP(文件传输协议)是一种用于在网络上传输文件的标准协议。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ftp规则

ftp规则

ftp规则FTP规则FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议。

它主要用于在客户端和服务器之间传输文件,是网络传输中非常常见的一种方式。

本文将详细介绍FTP 规则的相关内容。

一、FTP的基本原理FTP使用客户端-服务器模式进行文件传输。

客户端通过FTP软件与服务器进行连接,然后使用FTP命令与服务器进行交互,完成文件的上传、下载和管理等操作。

二、FTP的连接方式1. 主动模式(Active Mode):在主动模式下,客户端主动建立与服务器的数据连接。

客户端在连接服务器之前必须开放一个端口,用于接收服务器返回的数据。

2. 被动模式(Passive Mode):在被动模式下,服务器主动建立与客户端的数据连接。

客户端只需要建立控制连接,无需开放额外的端口。

三、FTP的常用命令1. 登录命令:用户需要输入用户名和密码以登录FTP服务器。

2. 上传命令:将本地文件上传到服务器。

3. 下载命令:将服务器文件下载到本地。

4. 删除命令:删除服务器上的文件。

5. 重命名命令:对服务器上的文件进行重命名。

6. 创建目录命令:在服务器上创建新的目录。

7. 列出目录命令:查看服务器上指定目录的文件列表。

四、FTP的安全性由于FTP传输的数据是明文的,因此在网络传输过程中容易被窃听和篡改。

为了提高FTP的安全性,可以采用以下措施:1. 使用SSL/TLS协议:通过加密FTP连接,确保数据的机密性和完整性。

2. 使用SFTP协议:SFTP(SSH File Transfer Protocol)是基于SSH协议的安全文件传输协议,比传统的FTP更加安全可靠。

五、FTP的应用场景FTP的应用场景非常广泛,主要包括以下几个方面:1. 网站建设:开发人员使用FTP上传网站文件到服务器,实现网站的发布和更新。

2. 文件备份:将重要数据备份到远程服务器,确保数据安全。

FTPS协议的主动被动模式比较

FTPS协议的主动被动模式比较

FTPS协议的主动被动模式比较FTPS(File Transfer Protocol Secure)是一种基于传输层安全协议(TLS)或安全套接层协议(SSL)的文件传输协议,它在传输文件时提供了数据加密和身份验证的功能。

FTPS协议的主动和被动模式是常见的两种数据传输模式,下面将对它们进行比较。

一、主动模式主动模式在数据传输过程中,客户端(用户)向服务器发送PORT命令,告诉服务器其数据传输端口。

服务器在建立数据连接时,会主动连接客户端指定的端口,将数据传输到客户端。

主动模式的优点是客户端在连接服务器之后,无需再开放其他端口用于数据传输,仅需使用一个固定的端口即可。

此外,主动模式对于服务器来说更容易管理和维护,并且对于防火墙来说也更易于配置。

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

其中一点是,由于服务器主动连接客户端的数据传输端口,因此客户端的防火墙必须允许来自服务器指定端口的连接。

这会增加一定的安全风险,因为需要开放多个端口。

二、被动模式被动模式在数据传输过程中,客户端向服务器发送PASV命令,告诉服务器以被动方式进行数据传输。

服务器在收到该命令后,会返回一个指定的数据传输端口给客户端,客户端再通过这个端口连接到服务器进行数据传输。

被动模式的优点是相对主动模式而言,更容易被防火墙接受和配置。

因为客户端的防火墙不需要开放额外的端口,只需允许需要的数据传输端口即可。

然而,被动模式也存在一些问题。

首先,被动模式需要服务器开放大量的高位端口用于数据传输,因此可能增加服务器的风险。

其次,在高并发情况下,被动模式可能会导致服务器出现性能瓶颈。

三、主动模式与被动模式的比较主动模式和被动模式在使用时需要考虑到安全性和性能的权衡。

从安全性角度来看,主动模式在客户端需要开放额外端口,可能会增加安全风险。

而被动模式则相对较安全,因为客户端不需要开放额外端口,只需使用被动模式使用的数据传输端口。

从性能角度来看,主动模式对服务器的管理和维护更容易。

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的主动和被动模式
FTP有两种使用模式:主动和被动。

主动模式要求客户端和服务器端同时打开并
且监听一个端口以建立连接。

在这种情况下,客户端由于安装了防火墙会产生一些问题。

所以,创立了被动模式。

被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

一个主动模式的FTP连接建立要遵循以下步骤:
1.客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同
时一个FTP进程连接至服务器的21号命令端口。

此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

2.客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。

这个端口就是我们所知的数据端口。

3.服务器打开20号源端口并且建立和客户端数据端口的连接。

此时,源端口为20,远程数据端口为(x+1)。

4.客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

FTP主动被动

FTP主动被动

1. FTP的主动模式与被动模式:FTP服务器使用20和21两个网络端口与FTP客户端进行通信.FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据.FTP主动模式:FTP客户端向服务器的FTP控制端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,客户端在命令链路上用PORT的命令告诉服务器我开放了某端口,你过来连接我.于是服务器从20端口向客户端的该端口发送连接请求,建立一条数据链路来传送数据.在数据链路建立过程中是服务器主动请求,所以称为主动模式.FTP被动模式:FTP客户端向服务器的FTP控制端口(默认21)发送连接请求,服务器接受连接,建立一条命令链路;当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端,我打开了某端口,你过来连我.于是客户端向服务器的该端口发送连接请求,建立一条数据链路来传送数据.在数据链路建立的过程中是服务器被动等待客户机的请求,所以称被动模式.由上面几点可以看出,FTP服务器的主动与被动模式是以FTP服务器进行数据传送连接的主动或被动为依据的.对于FTP服务器与客户机之间存在的网络防火墙,不论是服务器侧还是客户机侧的网络防火墙设置策略都要保证FTP服务器和客户端之间能够正常建立命令链路和数据链路.主动模式下:客户机与服务器之间建立连接时,客户机是大于1024的端口上,服务器是20 端口。

客户机的端口是大于1024的,而服务器的端口是21 端口接收请求,而是20 端口给客户机回应。

允许FTP客户机从大于1024的端口连接服务器的21端口.允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接.允许FTP服务器从20端口主动连接FTP客户机中大于1024的端口允许FTP客户机从大于1024的端口回应来自FTP服务器的20端口的网络连接.被动模式下:客户机与服务器之间建立连接都是在大于1024的端口上的。

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协议完全详解FTP(File Transfer Protocol,文件传输协议)是一种用于在计算机网络上进行文件传输的标准协议。

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

本文将详细介绍FTP协议的工作原理、命令和响应以及数据传输模式。

一、工作原理FTP协议基于客户端-服务器模型,其中客户端负责发送命令和接收响应,服务器负责执行命令和发送响应。

FTP使用TCP作为传输层协议,使用默认端口号21。

当客户端与服务器建立连接时,客户端发送登录命令(USER和PASS)进行身份验证。

一旦身份验证成功,客户端可以发送各种FTP命令(如LIST、GET、PUT等)来执行文件操作。

FTP协议支持两种数据传输模式:主动模式和被动模式。

在主动模式下,客户端监听一个随机端口,服务器通过该端口向客户端发送数据。

而在被动模式下,服务器监听一个随机端口,客户端通过该端口向服务器发送数据。

二、FTP命令和响应FTP协议定义了一组命令和响应,用于控制文件传输过程。

以下是一些常见的FTP命令和响应:1. 用户身份验证命令- USER:用于指定登录用户名- PASS:用于指定登录密码2. 文件操作命令- LIST:列出当前目录下的文件和子目录- CWD:切换当前工作目录- MKD:创建新目录- RMD:删除指定目录- DELE:删除指定文件- RNFR和RNTO:重命名文件或目录3. 传输模式命令- PORT:在主动模式下指定数据传输端口- PASV:进入被动模式4. 文件传输命令- RETR:从服务器下载文件- STOR:向服务器上传文件每个命令都有对应的响应,响应由一个三位数的状态码和一条可选的描述信息组成。

状态码的第一个数字表示响应的类型,如1开头表示信息响应,2开头表示成功响应,3开头表示重定向响应,4开头表示临时错误响应,5开头表示永久错误响应。

三、数据传输模式FTP协议支持两种数据传输模式:主动模式和被动模式。

报文解析FTP主动被动模式和FTP结合NAT使用

报文解析FTP主动被动模式和FTP结合NAT使用

报⽂解析FTP主动被动模式和FTP结合NAT使⽤FTP模式介绍FTP的主动模式和被动模式的区别:主动模式:(也叫Standard模式,PORT⽅式)FTP服务器主动去连接FTP客户端。

FTP客户端告诉FTP服务器使⽤什么端⼝进⾏侦听,FTP服务器和FTP客户端的这个端⼝进⾏连接,源端⼝是20。

被动模式:(也叫Passive模式,也叫PASV⽅式)FTP服务器被动的等待FTP客户端连接⾃⼰。

FTP服务器打开指定范围内的某个端⼝(也叫⾃由端⼝,1024--65535之间),被动的等待客户端进⾏连接。

主被动模式报⽂解析建⽴控制连接的过程登录的时候客户端是44.1.1.44服务器是33.1.1.33,⽤户名1密码111111通过命令⾏登录Client:syn 我请求跟你进⾏连接Server:ack+syn 可以,我也请求跟你连接Client:ack 可以(上⾯是三次握⼿)Server:response 我这ready准备好了Client:ack 好的Client:request 我使⽤的user是1Server:response 请输⼊密码Client:ack 好的,收到Client:request 我⽤的密码是111111Server: response ⽤户名1 ,密码111111,正确,logged in,允许进⼊Client:ack 好的上⾯是进⾏的连接控制的简单过程,FTP服务器使⽤的端⼝号是21,FTP客户端使⽤的端⼝号是64023。

主动连接:客户端通过PORT命令告诉服务器⾃⼰要使⽤的数据端⼝号,然后在客户端主动建⽴起这个端⼝的监听。

进⾏⽂件传输的时候,服务器来连接客户端的这个数据接⼝,进⾏数据传输。

FTP客户端想要下载⽂件,get hfs.exeClient:request 我发送了PORT命令要使⽤主动连接,使⽤64024进⾏侦听Server:response 主动连接的指令成功Client:request 我想要hfs.exe⽂件Server:response 为hfs.exe打开数据连接Server:syn 主动请求建⽴数据连接,源端⼝号20,⽬的端⼝号64024Client:ack+syn 可以,请求与服务器建⽴连接,sport:64024,dport:20Server:ack 可以之后就是server和client之间传输数据的过程,⼀直到⽂件传完Server:response 给client发送⼀条命令,⽂件传输okClient:ack 好的以上是主动模式的过程被动连接:FTP客户端发送PASV命令到FTP服务器,想使⽤PASV⽅式传输数据。

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中,命令连接和数据连接都由客户端。

FTP主动模式及被动模式

FTP主动模式及被动模式

FTP主动模式及被动模式2005-11-13 4:45:00FTP主动模式及被动模式作者:网络转载FTP的特殊性:大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。

但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。

一般,FTP连接包括:一个控制连接(control connection)这个连接用于传递客户端的命令和服务器端对命令的响应。

它使用服务器的2 1端口,生存期是整个FTP会话时间。

几个数据连接(data connection)这些连接用于传输文件和其它数据,例如:目录列表等。

这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。

而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。

在FTP协议中,控制连接使用周知端口21,因此使用ISA的IP PACKET F ILTER就可以这种连接进行很好的安全保护。

相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。

FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。

FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。

连接的端口是由服务器端和客户端协商确定的。

FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。

除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。

在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。

是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。

前面我们讲过,FTP协议的数据传输存在两种模式:主动模式和被动模式。

这两种模式发起连接的方向截然相反,主动模式是从服务器端向客户端发起;被动模式是客户端向服务器端发起连接。

FTP主动模式和被动模式的比较

FTP主动模式和被动模式的比较

FTP主动模式和被动模式的比较FTP是仅基于TCP的服务,不支持UDP。

与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。

通常来说这两个端口是21(命令端口)和20(数据端口)。

但FTP 工作方式的不同,数据端口并不总是20。

这就是主动与被动FTP的最大不同之处。

一.主动FTP(PORT)命令连接:客户端N端口<-->服务器 21端口 (N>1024)数据连接:服务器 20端口<-->客户端N+1端口针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1. 任何大于1024的端口到FTP服务器的21端口。

(客户端初始化的连接)2. FTP服务器的21端口到大于1024的端口。

(服务器响应客户端的控制端口)3. FTP服务器的20端口到大于1024的端口。

(服务器端初始化数据连接到客户端的数据端口)4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)二.被动FTP(PASV)为了解决服务器发起到客户的连接问题,人们开发了一种不同的FTP连接方式。

这就是被动方式.当客户端通知服务器它处于被动模式时才启用。

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

命令连接:客户端N端口<-->服务器 21端口 (N>1024)数据连接:客户端N+1端口<-->服务器M端口 (M>1024)对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:1. 从任何大于1024的端口到服务器的21端口(客户端初始化的连接)2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)3. 从任何大于1024端口到服务器大于1024端口(客户端初始化数据连接到服务器指定的任意端口)4. 服务器大于1024端口到远程大于1024的端口(服务器发送ACK响应和数据到客户端的数据端口)三.主动与被动FTP优缺点:1.主动FTP对FTP服务器的管理有利,但对客户端的管理不利。

FTP的两种链接工作模式—主动模式和被动模式

FTP的两种链接工作模式—主动模式和被动模式

文汇建站: FTP的两种链接工作模式—主动模式和被动模式写这篇文章主要是因为在使用ftp的时候有时候上传文件会失败,然后就卡住很久,原因就是默认主动模式受限于客户端防火墙的限制,有时候会导致上传文件失败所以整理了区别了一下两种。

一、FTP的两种工作模式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客户端软件的连接模式默认为Passive(被动连接)。

即FTP客户端向服务端口(默认是21)发出连接请求,服务端接到请求后建立命令链路。

然后服务端通过命令链路发消息告诉客户端,服务端某个端口位于(1025—65535)之间开放,与客户端建立起数据链路,从而客户端可以进行数据上传与下载。

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

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

ftp的主动模式activemode和被动模式passivemode的配置和区别共同点: 客户端先发起命令连接。

不同点: 主动模式:服务端发起数据连接。

客户端⽣成随机数据端⼝ 被动模式:客户端发起数据连接。

客户端和服务端都是随机数据端⼝。

客户端与服务器的命令连接 服务器返回命令"PORT 2024",告诉客户端(服务器)⽤哪个端⼝侦听数据连接 客户端初始化⼀个从⾃⼰的数据端⼝到服务器端指定的数据端⼝的数据连接。

最后服务器在第4 步中给客户端的数据端⼝返回⼀个"ACK"响应。

1.ftp连接服务度ftp> ls500 Illegal PORT command.ftp: bind: Address already in use然后解决如下ftp> quote pasv227 Entering Passive Mode (192,168,0,112,164,248).ftp> passivePassive mode on.ftp> ls227 Entering Passive Mode (192,168,0,112,169,241).425 Security: Bad IP connecting.这个原因是因为服务器本⾝设置了两个ip地址解决办法是vim /etc/vsftpd/vsftpd.conf添加:pasv_promiscuous=YESftp> quote pasv227 Entering Passive Mode (192,168,0,112,143,83).ftp> passivePassive mode on.ftp> ls227 Entering Passive Mode (192,168,0,112,85,218).150 Here comes the directory listing.drwx------ 2 1001 1001 4096 Mar 06 01:46 test######################################什么叫做PASV mode(被动模式传送)?他是如何⼯作的?FTP的连接⼀般是有两个连接的,⼀个是客户程和服务器传输命令的,另⼀个是数据传送的连接。

FTP的主动模式和被动模式(FileZillaServer)

FTP的主动模式和被动模式(FileZillaServer)

FTP 的主动模式和被动模式(FileZilla Server )疑问:怎么设置FileZilla Server 的主动模式?----------------------------------------- 设置被动FTP (PASV),是指定端口,还是随机端口。

------------------------------------------------- FileZill aServer 只有设置被动FTP 的选项,朋友们就要问了,那主动FTP (PORT)到哪里去了?我折腾了很久才明白,决定FTP 是PORT (主动),还是PASV (被动),关键是看客户端发送的命令。

换句话说,决定权在客户端。

服务器端开启20 和21 端口,客户端只要选择的是主动模式,服务器端,自动把连接设定为PORT (主动);服务器端开启21 端口,并且设置PASV 是指定端口,还是随机端口,并打通这些端口;客户端设置为被动模式,这个连接自动设置为PASV。

不管是PORT (主动),还是PASV (被动),必须要打开21 端口。

被动FTP (PASV,指定端口)一一推荐1)FTP服务器端,开放指定端口的PASV 模式,需额外指定至少10 个连续的端口,并在防火墙中打开这些端口。

2)10 个连续的端口,均为高位端口(大于1024)3)在Windows 防火墙和第三方安全软件中,务必打通这些端口。

4)经过实测,PASV (被动FTP )不强制要求打开20 端口,但必须要打开21 端口。

为了减少记忆负担,不管是PORT,还是PASV,确保在Windows 防火墙和第三方安全软件打通20 和21 端口,这准没错。

5)客户端保持被动模式,如果改为主动模式,则打不开FTP。

在Windows 防火墙和第三方安全软件中,打通20、21 和上面指定的其他端口。

主动FTP(PORT,随机端口)一一不推荐1)开放随机端口的PASV,要求服务器端开放所有端口,关闭防火墙。

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

关于FTP下载的被动模式与主动模式
作者:佚名发布时间:2003-12-30 9:58:12 | 【字体:大中小】
FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另
一个是数据传送的连接。

FTP服务程序一般会支持两种不同的模式,一种是Port 模式,一种是Passive模式 (Pasv Mode),我先说说这两种不同模式连接方式的分别。

先假设客户端为C,服务端为S。

Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。

Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这
个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。

从上面的解释中,大家可以看到两种模式主要的不同是数据连接建立的不同,对于Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。

我需要把传送模式设置成PASV mode吗?
如果您连接到INTERNET的方式如下图,你需要设置成为PASV mode模式传送
从上图中我们可以看出,路由上有两个ip一个是内网ip(也就是你的网关地址)另外一个是外网IP,你所有LAN中的计算机都是共享这个 218.63.1.5访问INTERNET的(中间通过了192.168.1.1这个网关),让我们来看一个连接的详细过程,以便您更进一步了解为什么需要设置成为PASV mode 传送:
当您通过下载工具或使用浏览器下载影片的时候就开始连接FTP服务器,
当FTP服务收到你的连接请求后发送应答信息给客户并开始等待用户的认证信息——>认证通过后开始建立数据连接如果你不是设置成为pasv模式,那么客户段(下载工具)会在本地计算机开一个数据端口,然后发送一条“命令”给FTP服务段,“我已打开了n端口你现在可以连接我”,那么FTP服务器段就开始连接你ip地址的N端口,(但是连接是失败的)因为你是通过192.168.1.1 这个网关(你的路由设备)访问internet的ftp服务段他实际上是同你的外网地址为 218.63.1.5的路由设备连接,根本就连接不上你下载工具中打开的端口,例如你使用的是 192.168.1.2 这个客户机,FTP服务段此时无法同你计算机(192.168.1.2)监听端口N连接上,所以此时你会看到服务器反馈的错误信息,提示你 192.168.1.2打开的端口无法连接之类的,信息此时你就需要把传送模
式设置成为PASV模式,而如果你使用的是PASV模式那么当你ftp通过认证后,客户段首先向服务器发送一条PASV命令,服务段接受到命令后打开一个端口并告诉客户段“我已打开了一个端口,你此时可以来连接了”客户段(下载工具)接受到信息后,就去连接服务段已经打开了的端口,从而完成数据连接,所有
ftp下载的数据流都将通过这个端口传送。

相关文档
最新文档