环境:centos 7.0
一、安装软件
vsftpd - 服务器端
rpm -qa |grep vsftpd
yum -y install vsftpd
ftp 客户端登录ftp服务器 或者lftp
yum -y install ftp
二、启动服务
systemctl restart vsftpd
默认共享目录为 /var/ftp/pub
三、配置ftp
默认配置文件目录:/etc/vsftpd/
vsftpd.conf ——vsftpd的核心配置文件
ftpusers ——用户登陆黑名单
user_list ——用户登陆白名单:
userlist_deny=no只允许该文件下的用户登陆
userlist_deny=yes(默认)不允许该文件下的用户登陆
四、客户端登录
终端:ftp 172.20.100.161 -u ftpadmin
网页:
升级配置:
设置ftp权限 -禁止匿名登录
将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”
添加ftp账号
useradd ftpadmin -s /sbin/nologin –d 家目录(即该用户的共享目录) #创建本地禁止登录用户,如不存在需要创建并设置共享目录相应权限
如: chmod -R o+w /var/www/html/
passwd ftpadmin #修改用户密码
配置文件常用说明:
anonymous_enable=NO #允许匿名用户访问
anon_upload_enable=YES #允许匿名用户上传文件并可以创建目录
anon_mkdir_write_enable=YES
local_enable=YES # 允许本地用户登录
local_root=/var/www/html:设置本地用户的根目录为/var/www/html
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名 ,使用了chroot需建立/etc/vsftpd/chroot_list 文件,如添加team1 和team2 帐号
设置指定的用户执行chroot,按照如下方法进行设置:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。
在使用FTP服务的过程中,可以使该服务在非标准端口(非21端口)工作,不过要完成这项工作,须要使vsftpd服务器运行在独立启动方式下,而且要配置vsftpd的主配置文件/etc/vsftpd/vsftpd.conf,将listen_port=10003或者是其他端口号的选项加入该文件即可,然后要重新启动vsftpd守护进程
常见问题解决:
报错: vsftpd 530 login incorrect
1.密码错误。
2.检查/etc/vsftpd/vsftpd.conf配置
vim /etc/vsftpd/vsftpd.con
local_enable=YES
pam_service_name=vsftpd //这里重要,有人说ubuntu是pam_service_name=ftp,可以试试
userlist_enable=YES
3.检查/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
最后无论哪种情况 重启试试
sudo service vsftpd restart
基础命令
进入想要连接的FTP站点后,用户就可以进行相应的文件传输操作了,其中一些重要 的命令及相似的命令 如下:
1、HELP、、RHELP、REMOTEHELP
HELP显示LOCAL端的命令说明,若不接受则显示所有可用命令;
?相当于HELP,例如:?CD:
RHELP同HELP,只是它用来显示REMOTE端的命令说明;
REMOTEHELP相当于RHELP。
2、ASC(ASCll)、bin(BINARY)、IMAGE、TYPE
ASCⅡ切换传输模式为文字模式(只能用来传送DOC文件,因为是7-BIT);
BINARY切换传输模式为二进制模式(除文字文件外皆用此模式);
IMAGE相当于BINARY:
TYPE让你更改或显示传输模式。
3、BYE、QUIT
BYE退出FTP:
QUIT相当于BYE。
4、CD、CDUP、LCD、P~WD、 !
CD改变当前工作目录,例如:CDPUB;
CDUP回到上一层目录,相当于你打CD..:
LCD让你更改或显示LOCAL端的工作目录,例如:LCDTMP;
PWD显示的工作目录(REMOTE端):
!让你执行外壳命令,例如:!LS。
5、DELETE、MDELETE、RENAME
DELETE删除REMOTE端的文件:
MDELETE批量删除文件,需配合?或,*
RENAME更改REMOTE端的文件名。
6、GET、MGET、PUT、MPUT、RECV、SEND
GET下传文件;
MGET批量下传文件,需配合万用字元,例如:MGET*.GZ;
PUT上传文件;
MPUT批量上传文件,需配合万用字元;
RECV相当于GET(RECV为RECEIVE的简写):
SEND相当于PUT。
7、HASH、PROMPT、VERBOSE、STATUS、BELL
HASH切换#字号的出现,每一个#字号表示传送了1024/8192BYTES:
PROMPT切换iNTERACTⅣEON/OFF;
VERBOSE切换所有文件传输过程的显示;
STATUS显示的一些参数:
BELL当指令做完时会发出叫声。
8、LS、DIR、MLS、MDIR、MKDIR、RMDIR
LS有点像UNIX下的LS(LIST)命令:
DIR相当于LS-L(LIST-LONG);
MLS只是将远端某目 录下的文件存于LOCAL端的某文件里;
MDIR相当于MLS;
MKDIR像DOS下的MD(创建子目录)一样:
RMDIR像DOS下的RD(删除子目录)一样。
9、OPEN、CLOSE、DISCONNECT、USER
OPEN连接某个远端FTP服务器;
CLOSE关闭连接; DISCONNECT相当于CLOSE;
USER再输入一次用户名和口令(有点像UNⅨ下的SU)