1 前言

vsftpd是一款非常小巧、高性能、稳定性好、安全易用的Linuxt环境下的的FTP服务器软件。
vsftpd 名称是取自 very secure FTP daemon 的缩写,可以在类UNIX类操作系统上运行。

2 部署

通常情况下可以在线安装,

# centos / Redhat 操作系统下
$  yum -y install vsftpd

# debian / ubuntu 操作系统下
$ apt-get install vsftpd

安装完后,可以用rpm命令检查是否安装成功

rpm -qa | grep vsftpd

3 启动运行

启动服务

systemctl start vsftpd

设置自启动

chkconfig --level 35 vsftpd on

查看是否设置成功

chkconfig --list vsftpd

4 服务配置

vsftpd服务器主要有三个配置文件,都位于/etc/vsftpd目录下:
#ftp服务器的主配置文件
vsftpd.conf
#用来指定哪些用户不能访问ftp服务器
ftpusers
#当启用非匿名登录时,会使用到这个文件,这个文件中的用户是否可以登录到服务器,取决于vsftpd.conf文件中的userlist_enable和userlist_deny这两个选项
user_list

4.1 使用匿名用户登入

打开vsftpd.conf

# vi /etc/vsftpd/vsftp.conf

设置以下配置参数,通常大部分参数默认是有的,将前面的’#'去掉就可以,未在下面的参数保持原样即可

###匿名者登入的设定值###
#设定为允许 anonymous 登入我们的 vsftpd 主机!预设是 YES ,不允许匿名则设置为NO, 底下的所有相关设定都需要将这个设定为 anonymous_enable=YES 之后才会生效!
anonymous_enable=YES
# 如果你允许用户上传数据时,就要启动这个设定值
write_enable=YES
##限制 anonymous 的权限!如果是 077 则 anonymous 传送过来的文件 权限会是 -rw-------
anon_umask=077
#是否让 anonymous 具有上传数据的功能,默认是 NO
anon_upload_enable=YES
#是否让 anonymous 具有建立目录的权限?默认值是 NO
anon_mkdir_write_enable=YES
#允许修改或删除文件,预设是 NO,设定为 YES, 那么开放给 anonymous 写入的目录亦需要调整权限,让 vsftpd 的 PID 拥有者可以写入才行
anon_other_write_enable=YES
##仅允许 anonymous 具有下载可读文件的权限,预设是 YES
anon_world_readable_only=NO
#这个设定值后面接的数值单位为 bytes/秒 ,限制 anonymous 的传输速度,如果是 0 则不限制(由最大带宽所限制),如果您想让 anonymous 仅有 30 KB/s 的速度,可以设定『anon_max_rate=30000』
anon_max_rate=0
# anonymous 允许访问的根目录,如未设置,则是默认的目录/var/ftp
anon_root=/home/vsftpd
tcp_wrappers=YES

pam_service_name=vsftpd

修改完成后,重启一下vsftpd服务就可以生效:

systemctl restart vsftpd

匿名登录,实际使用的是ftp这个默认的用户,在/etc/passwd用户表中,可以查看到ftp的默认home目录是/var/ftp,如果显示配置了anon_root值,那也要修改一下/etc/passwd中的home目录配置,两者需要保持一样~

访问方法
window下可以直接在电脑的资源地址栏输入ftp地址:
ftp://ip地址

4.2 使用操作系统的本地用户登入

需要新建一个用户

#新建一个系统用户vsftpd, 用户登录终端设为/bin/false(使之不能远程登录操作系统)
useradd vsftpd -d /home/vsftpd -s /bin/false

修改配置文件

anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=077
#关闭匿名上传
anon_upload_enable=NO
anon_mkdir_write_enable=NO

#限制用户只能访问自己的主目录,存在chroot_list文件中的用户只能访问自己的主目录,登录后自动跳转至用户的home目录
chroot_local_user=YES
#是否启用将访问用户限制在他们的家目录内?预设是 NO
chroot_list_enable=YES
#chroot_list_enable=YES 一行一个用户名,需要在配置中的文件中加一下vsftpd用户名
chroot_list_file=/etc/vsftpd/chroot_list

#允许某些用户登入
userlist_enable=YES
#NO,代表只能存在user_list文件中的用户允许登入;YES ,代表仅存在user_list文件中的用户不允许登入
userlist_deny=NO  
#需要在配置中的文件中加一下vsftpd用户名
userlist_file=/etc/vsftpd/user_list

pam_service_name=vsftpd

修改完成后,同样需要重启一下vsftpd服务就可以生效:

systemctl restart vsftpd

访问方法

window下可以直接在电脑的资源地址栏输入ftp地址:

ftp://ip地址

如果没有主动弹出以下这个登录身份输入框,则可以鼠标右键->登录 来打开

centos ftp 中文文件乱码 centos ftp工具_centos ftp 中文文件乱码


当然,你也可以用专门的FTP client 工具来访问

4.3 使用虚拟用户登入

由于使用操作系统用户登录,容易暴露操作系统的用户,所以有这一配置选择。实际 中暂未应用过,待后续补充。