产品概述
MyFTP 是一款使用 Go 语言开发的模块化、多协议文件传输服务器,支持 FTP 协议(RFC 959)、SFTP 协议和 Web 文件管理界面。系统提供完整的文件上传/下载、目录操作、用户认证、权限控制等功能,支持通过浏览器直接管理文件。
MyFTP 定位于企业文件共享、远程文件管理、自动化文件传输、开发调试环境等场景,提供轻量级、易部署的文件传输解决方案,支持 FTP 客户端、SFTP 客户端和 Web 浏览器三种访问方式。
技术架构
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ FTP Client │ │ SFTP Client │ │ Browser │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ 21/30000-30010 │ 22 │ 8080
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ FTP Server │ │ SFTP Server │ │ Web Server │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
└─────────────────┼───────────────┘
▼
┌─────────────────┐
│ Virtual File │
│ System │
└────────┬────────┘
▼
┌─────────────────┐
│ Local Storage │
└─────────────────┘
核心特性
📡 FTP 协议支持
完整实现 FTP 协议(RFC 959),支持 22+ 个标准命令,包括认证、目录操作、文件传输、文件管理等核心功能。
🔐 SFTP 协议支持
基于 SSH 的 SFTP 协议实现,支持加密传输,SSH 密钥管理,密码认证,提供比 FTP 更高的安全性。
🌐 Web 文件管理
基于浏览器的文件管理界面,支持文件列表展示、文件夹导航、上传/下载、创建/删除/重命名操作。
📁 文件传输命令
支持 RETR(下载)、STOR(上传)、APPE(追加)、REST(断点续传)等完整文件传输命令集。
📂 目录操作
支持 PWD、CWD、CDUP、LIST、MKD、RMD 等目录操作命令,完整的目录浏览和管理能力。
🔒 用户认证
多用户管理,密码验证,会话管理,权限控制,登录日志,确保只有授权用户可以访问文件。
🛡️ 安全防护
内置目录穿越防护,防止路径逃逸攻击,文件类型限制,文件大小限制,连接超时控制。
🔌 主动/被动模式
FTP 支持主动模式(PORT)和被动模式(PASV),自动分配数据端口,适配不同网络环境。
⚙️ 灵活配置
config.ini 配置文件,支持 FTP 端口、SFTP 端口、Web 端口、根目录、用户列表、日志级别等配置项。
📊 日志系统
5 级日志(DEBUG/INFO/WARN/ERROR/FATAL),控制台 + 文件双输出,自动时间戳和行号,日志文件轮转。
🧪 测试覆盖
核心模块 60+ 测试用例,100% 通过率,80%+ 代码覆盖率,确保系统稳定性和功能正确性。
📦 模块化设计
清晰的架构设计,配置、认证、文件系统、FTP、SFTP、Web 模块独立,易于扩展和维护。
Web API 文档
认证接口
| 接口 | 方法 | 说明 |
|---|---|---|
/api/login | POST | 用户登录 |
文件管理接口
| 接口 | 方法 | 说明 |
|---|---|---|
/api/files?path=/folder | GET | 获取文件列表 |
/api/folder | POST | 创建文件夹 |
/api/upload?path=/folder | POST | 上传文件 |
/api/download?path=/file.txt | GET | 下载文件 |
/api/item?path=/file.txt | DELETE | 删除文件/文件夹 |
/api/rename | PUT | 重命名 |
登录示例
FTP 命令示例
快速开始
1. 配置文件
2. 编译运行
3. 访问服务
配置说明
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| server.ftp_port | int | 2121 | FTP 控制端口 |
| server.sftp_port | int | 2222 | SFTP 端口 |
| server.web_port | int | 8080 | Web 管理端口 |
| server.root_dir | string | ./data | 文件根目录 |
| server.max_connections | int | 100 | 最大并发连接数 |
| ftp.passive_ports | string | 30000-30010 | 被动模式端口范围 |
| sftp.host_key_file | string | ./keys/host_key | SSH 主机密钥 |
| web.upload_max_size | int | 104857600 | Web 上传最大大小(100MB) |
| logging.level | string | info | 日志级别 |
立即下载
选择合适的版本开始使用 MyFTP
📦 下载完整包版本: v1.0.0 | 平台: Windows/Linux amd64
包含: server.exe (服务器) + config.ini (配置文件) + Web 管理界面