Linux环境ftp搭建及问题总结

     环境: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)

原文地址:https://www.cnblogs.com/leo001/p/10353708.html