Linux系统:CentOS下vsftpd的安装配置
一、安装vsftpd
1、检测是否已安装vsftpd:
安装系统时使用的镜像中可能会保留一些常用的应用,所以要先查看是否已安装,使用以下命令查看服务:
systemctl -a|grep vsftpd
如果如下图所示,说明还没有安装vsftpd:
2、安装vsftpd:
使用以下命令:
yum -y install vsftpd
二、修改配置文件
使用vi命令打开/etc/vsftpd/vsftpd.conf文件,找到配置项后主要修改如下,没有的项可以添加:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES listen_ipv6=NO
pam_service_name=vsftpd userlist_enable=NO userlist_deny=YES userlist_file=/etc/vsftpd/chroot_list tcp_wrappers=YES allow_writeable_chroot=YES
保存并退出。
注意这里配置文件一定要配置正确,不要乱动其他的地方,否则可能启动服务时可能就会出现以下错误:
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
三、启动服务
1、启动ftp服务:
systemctl start vsftpd.service
2、服务检测:
再次使用systemctl -a|grep vsftpd命令进行服务检测,此时结果如下:
3、将ftp服务设为开机启动:
systemctl enable vsftpd.service
4、查看开机自启是否已设置完成:
systemctl list-unit-files|grep vsftpd.service
enabled说明已完成设置。
四、查看防火墙端口是否打开
1、查看状态:
systemctl status firewalld
如下图,状态为dead,说明防火墙未开启。
2、启动防火墙:
systemctl start firewalld.service
使用命令开启后,再次查看状态,现在是running,则说明已经启动成功。
3、查看端口状态:
firewall-cmd --zone=public --query-port=21/tcp
结果如下:
no说明该端口未打开,需要打开该端口。
4、开启端口:
firewall-cmd --zone=public --add-port=21/tcp
success证明端口打开成功。
5、重载配置:
firewall-cmd --reload
success说明重载配置成功,每次添加规则之后要执行重载,让修改的规则生效。
6、将防火墙设为开机启动:
systemctl enable firewalld
五、设置权限
1、查看用户目录:
vi /etc/passwd
修改目录和权限,/bin/bash为可登录,/sbin/nologin为不允许登录系统。
2、设置目录权限:
chmod 777 -R /var/ftp/pub
3、设置ftp用户的登录密码:
passwd ftp
修改完成,可以传输文件进行测试。
六、测试ftp是否正常运行
1、连接服务器:
使用Xftp连接服务器,输入主机ip地址,协议为ftp,端口为开放的21端口,填写输入用户名ftp和设置的用户密码,在选项中取消勾选“使用被动模式”,进行连接:
连接成功,传输一个文件测试,结果如下: