转载: https://www.imooc.com/article/68351
1、yum 安装 vsftpd
yum install -y vsftpd
2、修改配置文件/etc/vsftpd/vsftpd.conf
# 原有初始配置
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
tcp_wrappers=YES
local_enable=YES
write_enable=YES
pam_service_name=vsftpd
# 不支持匿名访问
anonymous_enable=NO
# 所有用户都被限制在其主目录下
chroot_local_user=NO #此处需要改为NO,否则无法创建文件夹
chroot_list_enable=NO
allow_writeable_chroot=YES
# 支持IPv4及IPv6, 监听端口8021
listen=NO
listen_ipv6=YES
listen_port=8021
# 只允许userlist_file文件中的用户可访问ftp
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
# ftp用户主目录
local_root=/home/ftp
# passive模式,数据端口范围自定义(6000-6010),要确保这些端口已开放给外网访问
pasv_enable=YES
#解决 425 Security: Bad IP connecting 问题
pasv_promiscuous=YES
3、配置允许登录的用户/etc/vsftpd/user_list
ftp
4、创建 ftp 登录用户
#添加组
groupadd ftp
#添加用户
useradd -d /home/ftp -s /sbin/nologin -g ftp -G root ftpUser
#用户设置密码
passwd ftpUser
#修改目录权限
chown -R ftp /home/ftp
5、启动服务
systemctl start vsftpd
6、SFTP 工具使用注意事项
需要取消勾选,下图中的被动模式
7、docker 方式
# 拉取镜像
docker pull fauria/vsftpd
# 创建用户和目录
groupadd ftpuser
useradd ftpuser -g ftpuser
passwd ftpuser
# 启动镜像
docker run --name vsftpd -p "20:20" -p "21:21" -v /home/ftpuser:/home/vsftpd/ftpuser -e FTP_USER=ftpuser -e FTP_PASS=ftpuser -d docker.io/fauria/vsftpd
8、docker-compose 方式
version: "3"
services:
ftp:
image: docker.io/fauria/vsftpd
ports:
- "20:20"
- "21:21"
volumes:
- "/home/ftpuser:/home/vsftpd/ftpuser"
container_name: ftp
environment:
FTP_USER: ftpuser
FTP_PASS: ftpuser