uFTP-Linux下FTPServer实现

uFTP-Linux下FTPServer实现

一、介绍

uFTP服务器是一个开源的,可移植的,轻量级的FTP服务器,用C编写,适用于Unix / Linux和POSIX兼容操作系统。uFTP服务器与所有Linux发行版兼容,它可以在各种架构中运行,包括x86,x64,ARM等。

特点:

  • C语言编写
  • 易于安装配置到arm-linux
  • 实现了Server常用功能
  • 开源宽松的MIT协议

功能:

  • 支持使用本地账号登录
  • 支持创建虚拟账号登录,匿名登录暂时不支持(不过根据现有代码很快可以加上)
  • 支持SSL加密
  • 支持主动模式和被动模式
  • 支持ASCII和二进制文件类型
  • 支持常用的上传、下载、查看和删除等命令

二、其它实现

  1. vsftpd: https://security.appspot.com/vsftpd.html
  2. pure-ftpd: https://www.pureftpd.org/project/pure-ftpd/
  3. bftpd: https://bftpd.sourceforge.net/

三、移植

移植只需要改动两个文件:一个Makefile,一个uftpd配置文件。编译之后会生成一个可执行文件,启动这个程序后它会自动在可执行文件目录下寻找uftpd.cfg,读取了配置文件后执行相应服务。

  1. 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
  1. 生成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
  1. 使用

在可执行文件路径下写一份uftpd.cfg,然后sudo ./uFTP,即可执行。

四、资料

项目地址:https://github.com/kingk85/uFTP
项目文档:https://www.uftpserver.com/wiki/opensource-ftp-server

使用过程中发现源码有些小问题,更改了下:https://github.com/tang0-0/uFTP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangYi0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值