请高手介绍一下ftp的主动连接和被动连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请高手介绍一下ftp的主动连接和被动连接相关的知识,希望对你有一定的参考价值。

懂了就加分的

所谓port模式也就是主动模式。在FTP协议刚刚建立的时候,只定义了普通的连接模式,也就是port模式。

Port 模式的连接过程是:在开始一个FTP的连接时,客户端程序首先会为自己随机分配一个TCP端口,它使用这个个端口向服务器的FTP端口(默认为21)发出连接请求,服务器接受请求之后会建立一条控制链路,然后客户程序发出port命令(通常格式为PORT A, A, A, A, I,I,其中A,A,A,A为客户端IP地址,I,I为随机的一个数据连接端口号)告诉服务器它的数据通道的端口打开了。当需要传送数据时,服务器便从随机选择的一个端口向客户端的20端口发送连接请求,请求被接受之后便开始传输数据,数据链路通道也就打开了。

---------------

所谓pasv模式也就是被动模式。随着网络的不断发展,出现了防火墙。老的FTP协议在遇到防火墙的时候就束手无策了,这是因为20端口往往是防火墙的重点封堵对象,因此数据也就不能发送出去了,于是pasv模式就诞生了。

Pasv 模式的连接过程是:在开始一个FTP的连接时,客户端程序首先为自己随机分配一个TCP端口,它使用这个端口向服务器的FTP端口(默认为21)发出连接请求,服务器接受请求之后会建立一条控制链路,然后客户端程序发出PASV命令,代替原来PORT命令告诉服务器它的数据连接端口,于是服务器便为自己随机分配一个数据通道端口,并将这个端口号告诉客户端程序。当需要传送数据时,客户端程序会向服务器的数据通道端口发送连接请求,请求被接受之后便开始传输数据,数据链路通道也就打开了。

---------------

1.所谓主动和被动可以看作是以服务器端为基准,当服务器主动向客户端发送数据连接请求时,为主动模式;当客户端主动向服务器发送数据连接请求时,为被动模式。

2.无论客户端还是服务器端有防火墙,或是两边都有防火墙,只要PASV模式下两边数据通道的连接端口在防火墙的拦截之外就可以建立成功。如果防火墙将所有的端口全部堵死,则不能建立数据通道。

---------------

FTP使用中PASV模式的操作方法(注:此方法只有在无法登录和下载的情况下才可使用!!! )

取消 pasv 模式的方法
有许多朋友的 FTP 服务器是不支持 PASV 模式的,登入时要取消 PASV 模式才行。现将几种 FTP 下载工具的取消方法公布如下:

1.把 flashget 的 pasv 模式关掉的方法

点菜单上的“工具”->“选项”->“代理服务器”->“直接连接”->编辑->把“ pasv 模式”前的勾勾去掉,一路确定回来。

2.把 Cutftp 的 pasv 模式关掉的方法

点菜单上的“文件”->“站点管理”->在“站点管理器”窗口->“新建站点”->填上“域名”->“编辑”->“常规”->把“使用 pasv 模式”前的勾勾去掉。

3.把 FlashFXP 的 pasv 模式关掉的方法

点菜单上的“站点”->“站点管理器”->站点管理器窗口->“新建站点”->填上“域名”->“选项”->把“使用被动模式”前的勾勾去掉->“应用” 即可。

4.把 NetAnts 的 pasv 模式关掉的方法

点菜单上的"选项"->"参数设置"->"代理"->“直接连接”->编辑->把“ pasv 模式”前的勾勾去掉,一路确定回来。

---------------

相信大家都知道FTP是什么啦,但我相还有很多人不知道什么是PASV和PORT,或者你知道但不知道他们到底是什么。

下面介绍一下这两种模式吧:

PORT其实是Standard模式的另一个名字,又称为Active模式。中文意思是“主动模式。
PASV也就是Passive的简写。中文就是“被动模式。

两者之间有什么不同:

不同之处是由于PORT这个方式需要在接上TCP 21端口后,服务器通过自己的TCP 20来发出数据。并且需要建立一个新的连接来传送档案。而PORT的命令包含一些客户端没用的资料,所以有了PASv的出现。
而PASV模式就当然拥有PORT模式的优点及去掉一些PORT的缺点。PASV运行方式就是当服务器接收到PASV命令时,就会自动从端口1024到5000中随机选择,而且还会使用同一个端口来传送数据,不用建立新的连接。
参考技术A 自己看,不用加分,其实就是协商的过程,很容易理解.
http://www.lovim.com/dbbs/redirect.php?tid=7&goto=lastpost

ftp的两种连接模式PASV(被动)和PORT(主动)

FTP基础知识 FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。 FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。 Port模式:ftp server:tcp 21 <------client:dynamicftp server:tcp 20 ------>client:dynamic Pasv模式:ftp server:tcp 21 <----client:dynamicftp server:tcp dynamic <----client:dynamic PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。 PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。 从上面可以看出,两种方式的命令链路连接方法是一样的,而数据链路的建立方法就完全不同。而FTP的复杂性就在于此。本回答被提问者采纳

FTP主动模式和被动模式在VRP上实现(实验报文和理论解析)

嗯~点关注不迷路

1.简述主动模式的FTP建立连接的主要步骤

技术分享图片
图1-19 FTP主动模式示意图
基本原理
FTP(文件传输协议)的特殊性:
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(control connection) ,它使用服务器的21端口,生存期是整个FTP会话时间;另外一个传输数据为工作在端口20的连接
主动模式
PORT模式即主动模式,工作原理以及步骤:1)FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录;2)登录成功后使用命令查看或者准备索取数据;3)客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;4)FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。该工作工程如图1-19所示。在华为设备上实现FTP也是该模式,我们在华为设备上实现一个基本的FTP文件传输(很多时候用于备份或者升级VRP系统文件的场景,本位置拓扑可参考图1-13)
服务器端(地址为12.1.1.2):

ftp server enable
aaa
 local-user ftp1 password cipher %$%$h;oSNQ<7#B2!>vNyIO;T7Ucl%$%$
 local-user ftp1 privilege level 15
 local-user ftp1 ftp-directory flash:
 local-user ftp1 service-type ftp
客户端测试:
<AR1>ftp 12.1.1.2
Trying 12.1.1.2 ...
Press CTRL+K to abort
Connected to 12.1.1.2.
220 FTP service ready.
User(12.1.1.2:(none)):ftp1
331 Password required for ftp1
Enter password:
230 User logged in.

[AR1-ftp]
[AR1-ftp]get ssl***.zip #从R2下载文件

如上的例子我们可以查看报文可以清晰的看到FTP21端口的控制命令和FTP 20端口的FTP数据传输
技术分享图片
图1-20 FTP主动模式工作在端口21的控制连接
技术分享图片
图1-21 FTP主动模式工作在端口20的数据传输
小技巧:FTP的主动模式是传统的FTP方式。在此,考生可以参考图解向考官表明该过程。另外给大家分享一个乾颐堂作业体系中一名学员针对FTP作业的故事:FTP的21端口号就像员工的老大,老大让做什么就做什么,而FTP的20端口号就像下面的员工一样,照做就是。这也是一个很生动的例子
为了保持完整性,我们在此也简要描述一下FTP的被动模式,即PASV模式,是Passive的缩写,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输。区别就在于是服务器开放了一个随机端口(而非20)。

2.简述被动FTP的主要步骤

实际上FTP的主动模式或者被动模式可以在FTP软件定义
一个华为VRP上被动FTP的例子

[R1]ftp server enable  //服务器地址10.0.0.1
aaa
 local-user ender password cipher %$%$BdT"SXel/M~vYVt;%%C1D{%$%$
 local-user ender privilege level 15
 local-user ender ftp-directory flash:
 local-user ender service-type ftp
客户端测试(客户端地址10.0.0.3)
<SW1>ftp 10.0.0.1
Trying 10.0.0.1 ...
Press CTRL+K to abort
Connected to 10.0.0.1.
220 FTP service ready.
User(10.0.0.1:(none)):ender
331 Password required for ender.
Enter password:
230 User logged in.

[ftp]
[ftp]
[ftp]
[ftp]pass
[ftp]passive //切换到被动模式
Info: Succeeded in switching passive on.

[ftp]dir 
227 Entering Passive Mode (10,0,0,1,198,23).
125 ASCII mode data connection already open, transfer starting for *.
drwxrwxrwx   1 noone    nogroup         0 Sep 28 12:46 dhcp
-rwxrwxrwx   1 noone    nogroup    121802 May 26  2014 portalpage.zip
-rwxrwxrwx   1 noone    nogroup      2263 Sep 28 12:44 statemach.efs
-rwxrwxrwx   1 noone    nogroup    828482 May 26  2014 ssl***.zip
drwxrwxrwx   1 noone    nogroup         0 Sep 28 12:46 .
226 Transfer complete.
[ftp]get  statemach.efs
Warning: The size of file statemach.efs is as same as the remote one. Overwrite it? [Y/N]:y
227 Entering Passive Mode (10,0,0,1,194,182).
125 ASCII mode data connection already open, transfer starting for statemach.efs.
226 Transfer complete.
FTP: 2263 byte(s) received in 11.830 second(s) 191.29byte(s)/sec.

[ftp]quit

主动方式是指在建立数据连接时由服务器主动发起连接请求,并要求客户端和服务器端同时打开端口以建立连接;被动方式是指在建立数据连接时由客户端主动发起连接请求,且只要求服务器端产生一个连接相应端口的进程
通过报文理解被动模式
技术分享图片

以上是关于请高手介绍一下ftp的主动连接和被动连接的主要内容,如果未能解决你的问题,请参考以下文章

FTP主动模式和被动模式

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

python ftp模块有支持passive off这个命令吗

FTP主动连接与被动连接

FTP连接时出现“227 Entering Passive Mode” 的解决方法

FTP(主动与被动)