首先判断你服务器上是否安装了vsftpd
[root@centos64 vsftpd]# rpm -q vsftpd
安装vsftpd
[root@centos64 vsftpd]# yum -y install vsftpd
到vsftpd的主配置文件里面修改
[root@centos64 vsftpd]# vi vsftpd.conf
不准匿名登录
anonymous_enable=NO
不可以让ftp用户跳出自己的家目录,否则太危险了,需要做限制
chroot_local_user=YES
默认是注释掉的,把#号去掉 然后重启vsftpd
在文件尾部增加以下配置,为了让ftp能在被动模式下传输数据
pasv_enable=YES //开启PASV模式
pasv_min_port=40000 //最小端口号
pasv_max_port=40080 //最大端口号
pasv_promiscuous=YES
创建ftp用户
[root@centos64 vsftpd]# useradd -s /sbin/nologin -d /var/www/html huanglu
给yuanfei这个用户设置密码
[root@centos64 vsftpd]# passwd huanglu
然后给家目录修改权限,否则你无法上传文件
[root@centos64 vsftpd]# chmod -R 777 /var/www/html
修改selinux,先查找它的位置
[root@centos64 vsftpd]# find / -name 'selinux'
/usr/include/selinux
/usr/share/selinux
/selinux
/etc/sysconfig/selinux
/etc/selinux
由此可知在/etc/selinux目录下,进入配置文件
[root@centos64 vsftpd]# vi /etc/selinux/config
修改
SELINUX=disabled
默认是enforcing 把他修改为disabled
因为修改selinu后需要重启服务,因为服务器不可以重启所以执行下面这个命令,临时修改selinux的策略,无需重启!
[root@centos64 vsftpd]# setenforce 0
重启vsftpd服务,并且下次自动启动
[root@centos64 vsftpd]# service vsftpd restart
关闭 vsftpd: [确定]
为 vsftpd 启动 vsftpd: [确定]
[root@centos64 vsftpd]# chkconfig vsftpd on
配置防火墙,开发端口21和 40000~40080端口
[root@centos64 vsftpd]# vi /etc/sysconfig/iptables
添加以下几条规则
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m multiport --dports 40000:40080 -j ACCEPT
保存退出后重启防火墙
[root@centos64 vsftpd]# service iptables restart
查看以下防火墙状态,看是否开放了相应的端口号
[root@centos64 vsftpd]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 40000:40080
说明已经开发了,这样就可以连接ftp了,使用账号和密码登陆经过测试可用
用ftp上传下载文件时经常会遇到超时断开的情况,可以把超时调长一点就不会经常断开了
[root@centos64 vsftpd]# vi vsftpd.conf
data_connection_timeout=600
默认是注释掉的
然后重启ftp服务器就可以了
[root@centos64 vsftpd]# service vsftpd restart