安装

# 安装
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命令下,可以连接,但无法显示文件,也无法上传和拉取文件