什么是Apache Ftpserver

Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行,也可以嵌入Java应用程序中。我们还提供对Spring应用程序内集成的支持,并以OSGi捆绑软件的形式提供我们的发行版。默认的网络支持基于高性能异步IO库Apache MINA。使用MINA,FtpServer可以扩展到大量并发用户。

Apache ftpserver特性

  • 100%纯Java,免费的开源可恢复FTP服务器
  • 多平台支持和多线程设计。
  • 用户虚拟目录,写入权限,空闲超时和上传/下载带宽限制支持。
  • 匿名登录支持。
  • 上传和下载文件都是可恢复的。
  • 处理ASCII和二进制数据传输。
  • 支持IP限制以禁止IP。
  • 数据库和文件可用于存储用户数据。
  • 所有FTP消息都是可定制的。
  • 隐式/显式SSL / TLS支持。
  • MDTM支持-您的用户可以更改文件的日期时间戳。
  • “模式Z”支持更快地上传/下载数据。
  • 可以轻松添加自定义用户管理器,IP限制器,记录器。
  • 可以添加用户事件通知(Ftplet)。

    Apache ftpserver部署使用

    部署演示是在window机器上,linux服务器运行与window运行大同小异,参考即可。

    Apache Ftpserver下载

    下载地址:
    根据需要下载对应版本的部署包:https://mina.apache.org/ftpserver-project/downloads.html
    或者点击https://dlcdn.apache.org/mina/ftpserver/1.2.0/apache-ftpserver-1.2.0-bin.zip 直接下载。
    下载后,解压到当前文件夹:
    image.png
    image.png

    配置users.properties文件

    1. 例如配置一个qingfeng用户:
    2. #密码 配置新的用户
    3. ftpserver.user.qingfeng.userpassword=123456
    4. #主目录,这里可以自定义自己的主目录
    5. ftpserver.user.qingfeng.homedirectory=./res/qingfeng-home
    6. #当前用户可用
    7. ftpserver.user.qingfeng.enableflag=true
    8. #具有上传权限
    9. ftpserver.user.qingfeng.writepermission=true
    10. #最大登陆用户数为20
    11. ftpserver.user.qingfeng.maxloginnumber=20
    12. #同IP登陆用户数为2
    13. ftpserver.user.qingfeng.maxloginperip=2
    14. #空闲时间为300秒
    15. ftpserver.user.qingfeng.idletime=300
    16. #上传速率限制为480000字节每秒
    17. ftpserver.user.qingfeng.uploadrate=48000000
    18. #下载速率限制为480000字节每秒
    19. ftpserver.user.qingfeng.downloadrate=48000000
    image.png

    配置ftpd-typical.xml文件

    ```xml 127.0.0.2

``` image.png

启动服务

打开cmd并cd到bin路径执行.\ftpd.bat res/conf/ftpd-typical.xml,看到如下状态说明启动成功
image.png

如果出现问题:2 字节的 UTF-8 序列的字节 2 无效,用记事本打开,然后另存为-Utf-8
image.png

访问测试

测试访问,打开浏览器输入:ftp://localhost:2121/就会看到你的文件目录了,如果没有配置匿名用户,则会要求你输入用户名密码,正是你在user.properties中配置的
image.png

打开filezilla客户端

image.png