Skip to content

🚀 基于Java的高性能FTP服务端 | High performance FTP Server Based in Java | 比VSFTPD配置容易百倍的Linux FTP服务端 | 致力于解决FTP服务兼容性 | Committed to solving FTP service compatibility | 服务端信息多语言支持 | 适用于Linux/MacOS的FTP服务端,强力兼容Windows/Unix等系统不乱码,无第三方扩展库,基于Socket底层实现

License

Notifications You must be signed in to change notification settings

adlered/LiteFTPD-UNIX

Repository files navigation

LiteFTPD-UNIX

🚧 项目使用Intellij IDEA开发 🚧
欢迎感兴趣的朋友参与协助我的开发,微信号详见我的签名。
造这个轱辘的原因主要是因为我在使用MacOS的FTP服务端时发现编码问题很严重,Windows几乎无法正常使用。
于是想在业余时间做出一个兼容性强、人性化、高性能且低占用的FTP服务端。

当前开发进度:

✳️ 目标:强兼容,高性能,低占用
当前进度: 已支持Windows、Linux、MacOS系统FileZilla、FlashFXP、迅雷、Chrome、Windows资源管理器等FTP客户端(或支持FTP的程序)的文件上传、下载、删除、移动、重命名功能

  • 极其简单的多用户身份识别&&权限控制&&默认目录&&允许目录设定
  • 用户目录锁定
  • 被动模式
  • 主动模式
  • 断点续传功能
  • 多平台客户端兼容
  • 二进制下载
  • 二进制上传
  • ASCII下载
  • ASCII上传
  • 文件移动/重命名
  • 内存回收机制
  • 用户自定义设置
  • 空闲端口回收机制
  • 小功能:登录成功后自动判断时间问候信息 ( Good morning / noon / afternoon / evening / night )
  • 长连接(noop)
  • 用户连接数限制及设置(支持全局设置)
  • IP连接数限制及设置(支持模糊匹配)
  • 配置文件(删除会自动生成)
  • 上传 / 下载速度限制
  • 图形控制面板

如何体验?

GIF演示

如果你面临长城防火墙的阻挡,建议你将下面的GIF(位于项目根目录)直接下载下来预览,否则可能变成静态图片。

How-to-LiteFTPD-UNIX.gif

国际化

虽然用处可能不是很大,但LiteFTPD支持国际化语言——支持一部分语言。以中文为例:

屏幕快照 2019-10-06 下午9.04.14.png

文本说明

该服务端支持绝大部分系统的绝大部分FTP客户端连接,但服务端本身由于需要保证稳定,仅支持在Linux/MacOS系统上运行(由于文件系统和编码)。

你可以将项目clone或直接下载到本地(或在这里直接下载单独Jar包),进入release文件夹,运行java -jar LiteFTPD-UNIX.jar即可。LiteFTPD默认会自动监听21端口。
如果需要将LiteFTPD的语言修改为其它语言,你可以在启动Jar时增加-l [语言]参数。例如java -jar LiteFTPD-UNIX.jar -l zh-cn,目前支持zh-cnen-us
如果在同目录下不存在配置文件config.prop,在你第一次运行时它会自动生成一个。
修改config.prop中的文件,就可以修改LiteFTPD的配置了,十分简单易用。

控制用户权限也十分简单,编辑config.propuser变量的值,我们以默认情况举例:

格式:[用户名];[密码];[权限];[允许访问的目录];[登录后默认的目录]
user=anonymous;;r;/;/;admin;123456;r;/;/root;

默认值中我们定义了两个用户的信息。我们分开讲:

用户1登录名:anonymous
用户1密码:空
用户1权限:r 只读(r代表read-读,w代表write-写,d代表delete-删除, c代表create-创建,m代表move-移动)
用户1允许访问的目录:/(根目录下的所有子目录和文件) 
用户1登录后默认定位到目录:/

用户2登录名:admin
用户2密码:123456
用户2权限:r 只读
用户2允许访问的目录:/
用户2登录后默认定位到目录:/root

同理,你也可以随意添加更多用户。

如何使用LiteFTPD?简单来讲,这么启动就行了:

git clone https://github.com/adlered/liteftpd-unix
mv liteftpd-unix/release/LiteFTPD-UNIX.jar ./
rm -rf liteftpd-unix
java -jar LiteFTPD-UNIX.jar

第一次启动后,LiteFTPD会自动在同名目录下生成config.prop配置文件,你可以在配置文件中修改LiteFTPD的配置,重启LiteFTPD即可生效。
不需要其它文件,你可以只通过LiteFTPD-UNIX.jar运行FTP服务。你只需要在安装了Java的电脑中直接运行LiteFTPD-UNIX.jar就可以了,十分便捷。

屏幕快照 2019-09-30 下午8.44.56.png

多线程不占CPU、内存

屏幕快照 2019-10-11 上午11.38.35.png

中文不乱码

MacOS Finder:

屏幕快照 2019-09-30 下午8.32.54.png

Windows 资源管理器:

屏幕快照 2019-09-30 下午8.33.14.png

MacOS FileZilla:

屏幕快照 2019-09-30 下午8.29.02.png

Windows FlashFXP:

屏幕快照 2019-09-30 下午8.30.00.png

Windows自带客户端(由于客户端特殊性,需要先输入quote gb适应中文):

屏幕快照 2019-09-30 下午8.26.40.png

Windows Chrome:

屏幕快照 2019-09-30 下午8.27.58.png

Unix自带客户端:

屏幕快照 2019-09-30 下午8.28.32.png

MacOS Chrome:

屏幕快照 2019-09-30 下午8.27.41.png

About

🚀 基于Java的高性能FTP服务端 | High performance FTP Server Based in Java | 比VSFTPD配置容易百倍的Linux FTP服务端 | 致力于解决FTP服务兼容性 | Committed to solving FTP service compatibility | 服务端信息多语言支持 | 适用于Linux/MacOS的FTP服务端,强力兼容Windows/Unix等系统不乱码,无第三方扩展库,基于Socket底层实现

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages