安装
# 安装
yum install vsftpd -y
yum install ftp -y
# 启用
systemctl restart vsftpd
systemctl enable vsftpd
# 处理配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
# 关闭SELinux
setenforce 0
修改配置文件:
vim /etc/vsftpd/vsftpd.conf
将以下内容复制进去(注意!将18行 pasv_address 等号后面的ip改为你自己云服务器的ip地址!!)
anonymous_enable=NO
local_enable=YES
local_root=/ftp/local
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
listen=YES
pasv_enable=YES
pasv_address=ip
pasv_min_port=27000
pasv_max_port=28000
pasv_promiscuous=YES
pam_service_name=vsftpd
创建用户:
useradd -s /sbin/nologin user1
passwd user1
#当提示密码不满足需求时,请忽略并再输入一次同样的密码
修改配置文件chroot_list:
# 打开
vim /etc/vsftpd/chroot_list
将以下内容添加进去
root
user1
创建文件并修改权限:
# 创建文件夹
mkdir -p /ftp/local/test
# 修改权限
chmod -R o+w /ftp
修改/etc/pam.d/vsftpd配置
vim /etc/pam.d/vsftpd
找到 pam_shells.so 并注释掉这行, 效果如下:
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
# auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
记得开放端口20/21,27000/28000,可以参考下图:

以防万一出现防火墙问题,先关闭防火墙:
systemctl stop firewalld
之后重启即可:
systemctl restart vsftpd
访问:
在资源管理器内输入ftp://ip 后输入账号密码即可(本教程使用的用户名为user1和root,尽量使用user1)

截图时没有添加文件
提示: 创建文件 touch 文件名 ;创建文件夹 mkdir 文件夹名
遇到的问题
linux操作环境下,ftp命令行可拉取可上传文件,完全正常
windows操作环境下:
- 资源管理器内ftp://ip,显示文件,拉取上传一切正常
- cmd内使用ftp命令下,可以连接,但无法显示文件,也无法上传和拉取文件