Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决

时间:2022-07-18 20:14:50

Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决

最近利用Linux搭建服务器

搭建FTP的时候决定使用VSFTP搭建,结果却出现了无法正常连接与无法上传文件等诸多问题

经过许久的努力,终于让VSFTP正常运行了

下面一一给出我的解决方案

1、关闭防火墙

使用yum安装好vsftp并配置完成启动后,我竟然发现本地连接FTP时完全收不到回应

就连欢迎信息也没有,这是非常不寻常的状况

经检查VSFTP配置文件正确,程序也正常运行

于是我怀疑到防火墙

 
1
service iptables stop

运行上面的命令临时关闭防火墙后,可以正常收到系统发送的欢迎信息了

2、设置权限

我使用的是一个名叫SCKA的账户连接FTP,可是我却收到了下面的反馈信息

500 OOPS: cannot change directory:/home/SCKA
 

从报错信息上看,应该是切换到主目录/home/SCKA时出现了错误,于是我尝试执行下面的命令

 
1
chmod 777 /home/SCKA/

如此操作后本应解决问题,可是仍旧收到报错信息

3、设置sebool

我突然想到我使用的Linux默认开启了sebool,会不会是被它阻止了连接?

于是运行下面的命令,获取sebool关于FTP的所有设定

 
1
getsebool -a|grep ftp

果然发现了一些问题

Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决

根据回馈来看似乎关于FTP的很多设置都处于off状态,我特别注意了下其中的ftp_home_dir,似乎和我刚刚出现的问题有关

于是尝试运行下面的命令解决

 
1
setsebool ftp_home_dir 1

Centos 6.4下使用VSFTPD无法正常连接与无法上传文件的问题解决

重新启动VSFTPD,然后再重新连接FTP,果然成功返回了主目录!

不过这样设定后重启就会失效,我们需要进行永久的设置

 
1
setsebool -P ftp_home_dir 1

4、进一步解决无法上传文件问题

连接上FTP后我再次尝试上传文件,可是再次接到报错信息,无权限

首先想到权限问题,运行chmod 777 目录名 后问题却依旧

突然想到刚刚sebool里面还有几个选项是off

 
1
2
3
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1

用上面的命令把它们全部打开,然后重新连接了FTP,问题完美解决