通常情况下,向服务器上传代码、文件,vsftp用的还是比较多的。下面是本人安装配置的过程。
安装步骤
1.通过yum来安装vsftpd
[root@localhost ~]# yum -y install vsftpd
2.设置为开机启动
[root@localhost ~]# chkconfig vsftpd on
3修改配置文件
[root@localhost ~]#mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak
[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf
把下面几行注释去掉,或者加上,让其配置生效:
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
4.配置保存后重启vsftpd服务:
[root@localhost ~]# service vsftpd restart
使root用户可登陆FTP
(默认root等不可直接登陆,530Permission denied解决方法)
1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。
2.查看配置
vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
[root@localhost ~]# vi /etc/vsftpd/ftpusers
vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
[root@localhost ~]# vi /etc/vsftpd/user_list
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
3.配置修改完成后,执行service vsftpd restart重启vsftpd服务。
添加用户及额外配置
1.设置vsftp的帐号。
[root@localhost ~]# useradd -d /home/htdocs -s /sbin/nologin 用户名
2.为添加的账号设置密码
[root@localhost ~]# passwd 用户名
根据提示操作
这样的话,基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。
1.添加ip_conntrack_ftp 模块
[root@localhost ~]# vi /etc/sysconfig/iptables-config
添加下面一行
IPTABLES_MODULES="ip_conntrack_ftp"
2.打开21端口
[root@localhost ~]# vi /etc/sysconfig/iptables
添加
#-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
3.重启iptables使新的规则生效
[root@localhost ~]# service iptables restart
到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查
[root@localhost ~]#getsebool -a |grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
allow_tftp_anon_write --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_disable_trans --> off
ftpd_is_daemon --> on
httpd_enable_ftp_server --> off
这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。
[root@localhost ~]#setsebool -P ftp_home_dir 1
[root@localhost ~]#setsebool -P allow_ftpd_full_access 1
到此,应该解决问题了。可以试试FTP功能是否正常了。