3.1 KiB
3.1 KiB
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+,然后执行:
go build -o ftp-server.exe ./cmd/
运行
# 使用默认配置启动
.\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,结构如下:
{
"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 或 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