`

(转)ftp的port和pasv模式

 
阅读更多

转自:http://hi.baidu.com/xianyang1981/item/20d68be050a50aaccf2d4f8e

 

一、ftp的port和pasv模式的工作方式
       FTP使用2个TCP端口,首先是建立一个命令端口(控制端口),然后再产生一个数据端口。国内很多教科书都讲ftp使用21命令端口和20数据端口,这个应该是教书更新太慢的原因吧。实际上FTP分为主动模式和被动模式两种,ftp工作在主动模式使用tcp 21和20两个端口,而工作在被动模式会工作在大于1024随机端口。FTP最权威的参考见RFC 959,有兴趣的朋友可以仔细阅读
ftp://nic.merit.edu/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)

 

1.2 ftp pasv模式(被动模式)
       在被动方式FTP中,命令连接和数据连接都由客户端。当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N > 1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交 PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。ftp pasv模式工作流程如下图所示: 

 

对于服务器端的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP: 
1、客户端>1024端口到服务器的21端口 (入:客户端初始化的连接 S<-C) 
2、服务器的21端口到客户端>1024的端口 (出:服务器响应到客户端的控制端口的连接 S->C) 
3、客户端>1024端口到服务器的大于1024端口 (入:客户端初始化数据连接到服务器指定的任意端口 S<-C) 
4、服务器的大于1024端口到远程的大于1024的端口(出:服务器发送ACK响应和数据到客户端的数据端口 S->C)

分享到:
评论

相关推荐

    FTP服务器Port和Pasv模式释义.pdf

    FTP服务器Port和Pasv模式释义.pdf

    Centos 8 vsftpd多用户FTP服务器配置完美方案——同时解决PORT和PASV模式

    Centos 8 FTP服务器完美配置方案,实现多虚拟用户FTP连接,同时解决FTP PORT和PASV模式下,存在的问题。

    ftp中主动模式(port)与被动模式(PASV)

    处理防火墙和其他网络连接问题时最常见的一个难题是主动FTP与被动FTP的区别以及如何完美地支持它们。幸运地是,本文能够帮助你清除在防火墙环境中如何支持FTP这个问题上的一些混乱。

    ftp.zip_FTP上传下载 PORT PASV

    实现ftp上传下载,支持PORT和PASV两种模式

    CentOS5.5上配置ftp虚拟用户服务

    这是一个介绍在CentOS5.5上实现FTP服务及虚拟用户权限管理的服务器配置文档,由于虚拟用户不是系统用户,这样的FTP服务更加安全。

    c#ftp客户端 支持主动和被动模式

    c#ftp客户端 支持主动和被动模式,c#ftp客户端 主动模式 被动模 PORT PASV

    serv_u要关闭被动模式(PASV),使用PORT模式才能连接FTP的解决办法

    解决方法二:(可使用 PASV 和 Port 两种模式连接) 服务器如果启用了防火墙,需要在防火墙上打开一些端口给FTP的PASV模式使用,否则使用PASV模式无法登录。 一、在 Serv-U的本地服务器 &gt; 设置 &gt; 高级 &gt; PASV 端口...

    ftp连接不上出现500 Invalid PORT Command.错误

    220 Microsoft FTP Service USER 123000 331 Password required for 123. PASS xxxxxx 230 User 123 logged in. SYST 215 Windows_NT PWD 257 "/" is current directory. TYPE A 200 Type set to A. PORT 192,168,1,...

    FTP被动模式分析,ftp抓包分析

    FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...

    windows下搭建ftp服务器.docx

    FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、...FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。

    linux ftp服务器

    以前写来练手的linux下的ftp服务器,C语言实现的,支持PORT和PASV模式,主要还是支持下载及部分ftp标准指令。可编译和可运行,代码比较简单和清晰,可帮助理解ftp协议。 如果去看

    ftp可登录但是无法下载,上传问题解决

    通过 passive 开启和关闭 PASV模式,再ls 也是同样的问题, # 主动模式 $ pftp -v -A -d 211.159.185.xxx Connected to 211.159.185.198 (211.159.185.xxx). 220 (vsFTPd 3.0.2) Name (211.159.185.xxx:...

    vsftp这主被动模式的搭建文档

    FTP服务程序一般会支持两种不同的模式,一种是Port模式,一种是Passive模式(Pasv Mode),我先说说这两种不同模式连接方式的分别。 先假设客户端为C,服务端为S. Port模式: 当客户端C向服务端S连接后,使用的是Port...

    FTP服务搭建以协议抓包分析实验*(markdown版)

    FTP服务搭建以协议抓包分析实验 一、实验环境 二、实验目的 三、实验步骤 1.什么是FTP? 2.... 3.... 4.连接FTP服务器 ... 5.1主动模式(PORT) 5.2被动模式(PASV) 5.3 两种模式的比较 四、实验总结

    php的操作ftp类.zip

     @ftp_pasv($this-&gt;conn_id,1); // 打开被动模拟  }  function up_file&#40;$path,$newpath,$type=true&#41;  {  if($type) $this-&gt;dir_mkdirs($newpath);  $this-&gt;off = @ftp_put($this-&gt;conn_id,...

    Python编写FTP客户端

    这个是python编写的ftp客户端,支持PASV模式 数据模式支持ASCII和BINARY,还有DEBUG模式哦 大家看看吧,不过这个版本不支持PORT模式的,当然了如果要的话,没有问题的。。。

    不同目录下文件传输保持文件一直(Java源码)

    * A服务器(21端口)因为其实现了Port模式,故说明中Port表明为A服务器。 * B服务器(22端口)因为其实现了Pasv模式,故说明中Pasv端口表明为B服务器。 * A服务器的根目录下为C:\ftp_home B服务器的根目录为C:\test *1...

    ftpserver.zip_c++ ftp_ftpserver

    ftp服务器,支持断点重传,支持匿名以及账号登陆,支持port以及pasv连接

    CrossFTP Pro(FTP上传工具)v1.97.5注册版.rar

    CrossFTP是一款与FLASHFXP同类的FTP客户端软件,它使用类似于WIN资源管理器的操作界面,可轻松帮你管理多个站点,在远程站点和本地文件夹进行同步,创建SFV格式的CRC校验,支持PASV和PORT连接模式,每个站点都可设置...

Global site tag (gtag.js) - Google Analytics