1、安装vsftp并启动服务

使用以下命令进行安装:

yum install vsftpd

安装完毕后,使用以下命令启动服务:

systemctl start vsftpd
systemctl status vsftpd

并查看服务的启动状态:vsftp安装并启动成功

 

 

如需要设置开机启动,则使用以下命令:

systemctl enable vsftpd

2、开启匿名用户,测试vsftp

使用 vi /etc/vsftpd/vsftpd.conf 编辑配置,确保以下三项为YES:

anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

 

开启vsftp的匿名访问

 

保存后使用以下命令重启vsftp从而让配置生效:

systemctl restart vsftpd

2.1 测试内网是否正常

使用以下命令安装ftp工具

yum install ftp

安装后使用anonymous匿名用户登录(无需登录密码)

ftp localhost

如图所示:

ftp登录内网测试

 

220表示服务正常,可以登陆;230表示登陆成功。

在ftp工具内使用ls命令可以查看文件夹信息:

ftp工具查看文件夹信息

 

2.2 测试外网是否正常

直接在浏览器中输入”ftp://ip/”后,使用匿名用户登录看是否正常:

ftp外网浏览器测试

建议使用cuteFtp工具进行连接,这样在连接使用时内看到错误信息

2.3 创建正式用的远程登录账号

2.3.1 配置vsftp

使用 vi /etc/vsftpd/vsftpd.conf 修改vsftp的配置:

anonymous_enable=YES 改为 NO(意思是禁止匿名用户登录)

#是否允许匿名用户登录(默认为YES)
anonymous_enable=NO

将下图两行代码前的#号去掉,代表对chroot_list文件内的用户进行限制

#是否对chroot_list文件内的用户进行限制(默认为NO)
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

在文件最后面新增 allow_writeable_chroot=YES,表示允许已登录用户进行上传

#是否已登录用户进行上传(默认无此配置)
allow_writeable_chroot=YES

2.3.2 创建对应的FTP用户

使用以下命令创建不允许进行shell登录的ftp用户:

useradd -d /home/ftptest -s /sbin/nologin ftptest

然后使用以下命令将刚刚创建的用户放在ftp用户组中:

usermod -aG ftp ftptest

分配目录操作权限给刚刚创建的ftp用户:

chown ftptest /home/ftptest

使用以下命令修改刚刚创建的ftp用户密码:

passwd ftptest

使用“vi /etc/vsftpd/chroot_list”命令修改用户登录名单:

vsftp登录用户

然后使用ftp工具进行连接测试。

如果遇到密码明明正确但是始终提示503密码错误的情况,可修改“vi /etc/pam.d/vsftpd”文件,注释掉:

#auth    required pam_shells.so

然后重启vsftp:

systemctl restart vsftpd

2.3.3 访问速度过慢的配置调整

编辑 /etc/vsftpd/vsftpd.conf 配置文件,在最下面添加以下信息:

#以下配置是为了解决连接超时的问题
#开启被动模式(默认无此配置)
pasv_enable=YES
pasv_min_port=4000	#随机最小端口
pasv_max_port=5000	#随机最大端口
#关闭DNS反向解析(默认无此配置)
reverse_lookup_enable=NO

以上代码实现两个功能:

  • 开启PASV被动访问模式
  • 关闭DNS反向解析

然后重启vsftp:

systemctl restart vsftpd