`
war_martin
  • 浏览: 114965 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多


FTP中的两种工作方式  
FTP是一种文件传输协议,它支持两种模式,一种方式叫做Standard (也就是 Active,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP server。Passive模式FTP的客户端发送 PASV命令到 FTP Server。  
下面介绍一个这两种方式的工作原理:  
Standard模式FTP 客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。  
Passive模式在建立控制通道的时候和Standard模式类似,当客户端通过这个通道发送PASV 命令的时候,FTP server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server 将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。   
现在的FTP软件里面包括在IE5以上的版本里面也已经支持这两种模式了。一般一些FTP客户端的软件就比较好设置了,一般都有一个PASV的选项,比如CuteFTP,传输的方式都有Standard和PASV的选项,可以自己进行选择;另外在IE里面如果要设置成PASV模式的话可以选中工具-Internet选项-高级-为FTP站点启用文件夹视图,否则就采用Standard模式

 

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以FTP的Standard模式在许多时候在内部网络的机器通过防火墙出去的时候受到了限制,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。当然也可以设置成功,首先要创建一条规则就是允许内部的IP连接外部的IP的21端口;第二条就是禁止外部IP的TCP 20端口连接内部IP的<1024的端口,这条是为了防止外部连接内部的常规端口;第三条验证ACK是否等于1,这个的原理就参见TCP建立连接的三次握手吧。所以如果安全的配置的话非常困难,这个时候就想起来了PASV模式,因为不用建立新的连接,所以也就不会涉及到后面的问题了。但是管理员可能不想使用PASV模式,因为这个时候FTP Server会开放一个随机的高端口,尽管在IIS4和IIS5里面端口的范围是1024-5000,但是许多 FTP Server的端口范围达到了1024-65535,这个时候在这个主动开放的随机端口上是有完全的访问权限的

分享到:
评论

相关推荐

    FTP两种工作模式.pdf

    FTP两种工作模式.pdf 学习资料 复习资料 教学资源

    Linux中ftp服务器的配置

    FTP服务分为PORT FTP和PASV FTP两种模式。PORT FTP中,客户端首先建立一个连接到服务器的21号端口(控制通道),然后服务器会开启20号端口进行数据传输。而在PASV FTP中,同样是先建立控制通道,但数据传输的端口由...

    ftp客户端程序

    有匿名FTP和非匿名FTP两种模式,非匿名需要提供有效的用户名和密码。 3. 命令交互:FTP协议定义了一系列命令,如`USER`、`PASS`、`LIST`、`RETR`(下载文件)、`STOR`(上传文件)、`CWD`(改变工作目录)等,...

    FTP工作模式

    这两种模式的主要区别在于数据端口的连接方式。 1. 主动模式(Port Mode) 在主动模式下,客户端从一个任意的非特权端口(N&gt;1024)连接到FTP服务器的命令端口(TCP 21)。客户端开始监听端口N+1,并发送FTP命令...

    ftp的ASCII模式和Binary模式的区别

    在传输过程中,FTP提供了两种主要的数据传输模式:ASCII模式和Binary模式,这两种模式的选择直接影响了文件传输的质量和完整性。 #### ASCII模式 ASCII模式主要用于传输文本文件。在这种模式下,FTP会将文本文件中...

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

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

    jftp.jar支持ftp和sftp两种模式的文件传输

    标题“jftp.jar支持ftp和sftp两种模式的文件传输”揭示了这款工具的核心功能,即它能够处理两种常见的文件传输协议:FTP(File Transfer Protocol)和SFTP(Secure File Transfer Protocol)。FTP是一种标准网络协议...

    ftp传输文件模式详解

    在FTP传输过程中,有两种主要的文件传输模式:ASCII(文本)模式和二进制(Binary)模式,这两种模式有着不同的特性和适用场景。 1. ASCII(文本)模式: ASCII模式主要用于传输文本文件,如文本编辑器创建的文档...

    FTP服务器FTP服务器

    FTP有两种主要的连接模式:主动模式和被动模式。主动模式中,客户端打开一个端口接收数据,而服务器主动连接到这个端口;被动模式则适用于防火墙或NAT环境,服务器会提供一个端口供客户端连接,以避免端口转发问题。...

    FTP的工作模式

    FTP有两种使用模式:主动和被动(PASV)。

    VSFTP服务器配置详解.docx

    FTP 分为主动 FTP 和被动 FTP 两种模式。 1. 主动 FTP:客户端从一个任意的非特权端口 N(N&gt;1024)连接到 FTP 服务器的命令端口(21),然后客户端开始监听端口 N+1,并发送 FTP 命令"port N+1"到 FTP 服务器。接着...

    golang实现ftp上传资源

    FTP支持两种模式,主动(PORT)和被动(PASV),这两种模式主要区别在于如何建立数据连接。 2. **Go语言网络编程**:Go语言的`net`包提供了丰富的网络编程接口,如`net.Dial`用于创建TCP连接,`net.Listen`用于监听...

    ftp.rar_ftpput_ftpput ftpget_实现ftpget与ftpput功能

    FTP(File Transfer Protocol)是一种基于TCP/IP协议的网络协议,用于在网络上进行文件传输。本文将详细探讨如何实现FTP客户端的两个关键功能:FTPGET(下载文件)和FTPPUT(上传文件),以及这两个功能在实际应用中...

    webftp.zip ftp源码

    FTP具有两种主要的工作模式:主动模式和被动模式,分别用于处理不同网络环境下的连接问题。 WebFTP是FTP的一种实现方式,它将FTP服务集成到Web应用程序中,用户无需安装专门的FTP客户端,只需使用浏览器即可进行...

    《计算机网络技术与实训》习题答案07.docx

    有匿名FTP和用户FTP两种模式,前者允许用户无需身份验证即可访问公开资源,后者则需要用户名和密码进行身份验证。FTP的主要应用场景包括: - 高速下载站点:用户可以通过FTP快速下载大文件或大量文件。 - 网站维护...

    FTPFILE FTP-FTP源代码分享

    这两种模式在源码中会有不同的实现。 4. **FTP会话管理**:源代码会涉及会话状态的管理,如保持活动连接、处理断线重连、错误处理和恢复机制。 5. **数据传输**:FTP支持二进制和ASCII两种传输模式,这会影响数据...

    ftp服务器FtpServer

    4. **传输模式**:FTP有两种传输模式,主动(Active)和被动(Passive)。主动模式中,客户端打开一个端口向服务器发送数据;被动模式下,服务器打开一个端口等待客户端连接,用于解决防火墙和NAT设备下的连接问题。...

    FileZilla-3.3.3.rar

    它有匿名FTP和授权FTP两种模式,后者需要用户提供用户名和密码进行身份验证。 2. **FileZilla的特点**: - **用户界面**:FileZilla提供了直观的GUI(图形用户界面),使用户能够轻松地管理和浏览远程服务器的文件...

    java FTP server

    3. **数据传输**:FTP协议有ASCII和二进制两种传输模式,Java FTP Server需要支持这两种模式,并且能正确处理数据传输过程中的错误。 4. **控制连接和数据连接**:FTP协议使用两个连接——控制连接用于发送命令和...

    FTP AD隔离模式的配置方法

    FTP AD隔离模式是一种在Windows服务器环境中使用Active Directory (AD) 进行权限管理的方法,它允许管理员精细控制FTP用户的访问权限,确保每个用户只能访问其指定的目录,从而提高系统的安全性和管理效率。...

Global site tag (gtag.js) - Google Analytics