在 Docker 中部署 FTP 服务器

news/2025/11/5 16:27:47/文章来源:https://www.cnblogs.com/karkash/p/19194053

在 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.mzph.cn/news/956914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名自动化脚本项目需求洞察

本文分析了一个广受欢迎的自动化脚本项目,该项目包含多个实用脚本,如自动发送工作延迟消息、处理紧急邮件和远程控制咖啡机等,展示了在AI技术快速发展的背景下,识别真实用户需求的重要性。内容描述核心功能定位:该…

LangChain4j实战:模型参数配置、多模态、流式输出、聊天记忆、提示词工程全解析

LangChain4j实战:模型参数配置、多模态、流式输出、聊天记忆、提示词工程全解析 前提后面用于演示的代码环境为: JDK-21,apache-maven-3.6.2,spring-boot和langchain4j的版本如下面pom文件所示<properties><…

kafka-ui-docker-compose.yml

version: 3.8services:kafka-ui:image: artifacts.iflytek.com/docker-repo/provectuslabs/kafka-uicontainer_name: kafka-uiports:- "18080:8080"restart: unless-stoppedenvironment:- DYNAMIC_CONFIG_EN…

场景和使用的模型类型

目录背景和价值一、推理型智能体(绑定reasoning模型)二、基础型智能体(绑定basic模型)三、设计逻辑总结参考资料 背景和价值 以下是 deer-flow 的大模型配置如下链接 https://github.com/bytedance/deer-flow/blob…

lprm命令 – 移除打印队列中的任务

lprm命令来自于英文词组”Line printer remove“的缩写,其功能是用于移除打印队列中的任务,使用lprm命令来移除尚未完成的,正放在打印机贮列之中的打印任务。 语法格式: lprm [参数] 任务编号常用参数:-E 强制加密…

2025 年 11 月隐框幕墙精致钢厂家推荐排行榜,隐框幕墙精致钢型材,幕墙精致钢构件,精致钢幕墙材料公司推荐,专业品质与结构安全之选

2025 年 11 月隐框幕墙精致钢厂家推荐排行榜:专业品质与结构安全之选 随着建筑行业对幕墙系统安全性、美观性和耐久性要求的不断提升,隐框幕墙精致钢作为现代建筑幕墙的核心支撑材料,其质量与性能日益受到行业关注。…

[笔记]欧拉图

定义欧拉路径是每条边恰好经过一次的路径;存在欧拉路径的图是半欧拉图。 欧拉回路是每条边恰好经过一次的回路;存在欧拉回路的图是欧拉图。判定无向图是欧拉图\(\iff\)非零度节点连通,所有节点度数为偶。此时起点可…

基于粒子群算法(PSO)的灰度图像阈值分割及多适应度函数实现

1. 算法框架设计 %% 核心流程 1. 图像预处理 → 2. PSO参数初始化 → 3. 适应度函数计算 → 4. 粒子群迭代 → 5. 阈值输出2. PSO参数设置 % 粒子群参数 n_particles = 30; % 粒子数量 max_iter = 100; % 最大…

遍插茱萸少一N

你们开 ipart 不带 n 是吧?我把你们挂到 AI 学会上炒作一番好不好?明年就让你加倍 neural network 起来,改叫 ACGNN 如何?后年就是 ACG4N,最后就变成 ACG8N,学界被这种自娱自乐的小圈子产物塞满,彻底完 G8 蛋了…

小狗

小狗WSY MT 二哈

VScode输出控制台中文显示乱码解决方法(仅限于Python)

1、右键点击“我的电脑”(或“此电脑”),选择“属性”; 2、点击“高级系统设置”选项; 3、在弹出的系统属性窗口中,点击“环境变量”按钮; 4、在“系统变量”或“用户变量”下,点击“新建”来创建一个新的变量; 5…

高教工具箱使用说明书.docx

高教工具箱使用说明 一. 联接多个Excel表 1.适用场景:期末要汇总成绩了,而你的平时成绩、期中成绩和期末成绩存在三个不同的excel表里,而且学生排列的顺序是不同的。这时候,你可以使用此功能,把它们联结成一个Ex…

2025石家庄设计公司权威排行推荐榜:石家庄vi设计公司,石家庄画册设计公司品牌实力与创意服务的全景评测

引言 当前石家庄设计行业呈现蓬勃发展态势,但市场乱象同样不容忽视:设计水平参差不齐,部分公司缺乏专业设计团队和系统化服务流程,导致设计方案同质化严重,无法满足企业品牌建设与市场传播需求;服务质量良莠不齐…

2025年博物馆数字展厅制造企业权威推荐榜单:智能化展厅/企业展厅LED屏/企业展示展厅源头厂家精选

在数字化浪潮的推动下,博物馆展厅已从传统的静态陈列空间,升级为集VR/AR、AI、数字孪生等前沿技术于一体的沉浸式智能交互载体。行业数据显示,超过75%的新建展厅已集成至少三种数字互动技术,沉浸式体验项目的平均观…

基于直方图均衡化的图像去雾算法改进

一、传统直方图均衡化的局限性全局处理缺陷 无法处理局部光照不均(如浓雾区域与清澈区域并存) 容易导致过曝或细节丢失(如天空区域过度拉伸) 颜色失真问题 直接对RGB通道处理会破坏色彩平衡 暗通道估计偏差导致大气…

2025年现代候车亭企业权威推荐榜单:现代公交候车亭/现代公交站台/现代公交站亭源头厂家精选

随着城市智能化建设与公共交通服务的持续升级,现代候车亭作为城市家具的重要组成,其市场需求显著增长。现代候车亭以其智能化服务功能、耐用材质与人性化设计,广泛应用于城市干道、公交枢纽及社区周边等场景。本文将…

2025年水利铸铁闸门厂家权威推荐榜单:弧形铸铁闸门/抓斗式清污机/铸铁闸门源头厂家精选

在水利工程、农田灌溉及水电站建设领域,铸铁闸门作为水工建筑物的关键控制设备,其密封性、耐腐蚀性及结构强度直接影响水资源调控效率与工程安全。根据水利行业统计数据显示,2025年全国水利建设投资规模预计突破1.2…

智能充气泵方案:无线充气泵pcba的研发设计

充气泵PCBA(Printed Circuit Board Assembly)是现代充气设备的核心组件,负责控制充气泵的运行、监测气压、管理电源等功能。随着智能家居、汽车、户外运动等领域的快速发展,充气泵PCBA的设计与制造技术也在不断进步…

大屏动态交互总结

大屏动态交互总结大屏内容一般多且杂,根据设计图布局可分成左中右三栏或者左右两栏。 父组件 Index.vue 包含 左中右三栏。父组件作为“状态管理中心的“总指挥”它不关心具体数据怎么画成图表或表格,那是“执行部…