Centos7 Docker部署/搭建vsftpd/ftp

2022-04-13 16:12:01

获取vsftpd/ftp镜像

docker pull fauria/vsftpd

实例

使用自定义用户帐户创建容器,映射数据目录并启用主动被动模式:

docker run -d -v /root/ftp:/home/vsftpd \
-p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
-e FTP_USER=myuser -e FTP_PASS=mypass \
-e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 \
--name vsftpd --restart=always fauria/vsftpd

工作讲解:

        该实例公开了端口2021. 此外,映射了两个目录:/home/vsftpd,其中包含用户主目录,以及/var/log/vsftpd,用于存储日志。

参数讲解:

-d后台启动
-v映射路径。(宿主机路径:容器路径)
-p映射端口。(需要开放的端口:容器默认开放端口)
-e设置环境变量
--name指定容器名称
--restart=always重启或启动Docker时,容器将自动重启或启动
FTP_USER默认 FTP 帐户的用户名。如果FTP_USER在运行时没有通过环境变量指定,admin将默认使用
FTP_PASS如果您没有通过 为默认的 FTP 帐户指定密码,FTP_PASS则会自动生成一个 16 个字符的随机字符串。
PASV_ADDRESSDocker 宿主机 IP / 主机名。(192.168.xx.xxx)
PASV_MIN_PORT这将用作被动模式端口范围的下限。给客户提供的下载服务随机端口
PASV_MAX_PORT这将用作被动模式端口范围的上限。给客户提供的下载服务随机端口
共享目录在宿主机映射的、/root/ftp/myuser/目录下。myuser是启动容器定义的账户,如果再添加新用户,则会出现新用户的共享目录。如果权限不足,想上传或下载,直接给用户myuser或别的已有用户给个 777权限就可以了。chmod 777 /root/ftp/myuser

访问过程中需要开启或关闭的服务

#关闭防火墙
systemctl stop firewalld

#关闭SE
setenforce 0

#打开我的电脑,直接访问,无任何阻拦,记得登入账户和密码
ftp://192.168.xx.xxx

-----------------------------------------------------------------------------------------
#特定需求需要开防火墙端口

#开放端口
firewall-cmd --zone=public --add-port=20/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=21100/tcp --permanent
firewall-cmd --zone=public --add-port=21101/tcp --permanent
firewall-cmd --zone=public --add-port=21102/tcp --permanent
firewall-cmd --zone=public --add-port=21103/tcp --permanent
firewall-cmd --zone=public --add-port=21104/tcp --permanent
firewall-cmd --zone=public --add-port=21105/tcp --permanent
firewall-cmd --zone=public --add-port=21106/tcp --permanent
firewall-cmd --zone=public --add-port=21107/tcp --permanent
firewall-cmd --zone=public --add-port=21108/tcp --permanent
firewall-cmd --zone=public --add-port=21109/tcp --permanent
firewall-cmd --zone=public --add-port=21110/tcp --permanent

#刷新firewalld
firewall-cmd --reload

-----------------------------------------------------------------------------------------
#关闭端口方法
firewall-cmd --zone=public --remove-port=21110/tcp --permanent
firewall-cmd --reload

添加新的 FTP 用户添加到现有容器:

docker exec -it vsftpd bash
mkdir /home/vsftpd/myuser1
echo -e "myuser1\nmypass" >> /etc/vsftpd/virtual_users.txt
/usr/bin/db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
exit
docker restart vsftpd
#账户和密码都存在了容器中的这个文件里面
cat /etc/vsftpd/virtual_users.txt

  • 作者:被遗忘的小野马
  • 原文链接:https://blog.csdn.net/zhuwenlong1993/article/details/120914523
    更新时间:2022-04-13 16:12:01