`
jsun
  • 浏览: 72004 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

被动模式下apache的ftpserver缺陷及改进

阅读更多

最近学习了apache的开源FTPServer 1.0.2版本,个人认为在被动模式下工作时,设计的不够好,原因如下:

因为FTP协议的信令端口和数据端口是互相分离的,当在被动模式下客户端上传或下载数据时,该数据端口由FTP服务器提供,而apache的ftpserver在实现时,使用的是一个session占用一个数据端口(具体源代码请看IODataConnectionFactory中的initPassiveDataConnection方法),这样如果5个用户同时想上传或下载时,如果FTP数据服务端口只允许开一个,必然导致其他4个用户处于等待,最后超时导致本次数据交互失败。apache的这种实现直接导致server端承受的并发数与server端允许开放的数据端口数息息相关,而端口是非常宝贵的资源,所以我觉得apache的这种实现应该改为一个数据端口可以同时被多个ftp客户端使用,在ftpserver启动时,同时启动信令端口和数据端口监听,同时由于FTP协议本身的限制,我认为应该增加两个命令字,分别为CUSTOMPASV(类似PASV,但服务端在响应时,返回sessionid),增加CUSTOMRETR(类似RETR,下载文件命令),CUSTOMRETR在打开数据通道时,应先向数据通道发送一个字符串"SID:sessionid",其中sessionid的值为CUSTOMPASV返回的sessionid值,这样就很容易做到一个数据端口监听多个用户。

分享到:
评论
1 楼 Mybeautiful 2010-11-08  
同意博主的研究。
不过 按FTP协议, “如果FTP数据服务端口只允许开一个”, 那就同时只有一个用户能传数据。所以一般被动模式下,数据端口都是开一段端口范围。

楼主建议的"解决办法",应该算时一种创新, 不属于FTP协议的范筹,Server端支持这样的命令,还得有对应实现得客户端啊.

相关推荐

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 <!--ftp端口 --> <!--绑定的服务器IP地址,多网卡的时候使用...

    Apache FTPServer的配置使用

    在 JavaWeb 集群环境下,配置 FTP 服务器是非常重要的,本文将介绍 Apache FTPServer 的配置使用,帮助读者快速搭建 FTP 服务器。 FTP 介绍 FTP 是一个标准的 TCP/IP 协议,用于在网络上传输文件。FTP 协议基于...

    apache FTPserver 安装包

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    Apache Ftpserver 全套

    Apache Ftpserver是一款开源的FTP服务器软件,由Apache软件基金会维护。它提供了高度可配置性和模块化设计,使得用户可以根据需求定制自己的FTP服务环境。在本资料包中,你将获得Apache Ftpserver的全套资源,包括...

    apache mina 学习笔记三(子项目FtpServer)

    MINA FtpServer使用MINA的核心I/O抽象来处理数据连接,支持主动和被动模式的数据传输。在主动模式下,服务器主动建立数据连接;而在被动模式下,客户端发起数据连接。开发者可以通过`DataConnectionConfiguration`来...

    Apache FtpServer详细配置.zip

    Apache FtpServer是一款开源的FTP服务器,它基于Java平台,为用户提供了一种灵活且可扩展的方式来搭建和管理FTP服务。Apache FtpServer以其强大的功能、良好的稳定性和丰富的配置选项深受IT专业人士的喜爱。以下是对...

    Apache_FtpServer配置详解

    Apache_FtpServer配置详解

    apache-ftpserver-1.1.1.zip

    2. **灵活性**:Apache FTPServer允许自定义配置,可以通过修改配置文件来设置用户的权限、存储路径、传输模式等,以满足不同场景的需求。 3. **安全性**:支持SSL/TLS加密,可以保护文件传输过程中的数据安全,...

    apache ftpserver Mysql配置

    Apache FTPServer是一款开源的FTP服务器,它允许用户通过FTP协议上传和下载文件。与Mysql的结合配置,主要是为了实现用户认证、权限管理和日志记录等功能的数据库化,提高系统的可扩展性和安全性。以下是关于"apache...

    apache ftpserver讲解

    例如,在 `%FTP_HOME%/common/lib/ftpserver-core-1.0.5.jar` 文件中找到相关类文件,如 `org.apache.ftpserver.usermanager.impl.DbUserManager.class` 和 `org.apache.ftpserver.usermanager.impl....

    Apache Ftp Server使用说明

    1. **基本配置**:在`<ftpserver>`标签内,可以设置服务器的基本属性,如端口(`port`)和数据连接模式(`dataConnectionMode`)。 2. **用户认证**:在`<users>`标签内,定义FTP用户的用户名、密码、主目录等信息。...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...

    apache ftpserver使用讲解

    - `org\apache\ftpserver\usermanager\impl\AbstractUserManager.class` 修改这些类的主要目的是让其支持新的表结构,并实现在验证过程中对源IP地址的检查。 通过以上步骤,我们可以有效地配置并使用Apache FTP...

    Apache FtpServer 1.0.6

    Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...

    apache ftpserver

    9. **被动模式**:对于防火墙和NAT环境,FTPServer支持被动模式,能绕过一些网络限制,确保文件传输的顺利进行。 总之,Apache FTPServer是一个功能全面、安全可靠的FTP服务器解决方案,适合各种规模的企业和组织...

    apache ftp server

    Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...

    (转)Java使用Apache FtpServer实现嵌入式FTP服务器

    Java使用Apache FtpServer实现嵌入式FTP服务器是一项常见的任务,尤其在开发集成测试或部署自动化流程时。Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接...

    Android FTP server 用org.apache.ftpserver实现

    Android FTP server 用org.apache.ftpserver实现, 可以设置端口号, 匿名或用户名密码 https://blog.csdn.net/weixin_42065195/article/details/106944004

    基于Apache FtpServer 的Ftp服务器实现

    Apache FtpServer是一款开源的FTP服务器软件,它基于Java语言开发,可以轻松地与各种Java应用集成。在本场景中,我们重点讨论如何利用Apache FtpServer与Spring框架集成来搭建一个功能强大的FTP服务器。 首先,...

Global site tag (gtag.js) - Google Analytics