一、通过yum安装vsftpd
yum install -y vsftpd
二、修改vsftpd的配置文件
vi /etc/vsftpd/vsftpd.conf
修改配置文件如下:
1.不允许匿名访问
anonymous_enable=NO
2.允许使用本地帐户进行FTP用户登录验证
local_enable=YES
3.使用户不能离开主目录
当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
配置文件最后添加
allow_writeable_chroot=YES
要不然会报错
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
如果/etc/vsftpd/chroot_list
不存在,则需要创建该文件
vi /etc/vsftpd/chroot_list
:wq
直接保存并退出就行。
4.设定支持ASCII模式的上传和下载功能。
ascii_upload_enable=YES
ascii_download_enable=YES
最后 :wq
保存修改,重启vsftpd
systemctl restart vsftpd.servic
此时我们还是连接不上ftp,我们去配置下防火墙就好了。因为防火墙没配置FTP端口号规则。
firewall-cmd --zone=public --add-port=21/tcp --permanent
Centos7默认安装了firewalld,如果没有安装的话,则需要YUM命令安装;firewalld真的用不习惯,与之前的iptable防火墙区别太大,
但毕竟是未来主流讲究慢慢磨合它的设置规则;
Firewall开启常见端口命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
Firewall关闭常见端口命令:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-port=21/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent
开启防火墙命令:
systemctl start firewalld.service
重启防火墙命令:
firewall-cmd --reload 或者 service firewalld restart
默认情况下vsftp是不允许root用户登录的,可以通过修改限制来解决这个问题。
此时我们进到ftpusers和user_list里面 将root用户注释掉就可以用root登陆ftp。
我们通过xftp这个工具连上centos时 xftp会提示无法显示centos文件
此时的解决办法是:
使用sftp协议登陆