centos7.9版本
1.下载FTP离线安装包:
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64) 选择最后一个 vsftpd-3.0.2-28.el7.x86_64.rpm
2.检查是否已经安装了vsftp
rpm -qa | grep vsftpd
出现提示vsftpd版本号则表示已安装,没有则未安装
3.安装vsftpd(推荐离线)
离线安装 rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
在线安装 yum install -y vsftp
4.安装过程可能会报错
[root@yjy-pt01 vsftpd]$ rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
warning: vsftpd-3.0.2-22.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by vsftpd-3.0.2-22.el7.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by vsftpd-3.0.2-22.el7.x86_64
解决:安装相关依赖
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm
若是执行上面命令依然提示 安装依赖失败 ,可执行如下命令强制执行
rpm -ivh libcap-2.16-5.5.el6.x86_64.rpm --nodeps --force
rpm -ivh libcap-devel-2.16-5.5.el6.x86_64.rpm --nodeps --force
上述依赖链接地址可根据不同系统版本下载相应依赖rpm包:https://centos.pkgs.org/7/centos-x86_64/
例如下载libcap-2.16-5.5.el6.x86_64.rpm包 链接地址即是:https://centos.pkgs.org/7/centos-x86_64/libcap-2.16-5.5.el6.x86_64.rpm
5.检查是否安装成功
rpm -qa | grep vsftpd 出现版本号vsftpd-2.2.2-24.el6.x86_64 #,即表示安装成功
6.安装好ftp之后,执行命令查看vsftpd服务是否在运行状态
systemctl status vsftpd.service 若是在运行 即可看到 actving
7.创建用户
1.# 创建ftp目标文件夹 mkdir /home/testFtp
2.chmod 755 /home/testFtp
3.# 创建用户 useradd -d /home/testFtp -s /sbin/nologin -g ftp -G root testUser
4.# 设置密码 我设置的是 Test@123 passwd testUser 密码可随意设置
5.# 更改用户testUser 的主目录为/home/testFtp 执行命令:usermod -d /home/testFtp testUser
6.# 上述命令参数解释如下 : #useradd 添加用户testUser
#-d 指定用户根目录为/home/testFtp
#-s 指定shell脚本为/sbin/nologin,表示不允许shell登录
#-g 创建分组ftp
#-G 指定root分组
8.配置vsftpd
1. 修改vsftpd配置文件 vi /etc/vsftpd/vsftpd.conf
找到一下内容修改成和我一样的:
anonymous_enable=NO
local_root=/home/testFtp
chroot_local_user=YES
chroot_list_enable=YES
# chroot_list文件中放的是限制目录的用户,防止里面的用户进入ftp目录以外的目录
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#下面自己加,上面的都有,仔细寻找和对比
userlist_deny=NO
allow_writeable_chroot=YES
2.编辑chroot_list文件
vi /etc/vsftpd/chroot_list#添加一行 就是你创建的用户名 有多个的话一行一个
# 我这里写是为了不限制 testUser只能访问指定目录,一般是要限制的也就是不需要写进这个文件
testUser
3.编辑user_list文件
vi /etc/vsftpd/user_list
#添加一行 就是你创建的用户名 有多个的话一行一个
testUser
4.修改另一个文件 (防止后面登陆出现 530 Login incorrect 错误)
cd /etc/pam.d/
vi vsftpd
# 把第四行 pam_shells.so 的改成下面这个
pam_nologin.so
5启停命令,每次修改vsftpd.conf都要重启
#启动
service vsftpd start 或 systemctl start vsftpd.service
#停止
service vsftpd stop 或 systemctl stop vsftpd.service
#重启
service vsftpd restart 或 systemctl restart vsftpd.service
9.Windows连接测试
-
win + R
输入cmd
- 输入
ftp
- 输入
open 192.168.209.129
(换成你的IP) - 输入用户名
testUser
- 输入密码
Test@123
- 看到
230 Login successful.
即为成功,之后便可以使用ftp工具连接了。 - 出现530 Login incorrect错误时,需要先确定用户名、密码、主机地址和端口是否正确,如果都正确,再检查本地是否开启了21端口
- 检查20 21端口服务器是否开启,查看开启端口firewall-cmd --list-all 开启20,21端口firewall-cmd --zone=public --add-port=20/tcp --permanent
- firewall-cmd --zone=public --add-port=20/tcp --permanent 然后重启防火墙 irewall-cmd --reload