From d82d2e6d5383b54213513d755a10126b99027a7f Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 28 Apr 2026 20:53:41 +0800 Subject: [PATCH] docs: add README --- README.md | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a729e0a --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ +# FTP Server for Windows + +基于 Go 语言开发的轻量级 FTP 服务器,带 Web 管理面板,专为 Windows 环境设计。 + +## 功能特性 + +### FTP 服务 +- 完整的 FTP 协议支持(RFC 959) +- 主动模式(PORT)和被动模式(PASV) +- 文件上传 / 下载(STOR / RETR) +- 目录浏览、创建、删除(LIST / MKD / RMD) +- 文件删除、重命名(DELE / RNFR / RNTO) +- 每用户独立的 HomeDir 和权限控制(只读 / 可写) + +### Web 管理面板 +- 管理员登录认证(Token 机制,24h 自动过期) +- 仪表盘 — 服务器状态实时概览 +- 用户管理 — 添加 / 编辑 / 删除 FTP 用户 +- 系统设置 — 修改 FTP 端口、Web 端口、管理员密码 + +## 快速开始 + +### 编译 + +确保已安装 Go 1.21+,然后执行: + +```bash +go build -o ftp-server.exe ./cmd/ +``` + +### 运行 + +```bash +# 使用默认配置启动 +.\ftp-server.exe + +# 指定配置文件 +.\ftp-server.exe -config myconfig.json +``` + +首次运行会自动生成 `config.json` 配置文件和 `ftp_root` 根目录。 + +### 访问 + +| 服务 | 地址 | +|------|------| +| Web 管理面板 | http://localhost:8080 | +| FTP 服务 | localhost:2121 | + +### 默认账号 + +| 服务 | 用户名 | 密码 | +|------|--------|------| +| Web 管理面板 | `admin` | `admin123` | +| FTP 默认用户 | `ftpuser` | `ftp123` | + +> 请在首次登录后立即修改默认密码。 + +## 配置说明 + +配置文件为 `config.json`,结构如下: + +```json +{ + "ftp": { + "host": "0.0.0.0", + "port": 2121, + "passivePortMin": 50000, + "passivePortMax": 50100, + "rootDir": "./ftp_root" + }, + "web": { + "host": "0.0.0.0", + "port": 8080 + }, + "admin": { + "username": "admin", + "password": "admin123" + }, + "ftpUsers": [ + { + "username": "ftpuser", + "password": "ftp123", + "homeDir": "./ftp_root", + "write": true + } + ] +} +``` + +| 字段 | 说明 | +|------|------| +| `ftp.host` | FTP 监听地址 | +| `ftp.port` | FTP 端口(默认 2121,避免需要管理员权限) | +| `ftp.passivePortMin/Max` | 被动模式端口范围 | +| `ftp.rootDir` | FTP 根目录 | +| `web.host` | Web 面板监听地址 | +| `web.port` | Web 面板端口 | +| `admin.username/password` | 管理员凭据 | +| `ftpUsers` | FTP 用户列表 | +| `ftpUsers[].homeDir` | 用户主目录 | +| `ftpUsers[].write` | 是否允许写入 | + +## FTP 客户端连接 + +推荐使用 [FileZilla](https://filezilla-project.org/) 或 Windows 资源管理器连接: + +``` +主机: localhost +端口: 2121 +用户名: ftpuser +密码: ftp123 +``` + +## 项目结构 + +``` +FTP-server/ +├── cmd/main.go # 主程序入口 +├── config/config.go # 配置管理模块 +├── ftp/server.go # FTP 服务核心 +├── web/server.go # Web 管理面板后端 API +├── static/embed.go # 前端 HTML 页面(内嵌) +├── go.mod # Go 模块定义 +└── config.json # 运行时配置(自动生成) +``` + +## 技术栈 + +- **Go** — 无需运行时依赖,单文件部署 +- **标准库 net/http** — Web 管理面板 +- **标准库 net** — FTP 协议实现 +- **内嵌 HTML/CSS/JS** — 无需额外前端文件 + +## 许可证 + +MIT License