Tinyftpd是用c语言实现的简单、快速、高效的Linux FTP服务器,只需简单的配置,就可快速的将主机变成高效的FTP服务器。

vbird e5928a39a4 Update README.md 1 year ago
bin 50e1eb4828 Upload tinyftpd.conf README.md LICENSE.txt src/common.h bulid/build.sh bin/tinyftpd src/commsocket.h src/ftpproto.h src/ftpproto.c src/commsocket.c src/ftpcodes.h src/hash.h src/main.c src/hash.c src/parseconf.h src/makefile src/parseconf.c src/privsock.c src/privparent.h src/privparent.c 1 year ago
bulid 50e1eb4828 Upload tinyftpd.conf README.md LICENSE.txt src/common.h bulid/build.sh bin/tinyftpd src/commsocket.h src/ftpproto.h src/ftpproto.c src/commsocket.c src/ftpcodes.h src/hash.h src/main.c src/hash.c src/parseconf.h src/makefile src/parseconf.c src/privsock.c src/privparent.h src/privparent.c 1 year ago
src 50e1eb4828 Upload tinyftpd.conf README.md LICENSE.txt src/common.h bulid/build.sh bin/tinyftpd src/commsocket.h src/ftpproto.h src/ftpproto.c src/commsocket.c src/ftpcodes.h src/hash.h src/main.c src/hash.c src/parseconf.h src/makefile src/parseconf.c src/privsock.c src/privparent.h src/privparent.c 1 year ago
LICENSE 2e7785675e Initial commit 1 year ago
LICENSE.txt 50e1eb4828 Upload tinyftpd.conf README.md LICENSE.txt src/common.h bulid/build.sh bin/tinyftpd src/commsocket.h src/ftpproto.h src/ftpproto.c src/commsocket.c src/ftpcodes.h src/hash.h src/main.c src/hash.c src/parseconf.h src/makefile src/parseconf.c src/privsock.c src/privparent.h src/privparent.c 1 year ago
README.md e5928a39a4 Update README.md 1 year ago
tinyftpd.conf 50e1eb4828 Upload tinyftpd.conf README.md LICENSE.txt src/common.h bulid/build.sh bin/tinyftpd src/commsocket.h src/ftpproto.h src/ftpproto.c src/commsocket.c src/ftpcodes.h src/hash.h src/main.c src/hash.c src/parseconf.h src/makefile src/parseconf.c src/privsock.c src/privparent.h src/privparent.c 1 year ago

README.md

Tinyftpd


概述

Tinyftpd是用c语言实现的简单、快速、高效的Linux FTP服务器,只需简单的配置,就可快速的将主机变成高效的FTP服务器。 Github: https://github.com/vbirds/Tinyftp

模块简介

TinyFTP分为 字符串工具模块、参数配置模块、socket模块、内部进程间通讯模块、系统调用工具模块。

  1. 字符串工具模块:字符串模块主要用来处理开发过程中,各种对字符串的处理。模块在string.hstring.c
  2. 参数配置模块:参数配置模块提供参数配置的功能。具体在parseconf.hparseconf.c
  3. socket模块:用于socket通讯建立与数据传输。可见 commonsock.h commonsock.c
  4. 内部进程间通讯模块:用于子进程 与 父进程间的通讯 与数据传输。privsock.hprivsock.c
  5. 系统调用工具模块:主要是一些用到的系统调用的函数封装。可见sckutil.h sckutil.c

安装

编译

cd build/
chmod +x bulid.sh
sudo ./build.sh

运行

cd /bin
sudo ./tinyftpd

配置

配置文件在当前目录的tinyftpd.conf

配置参数 说明
tunable_pasv_enable 是否开启被动模式
tunable_port_enable 是否开启主动模式
tunable_max_clients 最大连接数
tunable_max_per_ip 每IP最大连接数
tunable_listen_port FTP服务器端口
tunable_accept_timeout accept超时间
tunable_connect_timeout connect超时间
tunable_idle_session_timeout 控制时间连接超时
tunable_data_connection_timeout 数据连接时间超时
tunable_local_umask 掩码
tunable_upload_max_rate 最大上传速度(byte/s)
tunable_download_max_rate 最大下载速度(byte/s)
tunable_listen_address FTP服务器IP地址

LICENSE

软件遵循MIT开源协议

致谢

在开发过程中参考了vsftpd的源码,从中学到了许多知识,特此声明,表示感谢