当前位置: 首页 > news >正文

在 Docker 中部署 FTP 服务器

在 Docker 中部署 FTP 服务器可以通过以下步骤完成,这里以广泛使用的 pure-ftpd 镜像为例,提供完整部署方案:

📦 基础部署(单用户模式)

# 创建数据目录
mkdir -p ~/ftp/data ~/ftp/config# 运行容器(单用户模式)
docker run -d \--name ftp_server \-p 21:21 \-p 30000-30009:30000-30009 \-e FTP_USER_NAME=myuser \-e FTP_USER_PASS=MySecurePassword! \-e FTP_USER_HOME=/home/myuser \-v ~/ftp/data:/home/myuser \-v ~/ftp/config:/etc/pure-ftpd/passwd \stilliard/pure-ftpd:hardened

⚙️ 多用户高级配置(docker-compose.yml)

version: '3.8'
services:ftp:image: stilliard/pure-ftpd:hardenedcontainer_name: pure-ftpdports:- "21:21"- "30000-30009:30000-30009"  # PASV端口范围volumes:- ./ftp_data:/ftp- ./config:/etc/pure-ftpd/passwdenvironment:PUBLICHOST: your.domain.com  # 被动模式公网IP/域名FTP_PASSIVE_PORTS: "30000:30009"command: /run.sh -c 30 -C 10 -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P $PUBLICHOST

🔐 创建多用户账户

# 进入容器
docker exec -it pure-ftpd bash# 创建用户组
groupadd ftpgroup# 添加用户 (格式: useradd -g ftpgroup -d /ftp/{用户名} {用户名})
useradd -g ftpgroup -d /ftp/user1 user1
useradd -g ftpgroup -d /ftp/user2 user2# 设置密码
pure-pw useradd user1 -u ftpuser -g ftpgroup -d /ftp/user1
pure-pw useradd user2 -u ftpuser -g ftpgroup -d /ftp/user2# 更新数据库
pure-pw mkdb
exit

🌐 防火墙配置

# 开放端口
sudo ufw allow 21/tcp
sudo ufw allow 30000:30009/tcp

🛠️ 连接测试

使用 FileZilla 客户端连接:

地址: 服务器IP
端口: 21
协议: FTP
加密: 普通FTP(不加密)
用户: 创建的用户名
密码: 对应用户密码

🔒 TLS 加密配置(可选)

# 在docker-compose.yml中添加
environment:ADDED_FLAGS: "--tls=1"
volumes:- ./ssl:/etc/ssl/private

生成证书:

openssl req -x509 -nodes -newkey rsa:2048 \-keyout ~/ftp/ssl/pure-ftpd.pem \-out ~/ftp/ssl/pure-ftpd.pem \-subj "/CN=your.domain.com"

⚠️ 安全注意事项

  1. 避免使用弱密码:密码复杂度应大于12位
  2. 限制用户权限
  3.  
  4. 启用日志审计
  5.  

🔄 管理命令

# 添加新用户
docker exec pure-ftpd pure-pw useradd newuser -u ftpuser -d /ftp/newuser# 重置密码
docker exec pure-ftpd pure-pw passwd user1# 查看在线用户
docker exec pure-ftpd pure-ftpwho

💡 替代方案

镜像名称

特点

适用场景

fauria/vsftpd

轻量级(仅7MB)

资源受限环境

delfer/alpine-ftp-server

基于Alpine(5MB)

超轻量部署

mcreations/ftp

支持Web管理界面

需要可视化操作

 

重要提示:FTP协议本身不加密传输数据,敏感环境应:

1. 启用FTPS(FTP over SSL)

2. 或改用SFTP(SSH File Transfer Protocol)

3. 限制IP访问:docker run --add-host=allowed.ip:192.168.1.100
http://www.jsqmd.com/news/32363/

相关文章:

  • 在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名自动化脚本项目需求洞察
  • LangChain4j实战:模型参数配置、多模态、流式输出、聊天记忆、提示词工程全解析
  • kafka-ui-docker-compose.yml
  • 场景和使用的模型类型
  • lprm命令 – 移除打印队列中的任务
  • 2025 年 11 月隐框幕墙精致钢厂家推荐排行榜,隐框幕墙精致钢型材,幕墙精致钢构件,精致钢幕墙材料公司推荐,专业品质与结构安全之选
  • [笔记]欧拉图
  • 基于粒子群算法(PSO)的灰度图像阈值分割及多适应度函数实现
  • 遍插茱萸少一N
  • 小狗
  • VScode输出控制台中文显示乱码解决方法(仅限于Python)
  • 高教工具箱使用说明书.docx
  • 2025石家庄设计公司权威排行推荐榜:石家庄vi设计公司,石家庄画册设计公司品牌实力与创意服务的全景评测
  • 2025年博物馆数字展厅制造企业权威推荐榜单:智能化展厅/企业展厅LED屏/企业展示展厅源头厂家精选
  • 基于直方图均衡化的图像去雾算法改进
  • 2025年现代候车亭企业权威推荐榜单:现代公交候车亭/现代公交站台/现代公交站亭源头厂家精选
  • 2025年水利铸铁闸门厂家权威推荐榜单:弧形铸铁闸门/抓斗式清污机/铸铁闸门源头厂家精选
  • 智能充气泵方案:无线充气泵pcba的研发设计
  • 大屏动态交互总结
  • GMP-MES 表结构设计示例
  • win7 系统完美运行. net 8 程序 所需依赖总结
  • CONNECT 与 TLS 构建可治理边界
  • 2025年维修厂家推荐排行榜单:专业制冷服务引领行业
  • 2025 年度用友管理软件经销商最新推荐排行榜:权威测评 + 专业分析,精选优质服务商助力企业数字化转型制造业 / 建材行业管理软件代理商推荐
  • 2025年维修厂家口碑排行榜单:制冷行业技术创新与服务优势深度解析
  • 领先的安全可靠的数据分类分级厂商推荐
  • 2025年模块化甲板驳定制厂家权威推荐榜单:甲板驳船/甲板运输船/平板驳源头厂家精选
  • CTF-show_Web方向(更新中)
  • 6ES7 592-1BM00-0XB0
  • 基于MATLAB的卫星导航解算系统实现