最近折腾LNMP环境,使用sftp链接速度太不理想了,打算添加一个FTP账户,虽然可以安装PureFTPd管理面板,但是我需要的只是一个 FTP账号,没必要安装这个,所以打算安装vsftpd组件来配置FTP。方法都是从网上搜索来的,也不知道谁的原创,结合自己的需要整理出来备查。

1、查看是否安装了 vsftpd

rpm -qa | grep vsftpd

2、CentOS系统使用yum方式安装 vsftpd

yum install vsftpd

3、安装完成后,设置开始自动启动

chkconfig vsftpd on
service vsftpd start

4、查看ftp端口是否在侦听了

netstat –tl

5、配置vsftpd

vsftpd的配置文件有三个,分别是
/etc/vsftpd/vsftpd.conf
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
其中,/etc/vsftpd/vsftpd.conf是主配置文件。
/etc/vsftpd.ftpusers中指定了哪些用户不能访问FTP服务器。
/etc/vsftpd.user_list中指定的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器,当在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=NO时,仅仅允许/etc/vsftpd.user_list中指定的用户访问FTP服务器。

/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#设置不能登陆FTP的用户

配置:vi /etc/vsftpd/vsftpd.conf

将anonymous_enable=YES 改为

anonymous_enable=NO //不允许匿名用户访问

在下面添加一行:

chroot_local_user=YES

表示把FTP用户都限制在你设置的目录中

6、设置FTP目录

mkdir /home/ftproot //创建FTP目录

chmod -R 777 /home/ftproot //递归地给此目录下所有文件和子目录的读、写、执行权限

chgrp -R ftp /home/ftproot //递归地把此目录及该目录下所有文件和子目录的组属性设置成ftp组

注:如果在ftp用户的主目录中的子目录无法进行上传、删除等操作,需要重新使用 chmod 命令授权,比如
chmod -R 777 /home/ftproot/子目录

7、增加FTP用户

adduser -d /home/ftproot -g ftp -s /sbin/nologin user

增加用户,组是FTP,目录是/home/ftproot (注意将user 改为你要设置的用户名,下同),为FTP用户设定密码

passwd user

输入两次密码

8、重启vsftpd

service vsftpd restart

9、FTP用户管理

userdel 选项 用户名 #删除用户。

常用的选项是-r,它的作用是把用户的主目录一起删除。

例如: userdel –r cmhello 表示删除cmhello这个ftp用户,同时删除cmhello上传的主目录

passwd 选项 用户名 #修改口令

passwd -l 用户名 锁定口令,即禁用账号。

passwd -u 用户名 口令解锁。

passwd -d 用户名 使账号无口令。

passwd -f 用户名 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

如果是超级用户,可以用下列形式指定任何用户的口令:

passwd 用户名

passwd -d 用户名 此命令将用户的口令删除,这样用户下一次登录时,系统就不再询问口令

10、修改默认21端口

先修改防火墙,增加其FTP端口,下面使用211。编辑防火墙文件:

vi /etc/sysconfig/iptables

如果你按照前面配置过防火墙,应该可以看到类似下面的代码(部分):

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

添加一行:

iptables -A INPUT -p tcp --dport 211 -j ACCEPT

或将上面第三行中 21 改为 211 (FTP默认端口是21),保存后重启防火墙

service iptables restart

在FTP配置文件添加监听端口211

vi /etc/vsftpd/vsftpd.conf
增加
listen_port=211
pasv_min_port=211
pasv_max_port=299

编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为,ftp 211/tcp,ftp 21/udp改为 ftp 211/udp

保存后重启FTP服务

service vsftpd restart

查看端口是否正常启动

netstat -an | grep 211

现在你已将FTP端口设置为211,填写ftp信息时,默认是21端口,你要改为211