root@www ~]# useradd -d /data/ftp_data -m ftp_user 创建ftp_user用户并制定家目录为/data/ftp_data,如果是录音服务器的话,把家目录设定为录音文件的地址如:/data/recordings/3030-f8a0-3d40-5f16/
[root@www ~]# passwd ftp_user 设置密码
密码为ftp123FTP
[root@www ~]# chown -R ftp_user:ftp_user /data/ftp_data/ 修改属主:属组
[root@www ~]# ll -ld /data/ftp_data/
drwx------ 3 ftp_user ftp_user 4096 10月 30 22:16 /data/ftp_data/
[root@www ~]# yum -y install vsftpd 安装vsftpd软件
[root@www ~]# cd /etc/vsftpd/
[root@www vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@www vsftpd]# cp vsftpd.conf vsftpd.conf.bak 备份配置文件
[root@www vsftpd]# vim vsftpd.conf
:% g/^#/d 删除注释行
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
use_localtime=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@www vsftpd]# /etc/init.d/vsftpd restart 重启服务
然后就可以测试了
在客户端ftp://192.168.80.3 跳出登陆界面,输入设置的账户ftp_user 密码:ftp123FTP 就可以登陆了,能创建文件也能上传下载
新增知识点一:
如果要想实现新增一个ftp账户,并且不同的ftp账户各自访问各自的家目录,只需要新增一个ftp账户,指定这个账户的家目录就可以实现了
以下为解释配置文件
anonymous_enable=NO //关闭匿名访问
local_enable=YES //打开本地账户登录
write_enable=YES //可写
local_umask=022 //本地用户上传的文件权限为755
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES //开启本地用户的家目录锁定
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES //启动监听
use_localtime=YES
pam_service_name=vsftpd //pam认证模块名
userlist_enable=YES //允许的用户清单打开
tcp_wrappers=YES
新增知识点二:
ftp传输有两种模式:主动模式和被动模式,默认使用的是20、21端口,21端口是用来建立连接的端口,20端口是模式的传输数据的端口,不管使用主动模式还是被动模式,建立连接的端口都使用的是21,传输数据时,主动和被动就有区别了
如果使用被动模式PASV,是服务器端打开了某一个或多个端口,等待客户端来连接传输数据,这时候,就需要服务器端,ftp配置文件中添加下面几行,把被动模式打开,并规定传输数据的端口段,如下图:
如果防火墙有限制,除了开通必须的21端口后,那么一定要放开50000-50010端口才可以
如果使用主动模式PORT,是客户端主动打开某一个和多个端口(这个是自动的,不用专门设置端口),服务端去主动连接客户端并传输数据,这时候,就需要客户端这边的电脑把防火墙关闭,就可以传输数据了,这种的服务端传输数据是一个随机的>1024的一个端口,防火墙要开通出去的不受限制才行,如果要限制,只能用被动模式