最近学习了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值,这样就很容易做到一个数据端口监听多个用户。
分享到:
相关推荐
从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 <!--ftp端口 --> <!--绑定的服务器IP地址,多网卡的时候使用...
在 JavaWeb 集群环境下,配置 FTP 服务器是非常重要的,本文将介绍 Apache FTPServer 的配置使用,帮助读者快速搭建 FTP 服务器。 FTP 介绍 FTP 是一个标准的 TCP/IP 协议,用于在网络上传输文件。FTP 协议基于...
Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...
Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...
Apache Ftpserver是一款开源的FTP服务器软件,由Apache软件基金会维护。它提供了高度可配置性和模块化设计,使得用户可以根据需求定制自己的FTP服务环境。在本资料包中,你将获得Apache Ftpserver的全套资源,包括...
2. **灵活性**:Apache FTPServer允许自定义配置,可以通过修改配置文件来设置用户的权限、存储路径、传输模式等,以满足不同场景的需求。 3. **安全性**:支持SSL/TLS加密,可以保护文件传输过程中的数据安全,...
MINA FtpServer使用MINA的核心I/O抽象来处理数据连接,支持主动和被动模式的数据传输。在主动模式下,服务器主动建立数据连接;而在被动模式下,客户端发起数据连接。开发者可以通过`DataConnectionConfiguration`来...
Apache FtpServer是一款开源的FTP服务器,它基于Java平台,为用户提供了一种灵活且可扩展的方式来搭建和管理FTP服务。Apache FtpServer以其强大的功能、良好的稳定性和丰富的配置选项深受IT专业人士的喜爱。以下是对...
Apache_FtpServer配置详解
Apache FTPServer是一款开源的FTP服务器,它允许用户通过FTP协议上传和下载文件。与Mysql的结合配置,主要是为了实现用户认证、权限管理和日志记录等功能的数据库化,提高系统的可扩展性和安全性。以下是关于"apache...
例如,在 `%FTP_HOME%/common/lib/ftpserver-core-1.0.5.jar` 文件中找到相关类文件,如 `org.apache.ftpserver.usermanager.impl.DbUserManager.class` 和 `org.apache.ftpserver.usermanager.impl....
1. **基本配置**:在`<ftpserver>`标签内,可以设置服务器的基本属性,如端口(`port`)和数据连接模式(`dataConnectionMode`)。 2. **用户认证**:在`<users>`标签内,定义FTP用户的用户名、密码、主目录等信息。...
Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...
- `org\apache\ftpserver\usermanager\impl\AbstractUserManager.class` 修改这些类的主要目的是让其支持新的表结构,并实现在验证过程中对源IP地址的检查。 通过以上步骤,我们可以有效地配置并使用Apache FTP...
Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...
9. **被动模式**:对于防火墙和NAT环境,FTPServer支持被动模式,能绕过一些网络限制,确保文件传输的顺利进行。 总之,Apache FTPServer是一个功能全面、安全可靠的FTP服务器解决方案,适合各种规模的企业和组织...
Apache FTP Server是一个开源的FTP服务器,它允许用户通过FTP协议上传、下载文件。这个服务器是用Java语言编写的,因此可以在任何支持Java的平台上运行,包括Windows、Linux、Unix等操作系统。Apache FTP Server的...
Java使用Apache FtpServer实现嵌入式FTP服务器是一项常见的任务,尤其在开发集成测试或部署自动化流程时。Apache FtpServer是一个开源项目,它提供了一个轻量级且可嵌入的FTP服务器,允许开发者在Java应用程序中直接...
Android FTP server 用org.apache.ftpserver实现, 可以设置端口号, 匿名或用户名密码 https://blog.csdn.net/weixin_42065195/article/details/106944004
Apache FtpServer是一款开源的FTP服务器软件,它基于Java语言开发,可以轻松地与各种Java应用集成。在本场景中,我们重点讨论如何利用Apache FtpServer与Spring框架集成来搭建一个功能强大的FTP服务器。 首先,...