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

【软件部署】在docker环境部署vsftpd

说明

vsftp官网https://security.appspot.com/vsftpd.html
配置文件说明https://security.appspot.com/vsftpd/vsftpd_conf.html

注意

因优化更新,文件内容可能变化,具体参考https://github.com/zhuyifeiRuichuang/work-script/tree/main/vsftp

适用场景

一个用户一个容器,单独的数据卷,完整隔离的环境。

下载软件

在官网下载你期望使用的版本,放在当前目录

创建文件

Dockerfile

FROM ubuntu:24.04# 安装依赖RUNapt-getupdate&&apt-getinstall-y--no-install-recommends\gccmakelibc-dev libpam0g-devpasswdlibpam-pwdfile\&&rm-rf/var/lib/apt/lists/*# 复制并编译安装vsftpdCOPY vsftpd-*.tar.gz /tmp/ RUNcd/tmp&&\tar-zxfvsftpd-*.tar.gz&&\cdvsftpd-*&&\mkdir-p/usr/local/man/man8 /usr/local/man/man5&&\make&&makeinstall&&\cpvsftpd.conf /etc/&&\cd/tmp&&rm-rfvsftpd-*&&\apt-getpurge-ygccmake&&apt-getautoremove-y&&apt-getclean# ===================== 修复1:创建标准ftp用户 + 强制设置密码 =====================RUNmkdir-p/usr/share/empty&&\mkdir-p/data/&&\userdelftp2>/dev/null||true&&\useradd-r-d/data-s/usr/sbin/nologinftp&&\# 内置账户密码echo'ftp:Ftp@123'|chpasswd&&\chownftp:ftp /data/# ===================== 修复2:Ubuntu专用PAM认证(解决登录失败核心!) =====================RUNcat>/etc/pam.d/vsftpd<<EOF auth required pam_unix.so account required pam_unix.so EOFRUNcat>/etc/pam.d/ftp<<EOF auth required pam_unix.so account required pam_unix.so EOF# ===================== 修复3:完整FTP配置 =====================RUNsed-i's/^anonymous_enable=YES/anonymous_enable=NO/'/etc/vsftpd.conf&&\sed-i's/^#local_enable=YES/local_enable=YES/'/etc/vsftpd.conf&&\sed-i's/^#write_enable=YES/write_enable=YES/'/etc/vsftpd.conf&&\sed-i's/^#pam_service_name=vsftpd/pam_service_name=vsftpd/'/etc/vsftpd.conf&&\echo"chroot_local_user=YES">>/etc/vsftpd.conf&&\echo"allow_writeable_chroot=YES">>/etc/vsftpd.conf&&\echo"xferlog_file=/var/log/vsftpd.log">>/etc/vsftpd.conf&&\echo"pasv_min_port=40000">>/etc/vsftpd.conf&&\echo"pasv_max_port=40010">>/etc/vsftpd.conf&&\echo"listen=YES">>/etc/vsftpd.conf&&\echo"connect_from_port_20=YES">>/etc/vsftpd.conf# 日志初始化RUNtouch/var/log/vsftpd.log&&chmod644/var/log/vsftpd.log# 启动CMD["/bin/sh","-c","/usr/local/sbin/vsftpd /etc/vsftpd.conf & tail -f /var/log/vsftpd.log"]

compose.yaml

networks: vsftp-net: driver: bridge name: vsftp-net volumes: vsftp-data: name: vsftp-data services: vsftpd: build:.# image: zhuyifeiruichuang/vsftpd:3.0.5container_name: vsftpd-server networks: - vsftp-net volumes: - vsftp-data:/data ports: -"20:20"-"21:21"-"40000-40010:40000-40010"restart: always environment: -TZ=Asia/Shanghai

访问测试

本地测试

cd/tmpecho"111111">test.txtftplocalhostftpFtp@123 lcd /tmp put test.txls

远程测试是将locahost改为容器所在宿主机或容器名称,由访问者所在环境决定。

http://www.jsqmd.com/news/583162/

相关文章:

  • 2.4.快速排序——先分区再递归,为什么它平均这么快却可能退化?
  • Applite终极指南:如何在3分钟内掌握Mac软件管理
  • Android上部署Linux环境的方案总结对比
  • OpenClaw安装部署Mac操作系统版 - 打造你的专属AI助理
  • 越用越好用:OpenClaw的进化型Agent
  • Sprague-Grundy (SG) 函数及其应用
  • 多车环境下车载毫米波雷达是否会相互干扰?
  • 【深伪检测】论文整体调研与梳理方法
  • 战争环境软件测试:乌克兰开发者的生存报告
  • 2025-2026年靠谱移民机构评测:五家口碑服务推荐评价顶尖 - 十大品牌推荐
  • **Compose原理深度剖析:从声明式UI到高效渲染的核心机制**在现代Android开发中
  • 【Linux】关于 mmap 文件映射
  • 贵州公考面试选机构
  • An-Labeler:AudioLabellerV3 AI 辅助标注工具详解(自研Qt + FFT/模型自动标注)
  • SAP ABAP 根据表名上传数据,简易版
  • 2025届学术党必备的五大AI辅助写作平台实际效果
  • 《AI 小游戏开发(2)|带倒计时的 30 秒点方块,AI 生成完整游戏)》
  • 2025-2026年国内十大移民机构评测:五家口碑服务推荐评价 - 十大品牌推荐
  • 文理单片机课堂作业_数码管显示_0311
  • **发散创新:基于PyTorch的自定义深度学习框架实战与架构演进解析**在当前主流深度学习框架(如TensorFlow、P
  • Thorium浏览器:为什么这个基于Chromium的优化版本能解决你90%的性能痛点?
  • 2025-2026年靠谱移民机构评测:五家口碑服务推荐评价领先 - 十大品牌推荐
  • js流式模式输出 函数模式使用
  • 国内防伪公司推荐:为何选择驰亚科技?揭秘头部品牌防伪选型逻辑 - 资讯焦点
  • Linux内核设计哲学:你我承载力的艺术(续)
  • FPGA图像处理显示(ov5640摄像头与HDMI) ①特点:OV5640摄像头驱动模块、DD...
  • 大模型微调从零到部署:一份小白能啃动的知识地图 + 资源清单
  • 智慧实验室综合管理平台:构筑合规、高效、智能、自动化的未来实验室数字底座
  • 2025-2026年全球靠谱的eb5投资移民公司评测:五家口碑服务推荐评价 - 十大品牌推荐
  • WaveTools:解决鸣潮玩家性能优化与数据管理痛点的开源工具