`

(转)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系统中,配置vsftpd多用户FTP服务器,实现多虚拟用户FTP连接,并同时解决FTP PORT和PASV模式下的问题。 vsftpd简介 vsftpd是非常流行的FTP服务器软件,支持多种操作系统,包括CentOS、Ubuntu、Debian等。...

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

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

    ftp.zip_FTP上传下载 PORT PASV

    - 在上传/下载过程中,可能会使用类型(如ASCII或二进制)和模式(如主动或被动)的命令。 - 完成传输后,发送QUIT命令关闭连接。 为了确保FTP客户端的正常工作,开发者需要考虑错误处理,如网络连接失败、认证错误...

    IIS下FTP服务器的PASV端口范围修改方法

    在FTP通信过程中,有两种主要的数据传输方式:主动模式(PORT)和被动模式(PASV)。被动模式下,客户端向服务器发起请求时,服务器会从指定的端口范围内选择一个未使用的端口与客户端建立连接。如果这个端口范围过大,...

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

    完成上述步骤后,你的CentOS 5.5系统应该已经配置好了一个使用虚拟用户的FTP服务,提供了更高级别的安全性和权限管理。记得调整防火墙规则,以允许通过指定的端口进行FTP连接。同时,定期更新vsftpd以保持系统安全。

    【上传下载】实现一个简易的FTP服务器,支持文件的上传、下载,以及断点续传 #采用多线程模型完成 #有port和pasv两种工作模式.zip

    【上传下载】实现一个简易的FTP服务器,支持文件的上传、下载,以及断点续传 #采用多线程模型完成 #有port和pasv两种工作模式

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

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

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

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

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

    对于需要同时支持PASV和PORT模式的情况,你需要在Serv-U服务器设置中调整PASV模式的端口范围。进入“本地服务器”&gt; “设置”&gt; “高级”&gt; “PASV端口范围”,配置一个大于1024的安全端口范围,例如30001-30003。同时...

    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应该注意什么.pdf

    服务器租用ftp注意事项 FTP(File Transfer Protocol)是服务器租用用户最常用的数据上传工具,但是对用户而言,理清FTP工具的使用...因为FTP的登录方式只有两种:PORT和PASV,取消PASV模式,就意味着使用PORT模式。

    FTP客户端详解

    FTP有两种主要的工作模式:PORT(主动模式)和PASV(被动模式)。 在PORT模式下,客户端首先发起与服务器的控制连接,然后告诉服务器它将监听的端口号,通常是命令连接端口号加1。服务器随后会从其数据端口(20)...

    FTP主被动问题FTP主被动问题

    FTP 主被动问题是 FTP 协议中的一种连接模式,分为主动模式(PORT 模式)和被动模式(PASV 模式)。在了解 FTP 主被动问题之前,需要了解 FTP 的基本概念。FTP(File Transfer Protocol)是一种用于在网络上进行文件...

    FTP工作模式

    "FTP工作模式" FTP(File Transfer Protocol)是一种常用的...在实际应用中,FTP服务器模式都是同时支持port和pasv两种方式,但是为了方便管理安全管理防火墙和设置ACL,了解FTP Server的port和pasv模式是很有必要的。

    内网Serv-U架站:实例解析FTP原理

    在这个实例中,我们将探讨如何在内网环境中使用Serv-U搭建FTP服务器,并理解FTP的工作原理,特别是PORT和PASV模式。 首先,内网Serv-U架站需要满足的条件包括:拥有一个公网IP地址以及对网关的操作权限。假设内网IP...

    基于C#的FTP服务器、客户端设计

    2. **PASV模式**:FTP的主动(PORT)模式和被动(PASV)模式是两种主要的连接方式。PASV模式在客户端打开一个数据连接到服务器,而不是服务器主动连接到客户端,这样可以解决防火墙和NAT问题。要实现PASV模式,我们...

    解决外网无法访问局域网的FTP服务器问题归纳.pdf

    FTP支持两种工作模式:PORT(主动)模式和PASV(被动)模式。PORT模式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器从20端口向...

Global site tag (gtag.js) - Google Analytics