# sftpgo_build **Repository Path**: bwlab/sftpgo_build ## Basic Information - **Project Name**: sftpgo_build - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-25 - **Last Updated**: 2026-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SFTPGo 部署文档 基于 [SFTPGo](https://github.com/drakkan/sftpgo) 开源项目的 SFTP 文件传输服务,通过 Docker Compose 一键部署。 ## 服务信息 | 项目 | 值 | |------|-----| | SFTP 端口 | 2222 | | Web 管理界面 | http://127.0.0.1:8080 (仅本机访问) | | 数据目录(宿主机) | `./sftp-data` | | 日志目录(宿主机) | `./sftpgo-logs/sftpgo.log` | | 配置/数据库目录 | `./sftpgo-home` | ## 快速启动 ```bash docker compose up -d ``` ## docker-compose.yml ```yaml services: sftpgo: image: docker.m.daocloud.io/drakkan/sftpgo:latest container_name: sftpgo ports: - "2222:2022" # SFTP(生产环境建议限制来源 IP) - "127.0.0.1:8080:8080" # Web 管理界面(仅本机访问,生产用 Nginx 反代+HTTPS) volumes: # 用户文件数据 - ./sftp-data:/srv/sftpgo/data # SFTPGo 配置和数据库(用户信息等) - ./sftpgo-home:/var/lib/sftpgo # 日志文件持久化 - ./sftpgo-logs:/var/log/sftpgo environment: - SFTPGO_LOG_FILE_PATH=/var/log/sftpgo/sftpgo.log - SFTPGO_LOG_LEVEL=info # 连接安全配置 - SFTPGO_SFTPD__MAX_AUTH_TRIES=3 - SFTPGO_COMMON__MAX_PER_HOST_CONNECTIONS=10 # 防暴力破解 - SFTPGO_COMMON__DEFENDER__ENABLED=true - SFTPGO_COMMON__DEFENDER__BAN_TIME=30 - SFTPGO_COMMON__DEFENDER__THRESHOLD=5 restart: unless-stopped logging: driver: json-file options: max-size: "50m" max-file: "5" ``` 首次启动后,访问 http://127.0.0.1:8080 创建管理员账号,然后在 Web 界面中创建 SFTP 用户。 ## 连接 SFTP ```bash sftp -P 2222 用户名@服务器IP ``` ## 目录结构 ``` sftpgo/ ├── docker-compose.yml # 服务编排配置 ├── sftp-data/ # 用户上传的文件(按用户名分子目录) ├── sftpgo-home/ # SFTPGo 数据库、SSH host keys │ └── sftpgo.db # 用户信息数据库(SQLite) └── sftpgo-logs/ # 日志文件 └── sftpgo.log # 操作日志(JSON 格式,自动轮转) ``` ## 日志 ### 查看方式 ```bash # 通过日志文件查看 cat ./sftpgo-logs/sftpgo.log # 通过 docker logs 查看 docker logs sftpgo # 实时跟踪 docker logs -f sftpgo # 过滤文件操作日志(上传/下载/删除/登录) docker logs sftpgo 2>&1 | grep '"upload\|"download\|"login\|"delete' ``` ### 日志轮转 SFTPGo 内置日志轮转:单文件最大 10MB,保留 5 个备份,28 天自动清理。 ## 安全配置 当前已启用的安全策略: | 配置 | 说明 | |------|------| | Web 界面仅本机访问 | 绑定 `127.0.0.1:8080`,外部无法直接访问 | | 最大认证尝试次数 | 3 次(`MAX_AUTH_TRIES=3`) | | 防暴力破解 | 5 次失败自动封禁 IP 30 分钟 | | 单 IP 最大连接数 | 10 个(`MAX_PER_HOST_CONNECTIONS=10`) | ## 生产环境注意事项 1. **修改默认密码** — 管理员和 SFTP 用户都要用强密码,或使用密钥认证 2. **锁定镜像版本** — 将 `latest` 改为具体版本号(如 `v2.7.1`),避免意外升级 3. **HTTPS** — Web 管理界面远程访问时,用 Nginx 反向代理 + SSL 证书 4. **防火墙** — 通过 iptables 或云安全组限制 2222 端口的来源 IP 5. **用户配额** — 在 Web UI 给每个用户设置磁盘配额,防止磁盘撑满 6. **定期备份** — 备份 `./sftpgo-home/sftpgo.db`(用户数据库)和 `./sftp-data/`(用户文件) ## 常用管理操作 ```bash # 启动服务 docker compose up -d # 停止服务 docker compose down # 重启服务 docker compose restart # 查看服务状态 docker compose ps # 更新镜像 docker compose pull && docker compose up -d ```