CentOS 使用vsftpd搭建FTP服务器

Posted by ivo Blog on March 5, 2015

一切为了方便,我们在这里使用简单的vsftpd软件来搭建。首先,用root账户登录SSH,执行:

yum install vsftpd

然后,我们新建一个系统用户,这个用户可以进行ftp的上传和下载。执行:
useradd ftpuser
passwd ftpuser

接着我们来进行配置。编辑文件/etc/vsftpd/vsftpd.conf
将配置相关条目做如下修改:
chroot_list_enable=NO
anonymous_enable=NO
添加一行:
local_root=/home/ivo/share/data,其中/data是你设置的默认目录,可以自行修改。

还有一些端口也要加上
pasv_enable=YES

pasv_min_port=3000

pasv_max_port=3005

###添加ftp用户

给ftpuser这个目录指定home目录
sudo useradd -d /home/ivo/share -M ftpuser
 sudo passwd ftpuser

###调整文件夹权限

这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”
sudo chmod a-w /home/ivo/share
sudo mkdir /home/ivo/share/data
这样登录之后会看到data文件夹,虽然稍麻烦,原因不表了。。查资料这么辛酸已经不易。。(实践表明/home/ivo/share 这是ftp根目录,下面必须有文件夹才能上传东西。建什么都可以,我的share下面已经有了文件夹了就不再建立了)

###防火墙iptables

-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp--dport 3000:3005 -j ACCEPT

service iptables restart重启防火墙

最后执行service vsftpd start,就可以使用之前设置的用户名和密码ftp服务器了。

如果发现不能上传文件的问题,可以在SSH中执行: chmod -R 777 /home/ivo/share/data

当然,ftp上传完毕之后需要把权限改回来,否则是不安全的。

ftp://157.x.x.x连接即可 如果需要实现其他功能,可以再自行更改配置文件,这里就不赘述了。