vsftp

FTP--file transfer protcol文件传输协议
FTP是一种在互联网中进行文件传输的协议,基于C/S模式,默认服务端口号是20、21
20端口用于数据传输、21端口用于接收客户端的FTP命令与参数。

linux上的叫vsftpd(ver secure ftp daemon)

一、安装

1、安装vsftpd服务程序

# yum install vsftpd -y

#注意关闭防火墙规则
iptables -F

 1.1、vsftpd配置文件

   注意配置文件,不得有任何多余的空格!否则会重启失败

  #过滤出非注释行,非空行
  [root@linux ~]# grep -vE '^#|^$' /etc/vsftpd/vsftpd.conf
  anonymous_enable=YES  #是否开启匿名用户允许访问
  local_enable=YES    #是否允许本地用户登录FTP
  write_enable=YES    #write_enable=YES #全局设置,是否容许写入,开启允许上传的权限
  local_umask=022     #本地用户上传文件的umask
  dirmessage_enable=YES    #允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
  xferlog_enable=YES    #开启日志功能,以及存放路径
  xferlog_file=/var/log/vsftpd.log  #日志路径
  connect_from_port_20=YES    #使用20端口进行连接
  xferlog_std_format=YES    #标准日志格式
  listen=YES        #绑定到监听端口
  listen_ipv6=YES    #开启ipv6
  pam_service_name=vsftpd    #设置PAM的名称
  userlist_enable=YES    #设置用户已列表,允许或是禁止
  tcp_wrappers=YES    #控制主机访问,检查/etc/hosts.allow  hosts.deny的配置达到防火墙作用

2、安装ftp客户端

  ftp客户端有多种形式,图形化、命令行

  • 2.1  ftp命令客户端

ftp> ascii  # 设定以ASCII方式传送文件(缺省值) 
ftp> bell   # 每完成一次文件传送,报警提示. 
ftp> binary # 设定以二进制方式传送文件. 
ftp> bye    # 终止主机FTP进程,并退出FTP管理方式. 
ftp> case   # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. 
ftp> cd     # 同UNIX的CD命令. 
ftp> cdup   # 返回上一级目录. 
ftp> chmod  # 改变远端主机的文件权限. 
ftp> close  # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. 
ftp> delete # 删除远端主机中的文件. 
ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. 
ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中. 
ftp> help [command] # 输出命令的解释. 
ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. 
ftp> ls [remote-directory] [local-file] # 同DIR. 
ftp> macdef                 # 定义宏命令. 
ftp> mdelete [remote-files] # 删除一批文件. 
ftp> mget [remote-files]    # 从远端主机接收一批文件至本地主机. 
ftp> mkdir directory-name   # 在远端主机中建立目录. 
ftp> mput local-files # 将本地主机中一批文件传送至远端主机. 
ftp> open host [port] # 重新建立一个新的连接. 
ftp> prompt           # 交互提示模式. 
ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中. 
ftp> pwd  # 列出当前远端主机目录. 
ftp> quit # 同BYE. 
ftp> recv remote-file [local-file] # 同GET. 
ftp> rename [from] [to]     # 改变远端主机中的文件名. 
ftp> rmdir directory-name   # 删除远端主机中的目录. 
ftp> send local-file [remote-file] # 同PUT. 
ftp> status   # 显示当前FTP的状态. 
ftp> system   # 显示远端主机系统类型. 
ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机. 
ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
ftp> ! # 从 ftp 子系统退出到外壳。
  • 2.2 FileZilla图形化工具

  安装ftp命令行
  yum install ftp -y

二、vsftpd三种登录模式

vsftpd允许用户三种认证的模式登录到FTP服务器。

 

 

本地用户模式,基于Linux本地账号密码进行认证,配置简单,但是一旦被破解,服务器信息就很危险
匿名用户模式,任何人无需密码直接登录
虚拟用户模式,单独为FTP创建用户数据库,基于口令验证账户信息,只适用于FTP,不会影响其他用户信息,最为安全。


1. 连接ftp服务器
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:
ftp 192.168.1.1
b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。

2. 下载文件

下载文件通常用get和mget这两条命令。
a) get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中。
如要获取远程服务器上/usr/your/1.htm,
ftp> get /usr/your/1.htm 1.htm (回车)

b) mget      
格式:mget [remote-files]
从远端主机接收一批文件至本地主机。
如要获取服务器上/usr/your/下的所有文件,则

ftp> cd /usr/your/
ftp> mget *.* (回车)

此时每下载一个文件,都会有提示。如果要除掉提示,则在mget *.* 命令前先执行:prompt off

注意:文件都下载到了linux主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则文件都下载到了/usr/my下。

3.上传文件

a) put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中。
如要把本地的1.htm传送到远端主机/usr/your,并改名为2.htm

ftp> put 1.htm /usr/your/2.htm (回车)

b) mput
格式:mput local-files
将本地主机中一批文件传送至远端主机。
如要把本地当前目录下所有html文件上传到服务器/usr/your/ 下

ftp> cd /usr/your (回车)
ftp> mput *.htm (回车)

注意:上传文件都来自于主机的当前目录下。比如,在 /usr/my下运行的ftp命令,则只有在/usr/my下的文件linux才会上传到服务器/usr/your 下。

4. 断开连接
bye:中断与服务器的连接。

ftp> bye (回车)

上一篇:【Vue】Vue2.0+Vue3.0学习笔记day11(Vuex)


下一篇:关于ftp的主动模式(Active Mode)和被动模式(Passive Mode)