FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。
FTP协议包括两个组成部分,
其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,
用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。
在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。
此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
1.安装ftp服务
在centos7系统上
[root@lsx04-ftp ~]# yum install vsftpd -y
[root@lsx04-ftp ~]# rpm -qa |grep vsftpd //查询已安装的软件过滤出vsftpd的信息//
得到:
vsftpd-3.0.2-25.el7.x86_64
安装成功
2.开启VSFTPD
开启服务
[root@lsx04-ftp ~]# systemctl start vsftpd
查询21端口
[root@lsx04-ftp ~]# netstat -nultp | grep 21
此时可以通过ip地址访问服务器(需要防火墙开放21端口,已经配置文件允许匿名访问)
3.配置ftp权限
[root@lsx04-ftp ~]# vi /etc/vsftpd/vsftpd.conf
添加或修改成
# 禁用匿名用户 anonymous_enable=NO # 禁止切换根目录 chroot_local_user=YES # 设置FTP主目录 local_root=/data/ftp # 配置FTP被动模式的端口 pasv_min_port=30000 pasv_max_port=30000
重启vsftpd服务
4.创建FTP用户
在centos添加用户ftpuser
修改好密码后:
[root@lsx04-ftp ~]# usermod -s /sbin/nologin ftpuser //限制其登录
为用户配主目录
5.SElinux配置
VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件, vsftpd 默认被 SELinux 拦截
解决方法有两种:
方法1:
降低SElinux安全级别
vi /etc/sysconfig/selinux
设置SELINUX=enforcing改为SELINUX=permissive
重启vsftpd服务
方法2:
在linux中设置ftp允许访问
[root@lsx04-ftp ~]# getsebool -a | grep ftp
设置ftpd_full_access为on
[root@lsx04-ftp ~]# setsebool -P ftpd_full_access=on
重启vsftpd服务,即可正常访问FTP
备注:
[root@lsx04-ftp ~]# firewall-cmd --add-service=ftp --permanent //添加ftp服务到防火墙