uFTP-Linux下FTPServer实现
uFTP-Linux下FTPServer实现
一、介绍
uFTP服务器是一个开源的,可移植的,轻量级的FTP服务器,用C编写,适用于Unix / Linux和POSIX兼容操作系统。uFTP服务器与所有Linux发行版兼容,它可以在各种架构中运行,包括x86,x64,ARM等。
特点:
- C语言编写
- 易于安装配置到arm-linux
- 实现了Server常用功能
- 开源宽松的MIT协议
功能:
- 支持使用本地账号登录
- 支持创建虚拟账号登录,匿名登录暂时不支持(不过根据现有代码很快可以加上)
- 支持SSL加密
- 支持主动模式和被动模式
- 支持ASCII和二进制文件类型
- 支持常用的上传、下载、查看和删除等命令
二、其它实现
- vsftpd: https://security.appspot.com/vsftpd.html
- pure-ftpd: https://www.pureftpd.org/project/pure-ftpd/
- bftpd: https://bftpd.sourceforge.net/
三、移植
移植只需要改动两个文件:一个Makefile,一个uftpd配置文件。编译之后会生成一个可执行文件,启动这个程序后它会自动在可执行文件目录下寻找uftpd.cfg,读取了配置文件后执行相应服务。
- Makefile改动
# 指定编译器
CC=gcc# 选择是否支持大文件(2G以上)读写
ENABLE_LARGE_FILE_SUPPORT=
#TO ENABLE THE LARGE FILE SUPPORT UNCOMMENT THE NEXT LINE
# ENABLE_LARGE_FILE_SUPPORT=-D LARGE_FILE_SUPPORT_ENABLED -D _LARGEFILE64_SOURCE# 选择是否支持SSL
ENABLE_OPENSSL_SUPPORT=
#TO ENABLE OPENSSL SUPPORT UNCOMMENT NEXT 2 LINES
#ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED
#LIBS=-lpthread -lssl -lcrypto# 选择是否支持用主机本地的账户登录
ENABLE_PAM_SUPPORT=
PAM_AUTH_LIB=
#TO ENABLE PAM AUTH UNCOMMENT NEXT TWO LINES
#ENABLE_PAM_SUPPORT= -D PAM_SUPPORT_ENABLED
#PAM_AUTH_LIB= -lpam
- 生成uftpd.cfg
# 最多支持连接的FTPClient数量
MAXIMUM_ALLOWED_FTP_CONNECTION = 10# 是否只能执行一个Server进程
SINGLE_INSTANCE = true# 是否采用守护进程模式
DAEMON_MODE = false# 无操作超时时间
IDLE_MAX_TIMEOUT = 3600# 每个IP做多可连接数量
MAX_CONNECTION_NUMBER_PER_IP = 10# 每个IP最多可登录数量
MAX_CONNECTION_TRY_PER_IP = 10# SSL证书目录
CERTIFICATE_PATH=/etc/uFTP/cert.pem
PRIVATE_CERTIFICATE_PATH=/etc/uFTP/key.pem# 是否采用主机本地账户
#Enable system authentication based on /etc/passwd
#and /etc/shadow
ENABLE_PAM_AUTH = false# 随机端口范围
RANDOM_PORT_START = 10000
RANDOM_PORT_END = 50000# 控制端口
FTP_PORT = 21
#TCP/IP PORT SETTINGS (DEFAULT 21)# 账户配置 START FROM USER 0 TO XXX
USER_0 = tang
PASSWORD_0 = tang
HOME_0 = /var/user/
GROUP_NAME_OWNER_0 = root
USER_NAME_OWNER_0 = root
- 使用
在可执行文件路径下写一份uftpd.cfg,然后sudo ./uFTP
,即可执行。
四、资料
项目地址:https://github.com/kingk85/uFTP
项目文档:https://www.uftpserver.com/wiki/opensource-ftp-server
使用过程中发现源码有些小问题,更改了下:https://github.com/tang0-0/uFTP
uFTP-Linux下FTPServer实现相关推荐
- Linux下防火墙iptables用法规则详及其防火墙配置
原博主文章更美丽: http://www.cnblogs.com/yi-meng/p/3213925.html iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国 ...
- linux下windows软件的代替品
此文为网上找到的一篇博文稍后会根据个人日常使用习惯重新分化 ,希望能对想早日进入linux下工作的朋友有些帮助 Linux下数百种 Windows 软件的免费替代品列表 程序所执行任务的描述 Wind ...
- Linux下数百种Windows软件的免费替代品列表
Linux下数百种 Windows 软件的免费替代品列表 程序所执行任务的描述 Windows Linux 1) 网络连接 网页浏览器 微软 IE,网景 Netscape / Mozilla, Ope ...
- 转载-Linux下hosts、host.conf、resolv.conf
Linux下hosts.host.conf.resolv.conf /etc/resolv.conf 该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数. resol ...
- 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件
过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...
- Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多
Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556 文章- 38 评论- 77 ...
- linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...
- linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 6 文章- 2 评论- 2 < ...
最新文章
- 死锁产生的条件+排除死锁的方法
- 大数据陷阱:谁有权享有大数据,谁有权分析大数据
- 【PAT甲级 U形打印】1031 Hello World for U (20 分) Java版 6/6通过
- java下载图片到手机相册_Unity保存图片到Android手机且更新相册
- 传播时延、发送时延、处理时延和排队时延各自的物理意义是什么?
- 女性买房需要注意哪些问题
- JMeter脚本录制-快速上手篇
- 如何用minitab检测一组数据是否服从正态分布
- JSONObject.fromObject(obj) 报错
- UML常用图--类图,用例图,序列图(时序图),协作图(通信图),状态图,活动图
- 欧拉角(转子动力学)
- 海伦公式——初中数学证明
- win7升级win10正式版_如何使用小白系统对win7升级win10操作
- 基于微信公众平台的智能硬件/智能设备APP开发详解
- 随身WIFI刷机记录 UF1003
- web前端零基础html5
- 花式吊打源码中 Android.mk 集锦
- 群晖 使用SMB3进行局域网传输双倍叠加网速下踩的一些坑
- mysql替换空行解决导出到excel时由于内容有换行回车导致的问题
- 通过sql语句查询oracle版本信息
热门文章
- TDOA定位Taylor算法
- 在GitLab中集成Azure Kubernetes
- Matlab 将cell转换成double格式
- DirBuster的初涉使用笔记
- 大学物理----旋转矢量法证明同方向同频率简谐振动的合运动公式
- 解决报错 PHP TP5框架 .env 文件产生问题如:Fatal error: Uncaught think\exception\ErrorException: in....
- Win32自定义字体
- xmta温度控制仪说明书_XMTA-2C-0110211004 智能温度控制器详细解读
- 稳恒(有人透传云)NBIOT模块使用指南(1)
- POJ 4151/北大百练 4151 电影节 题解(两种方法)贪心算法基础