vsftpd安装配置以及常见问题解决
vsftpd安装配置以及踩坑解决办法,Centos7
nginx已经配置成功了,但是使用http始终没办法访问到图片,那么你来对地方了(在文章末尾是原因)
配置nginx教程:http://blog.csdn.net/xianzhixianzhixian/article/details/78891657
进入正题,安装配置vsftpd开始
1、安装vsftpd:安装完成之后会有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件
# yum -y install vsftpd
2、添加ftp用户:一个用户建完,可以用这个登录;记得用普通登录不要用匿名了,登录后默认的路径为 /home/ftpuser.
# useradd ftpuser
3、设置ftpuser的密码
# passwd ftpuser
4、为用户分配主目录
用以下命令创建,但是该目录不能上传文件
mkdir -p /home/ftp/pub
创建欢迎文件
echo "Welcome to use FTP service." > /home/ftp/welcome.txt
设置访问权限
chmod a-w /home/ftp && chmod 777 -R /home/ftp/pub
设置为用户主目录
usermod -d /home/ftp ftpuser
4、iptables开启端口21:ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
修改完毕之后按下esc,然后输入 :wq 回车,重启服务
# vim /etc/sysconfig/iptables
# service iptables restart
如图:
5、修改 selinux:外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问)也上传不了,因为selinux作怪了
执行以下命令查看状态:
# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
# setsebool -P allow_ftpd_full_access on
# setsebool -P ftp_home_dir on
6、关闭匿名访问:将anonymous_enable=YES改为anonymous_enable=NO
修改完毕之后按下esc,然后输入 :wq 回车,重启服务
# vim /etc/vsftpd/vsftpd.conf
# service vsftpd restart
7、 开启被动模式
# vim /etc/vsftpd/vsftpd.conf
在文件末尾加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改,改完重启一下vsftpd
# service vsftpd restart
由于指定这段端口范围,iptables也要相应的开启这个范围
# vim /etc/sysconfig/iptables
修改完毕后重启iptables
# service iptables restart
8、修改nginx配置文件,不修改的话不能用http前缀访问到图片
在这里需要注意两点
a、/home/ftpuser的所有者为ftpuser,如果不是如图所是的话,用chown和chgrp改为ftpuser;权限文件拥有者为7,用户组和其他用户要有读权限
b、最重要的一步:nginx文件的配置,我的图片是放在/home/ftpuser/images/,所以我在nginx中的配置如图;这样配置了之后应该就可以用http前缀访问图片了
# vim /usr/local/nginx/conf/nginx.conf
重新加载服务
# cd /usr/local/nginx/sbin
# ./nginx -s reload