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中,有两种常见的数据传输模式,即主动模式和被动模式。
本文将介绍这两种模式的工作原理和应用场景。
主动模式(Active Mode)在FTP主动模式中,客户端首先与服务器的端口21建立控制连接。
当需要传输文件时,客户端会随机选择一个高于1024的端口号,并通过控制连接向服务器发送PORT命令,指定该端口号。
服务器收到PORT命令后,会主动在端口20上建立一个数据连接,并通过该连接发送文件给客户端。
主动模式的优点是服务器主动连接客户端,无需过多配置客户端的防火墙或路由器。
然而,由于主动模式需要在客户端和服务器之间建立两个连接(控制连接和数据连接),并且需要动态分配端口号,因此其配置和维护相对较为复杂。
被动模式(Passive Mode)在FTP被动模式中,客户端同样首先与服务器的端口21建立控制连接。
当需要传输文件时,客户端发送PASV命令给服务器。
服务器收到PASV命令后,会在一个高于1024的端口号范围内,随机选择一个端口号,并将该端口号作为响应返回给客户端。
客户端收到服务器返回的端口号后,会在该端口上主动建立一个数据连接,并通过该连接与服务器进行文件传输。
被动模式下,服务器充当被动接收数据的角色,而客户端则主动连接服务器。
被动模式相对于主动模式来说,更加适用于在网络环境较为复杂的情况下进行文件传输。
由于被动模式下只需要建立一个连接,且无需动态分配端口号,因此在防火墙和路由器后面的客户端可以更方便地与服务器进行通信。
主动模式与被动模式的对比主动模式和被动模式在文件传输过程中的工作原理有所不同,因此它们适用的网络环境也不同。
主动模式适用于位于防火墙后面的客户端。
由于主动模式需要服务器主动连接客户端,因此需要开放防火墙的一些端口,以允许服务器建立数据连接。
FTPS协议的主动被动模式比较
FTPS协议的主动被动模式比较FTPS(File Transfer Protocol Secure)是一种基于传输层安全协议(TLS)或安全套接层协议(SSL)的文件传输协议,它在传输文件时提供了数据加密和身份验证的功能。
FTPS协议的主动和被动模式是常见的两种数据传输模式,下面将对它们进行比较。
一、主动模式主动模式在数据传输过程中,客户端(用户)向服务器发送PORT命令,告诉服务器其数据传输端口。
服务器在建立数据连接时,会主动连接客户端指定的端口,将数据传输到客户端。
主动模式的优点是客户端在连接服务器之后,无需再开放其他端口用于数据传输,仅需使用一个固定的端口即可。
此外,主动模式对于服务器来说更容易管理和维护,并且对于防火墙来说也更易于配置。
然而,主动模式也存在一些缺点。
其中一点是,由于服务器主动连接客户端的数据传输端口,因此客户端的防火墙必须允许来自服务器指定端口的连接。
这会增加一定的安全风险,因为需要开放多个端口。
二、被动模式被动模式在数据传输过程中,客户端向服务器发送PASV命令,告诉服务器以被动方式进行数据传输。
服务器在收到该命令后,会返回一个指定的数据传输端口给客户端,客户端再通过这个端口连接到服务器进行数据传输。
被动模式的优点是相对主动模式而言,更容易被防火墙接受和配置。
因为客户端的防火墙不需要开放额外的端口,只需允许需要的数据传输端口即可。
然而,被动模式也存在一些问题。
首先,被动模式需要服务器开放大量的高位端口用于数据传输,因此可能增加服务器的风险。
其次,在高并发情况下,被动模式可能会导致服务器出现性能瓶颈。
三、主动模式与被动模式的比较主动模式和被动模式在使用时需要考虑到安全性和性能的权衡。
从安全性角度来看,主动模式在客户端需要开放额外端口,可能会增加安全风险。
而被动模式则相对较安全,因为客户端不需要开放额外端口,只需使用被动模式使用的数据传输端口。
从性能角度来看,主动模式对服务器的管理和维护更容易。
ftp两种工作方式
被动模式的FTP通常用在处于防情况下,防火墙通常配置为不允许外界访问防火墙之后主机,而只允许由防火墙之后的主机发起的连接请求通过。因此,在这种情况下不能使用主动模式的FTP传输,而被动模式的FTP可以良好的工作。
活动目录的安装向导的命令:dcpromo
客户机加域时,出现了无法加域,提示指定的网络名格式无效,解决方法:域服务器的TCP/IP中的高级中,把Wins里选中“禁用tcp/ip上的netbios”改为启用tcp/ip上的netbios
在被动模式下,FTP库户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。
FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输。
FTP主动模式被动模式测试实验
FTP主动模式被动模式测试实验FTP的数据连接模式1 主动模式(PORT)客户端向FTP服务器的TCP21端口发送一个PORT命令,请求建立连接,告诉服务器“X.X.X.X的客户机打开了N端口,请求数据连接”。
服务器使用TCP20端口主动与客户端建立数据连接。
2 被动模式(PASV)客户端向FTP服务器的TCP21端口发送一个PORT命令,请求建立连接。
服务器接到请求后准备完毕,打开随机端口,并将端口号通知客户端。
客户端使用随机端口连接服务器打开的端口。
测试目的验证主动模式服务器端只需要开20、21端口,被动模式服务器端要开启21和指定的若干个端口(IE6.0以上版本默认是采用的被模式访问的)。
测试步骤1 被动模式1.1 设置SERV-U开启的随机端口。
如下图设置PASV端口范围为10000-100031.2 设置SERV-U允许被动连接。
把允许被动模式数据传输打勾。
1.3防火墙开启21和前面设定的端口10000-10003。
1.4 连接测试,连接成功。
1.5 防火墙关闭端口10000-10004,再次连接结果以上测试表明,被动模式服务器端使用的是21端口和随机端口。
2 主动模式2.1 设置SERV-U不允许被动连接,即把前面设置的选项前的勾去掉2.2 防火墙只开启20、21端口2.3设置浏览器访问模式,为主动模式。
如下图,在高级中把“使用被动FTP”前的勾去掉,然后确定。
2.2 连接结果,测试连接成功以上测试表明主动模式服务器端只使用20、21端口,但IE6.0以上版本要进行设置才能以主动模式访问。
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主动模式和被动模式基于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连接建立要遵循以下步骤:
1.客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同
时一个FTP进程连接至服务器的21号命令端口。
此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。
2.客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。
这个端口就是我们所知的数据端口。
3.服务器打开20号源端口并且建立和客户端数据端口的连接。
此时,源端口为20,远程数据端口为(x+1)。
4.客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。
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(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服务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的时候有时候上传文件会失败,然后就卡住很久,原因就是默认主动模式受限于客户端防火墙的限制,有时候会导致上传文件失败所以整理了区别了一下两种。
一、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的配置和区别共同点: 客户端先发起命令连接。
不同点: 主动模式:服务端发起数据连接。
客户端⽣成随机数据端⼝ 被动模式:客户端发起数据连接。
客户端和服务端都是随机数据端⼝。
客户端与服务器的命令连接 服务器返回命令"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传输的两种模式
FTP传输的两种模式主动模式(active):我们知道,FTP是由TCP封包的模式连接,TCP 这种封包由于需要经过Server 端与Client 端两边的『三次握手』之后,才能确定联机,也就是需要执行ACK 确认的动作,需要经过以下几个动作。
Client 端主动向Server 端发送联机需求:首先client端会随机选取1024以上的端口来主动联机到server端提供的21端口,也就是会主动发送一个封包到server。
Server 端接受后,响应给Client 端:当Server 接收到Client 的要求之后,会响应Client 端的需求,此时Server 端会建立等待联机的资源,并且将一带有SYN 与确认(ACK) 的封包送回Client 端;Client 端回应确认封包:在Client 端接收到来自Server 端告知的封包后,会再次的发送一个确认封包给主机,此时,两边才会正式的建立起联机的通道,这个步骤 1 ~ 3 就是Three-Way Handshake(三次握手)。
需要注意的是,这个已经建立联机的通道(通常是port 21)仅能进行FTP 的『指令』而已,如果该指令涉及到数据的传送(data transfer)时,例如上传或下载等等,那么就需要额外建立一条数据传输的通道才行( ftp-data )!而数据传输的通道建立则需要继续底下的步骤;Client 端发送数据传输要求的命令给Server:当需要进行数据的传输时,Client 端会启用另一个高于1024 的端口来做为联机的准备(这个高于1024 的端口与步骤 1 那个端口不是同一个!),并且Client 端会主动的利用刚刚已经建立的指令信道(通常是port 21)发送一个命令告诉Server 说:『我已经准备好一个数据传输的端口了,请准备进行传输吧』!Server 端以ftp-data 端口主动联机到Client :收到命令之后的Server 会『主动』的以ftp-data 端口(一般为port 20)向Client 端通知的那个高于1024 的端口进行联机。
IEFTP(主动与被动)
IEFTP(主动与被动)本文介绍了如何配置Internet Explorer,以使用文件传输协议(FTP) PORT 模式和 PASV 模式。
FTP 支持两种模式。
这两种模式被分别称为“标准”(或PORT 或“主动”)和“被动”(或PASV)。
“标准”模式FTP 客户端向FTP 服务器发送 PORT 命令。
“被动”模式客户端向 FTP 服务器发送PASV 命令。
这些命令是在建立 FTP 会话时通过 FTP 命令通道进行发送的。
“标准”模式 FTP 客户端首先建立一个到 FTP 服务器上 TCP 端口21 的连接。
此连接会建立 FTP 命令通道。
当 FTP 客户端需要发送或接收数据(如文件夹列表或文件)时,客户端会通过FTP 命令通道发送 PORT 命令。
PORT 命令包含 FTP 客户端在哪个端口上接收数据连接的相关信息。
在“标准”模式下,FTP 服务器总是从TCP 端口20 开始数据连接。
FTP 服务器在发送或接收数据时,必须打开一个新的到客户端的连接,FTP 客户端会通过再次使用PORT 命令对此发出请求。
“被动”模式 FTP 客户端也是首先建立一个到 FTP 服务器上 TCP 端口 21 的连接,以创建控制通道。
当客户端通过命令通道发送 PASV 命令时,FTP 服务器会打开一个短暂端口(在 1024 到 5000 之间),并在请求数据传输之前通知FTP 客户端连接到此端口。
与“标准”模式一样,FTP 客户端必须在每个新传输之前,发送一个新的PASV 命令,FTP 服务器将在每个传输的新端口等候每个连接。
根据FTP 客户端或者服务器防火墙配置的不同,您可能必须更改该 FTP 客户端使用的模式。
Microsoft Internet Explorer 5 及更高版本可支持“标准”和“被动”这两种模式。
如何更改 Internet Explorer FTP 客户端模式1. 启动 Internet Explorer。
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结合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主动模式
FTP主动模式FTP(File Transfer Protocol,文件传输协议)是互联网上用于文件传输的一种标准化网络协议。
主动模式(Active Mode)是FTP连接模式中的一种,它指的是在文件传输过程中,数据连接的建立由客户端(即上传方)发起,而服务器端(即接收方)被动地接收传输数据。
FTP主动模式的工作原理如下:1. 客户端发送一个PORT(端口)命令给服务器端,告知服务器端数据连接将要使用的端口号。
2. 服务器端向客户端指定的端口号发起连接,在此之前,服务器端会开放一个临时端口,用于数据传输。
3. 客户端和服务器端通过建立的数据连接进行文件的传输。
FTP主动模式的优点是流行、广泛支持,适用于大部分网络环境。
然而,它也存在一些问题和局限性。
首先,由于服务器端需要主动地向客户端发起连接,所以FTP主动模式在防火墙后面的客户端可能无法正常工作。
现代网络中通常有多层防火墙保护,这会导致服务器端无法建立与客户端的数据连接。
此外,FTP主动模式还存在一些安全风险。
由于服务器端需要主动连接客户端,一些不法分子可能利用这一点进行攻击。
因此,在使用FTP主动模式时,需要额外的安全措施来保护服务器端和客户端的安全。
为了解决FTP主动模式面临的问题,引入了FTP被动模式(Passive Mode)。
被动模式与主动模式相比,更适用于现代网络环境,并且更容易在防火墙背后工作。
在FTP被动模式中,服务器端开放一个固定的端口,等待客户端的连接请求。
客户端通过发送PASV(被动)命令给服务器端,获取服务器端的地址和端口信息,然后在此地址和端口上建立数据连接进行文件传输。
综上所述,FTP主动模式是FTP协议中的一种传输模式。
虽然在现代网络环境中存在一些问题和局限性,但它仍然是广泛使用的文件传输方式之一。
为了更好地适应不同的网络环境,我们也可以选择使用FTP被动模式进行文件传输。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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的端口上的。
客户机的端口是大于1024的,而服务器的端口是21 端口接收请求,而是从大于1024 端口给客户机回应。
允许FTP客户机从大于1024的端口连接服务器的21端口.允许FTP服务器从21端口回应FTP客户机中大于1024端口的网络连接.允计FTP客户机从大于1024的端口连接FTP服务器的大于1024端口.允许FTP服务器从大于1024的端口回应来自FTP客户机大于1024端口的网络连接.2. ftp客户端有主动模式和被动模式是什么意思?2.1 主动FTP主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。
然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。
接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。
2.1.1 支持主动方式FTP的条件:针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:1. 任何端口到FTP服务器的21端口(客户端初始化的连接S<-C)2. FTP服务器的21端口到大于1024的端口(服务器响应客户端的控制端口S->C)3. FTP服务器的20端口到大于1024的端口(服务器端初始化数据连接到客户端的数据端口S->C)4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口S<-C)在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。
然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。
在第3步中,FTP 服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。
主动方式FTP的主要问题实际上在于客户端。
FTP的客户端并没有实际建立一个到服务器数据端口的连接,它只是简单的告诉服务器自己监听的端口号,服务器再回来连接客户端这个指定的端口。
对于客户端的防火墙来说,这是从外部系统建立到内部客户端的连接,这是通常会被阻塞的。
2.1.2主动FTP的例子下面是一个主动FTP会话的实际例子。
当然服务器名、IP地址和用户名都做了改动。
在这个例子中,FTP会话从(192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到(192.168.150.90),一个运行ProFTPd1.2.2RC2的Linux工作站。
debugging(-d)选项用来在FTP客户端显示连接的详细过程。
红色的文字是debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。
服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。
仔细考虑这个对话过程我们会发现一些有趣的事情。
我们可以看到当PORT命令被提交时,它指定了客户端(192.168.150.80)上的一个端口而不是服务器的。
当我们用被动FTP时我们会看到相反的现象。
我们再来关注PORT命令的格式。
就象你在下面的例子看到的一样,它是一个由六个被逗号隔开的数字组成的序列。
前四个表示IP地址,后两个组成了用于数据连接的端口号。
用第五个数乘以256再加上第六个数就得到了实际的端口号。
下面例子中端口号就是( (14*256) + 178) =3762。
我们可以用netstat来验证这个端口信息。
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2Connected to .220 FTP server ready.Name (testbox2:slacker): slacker---> USER slacker331 Password required for slacker.Password: TmpPass---> PASS XXXX230 User slacker logged in.---> SYST215 UNIX Type: L8Remote system type is UNIX.Using binary mode to transfer files.ftp> lsftp: setsockopt (ignored): Permission denied---> PORT 192,168,150,80,14,178200 PORT command successful.---> LIST150 Opening ASCII mode data connection for file list.drwx------ 3 slacker users 104 Jul 27 01:45 public_html226 Transfer complete.ftp> quit---> QUIT221 Goodbye.2.2、被动FTP为了解决服务器发起到客户的连接的问题,人们开发了一种不同的FTP连接方式。
这就是所谓的被动方式,或者叫做PASV,当客户端通知服务器它处于被动模式时才启用。
在被动方式FTP中,命令连接和数据连接都由客户端,这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。
当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >1024和N+1)。
第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。
这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORTP命令给客户端。
然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP:1. 从任何端口到服务器的21端口(客户端初始化的连接S<-C)2. 服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接S->C)3. 从任何端口到服务器的大于1024端口(入;客户端初始化数据连接到服务器指定的任意端口S<-C)4. 服务器的大于1024端口到远程的大于1024的端口(出;服务器发送ACK响应和数据到客户端的数据端口S->C)画出来的话,被动方式的FTP连接过程大概是下图的样子:在第1步中,客户端的命令端口与服务器的命令端口建立连接,并发送命令“PASV”。
然后在第2步中,服务器返回命令"PORT2024",告诉客户端(服务器)用哪个端口侦听数据连接。
在第3步中,客户端初始化一个从自己的数据端口到服务器端指定的数据端口的数据连接。
最后服务器在第4 步中给客户端的数据端口返回一个"ACK"响应。
被动方式的FTP解决了客户端的许多问题,但同时给服务器端带来了更多的问题。
最大的问题是需要允许从任意远程终端到服务器高位端口的连接。
幸运的是,许多FTP守护程序,包括流行的WU-FTPD允许管理员指定FTP服务器使用的端口范围。
详细内容参看附录1。
第二个问题是客户端有的支持被动模式,有的不支持被动模式,必须考虑如何能支持这些客户端,以及为他们提供解决办法。
例如,Solaris提供的FTP命令行工具就不支持被动模式,需要第三方的FTP客户端,比如ncftp。
随着WWW的广泛流行,许多人习惯用web浏览器作为FTP客户端。
大多数浏览器只在访问ftp://这样的URL时才支持被动...??的配置。
2.2.1 被动FTP的例子下面是一个被动FTP会话的实际例子,只是服务器名、IP地址和用户名都做了改动。
在这个例子中,FTP会话从(192.168.150.80),一个运行标准的FTP命令行客户端的Linux工作站,发起到(192.168.150.90),一个运行ProFTPd1.2.2RC2的Linux工作站。
debugging(-d)选项用来在FTP客户端显示连接的详细过程。
红色的文字是debugging信息,显示的是发送到服务器的实际FTP命令和所产生的回应信息。
服务器的输出信息用黑色字表示,用户的输入信息用粗体字表示。
注意此例中的PORT命令与主动FTP例子的不同。
这里,我们看到是服务器(192.168.150.90)而不是客户端的一个端口被打开了。
可以跟上面的主动FTP例子中的PORT命令格式对比一下。
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2Connected to .220 FTP server ready.Name (testbox2:slacker): slacker---> USER slacker331 Password required for slacker.Password: TmpPass---> PASS XXXX230 User slacker logged in.---> SYST215 UNIX Type: L8Remote system type is UNIX.Using binary mode to transfer files.ftp> passivePassive mode on.ftp> lsftp: setsockopt (ignored): Permission denied---> PASV227 Entering Passive Mode (192,168,150,90,195,149).---> LIST150 Opening ASCII mode data connection for file listdrwx------ 3 slacker users 104 Jul 27 01:45 public_html226 Transfer complete.ftp> quit---> QUIT221 Goodbye.2.3、总结FTP主被动下面的图表会帮助管理员们记住每种FTP方式是怎样工作的:2.3.1 主动FTP:命令连接:客户端>1024端口-> 服务器21端口数据连接:客户端>1024端口<- 服务器20端口2.3.2 被动FTP:命令连接:客户端>1024端口-> 服务器21端口数据连接:客户端>1024端口-> 服务器>1024端口2.3.3 主动与被动FTP优缺点的简要总结:主动FTP对FTP服务器的管理有利,但对客户端的管理不利。