5.2_FTP原理与配置

FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。

学习目标:
1. 掌握FTP的工作原理
2. 掌握FTP的基本配置

FTP的应用


在企业网络中部署一台FTP服务器,将网络设备配置为FTP客户端,则可以使用FTP来备份或更新VRP文件和配置文件。也可以把网络设备配置为FTP服务器,将设备的日志文件保存到某台主机上方便查看。

FTP传输文件的过程


使用FTP进行文件传输时,会使用两个TCP连接。第一个连接是FTP客户端和FTP服务器间的控制连接。FTP服务器开启21号端口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立连接的请求。控制连接用于在服务器和客户端之间传输控制命令。
第二个连接是FTP客户端和FTP服务器间的数据连接。服务器使用TCP的20号端口与客户端建立数据连接。通常情况下,服务器主动建立或中断数据连接。

FTP的主动模式和被动模式

  1. PORT(主动模式)
    PORT中文称为主动模式,工作的原理: FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:
  2. PASV(被动模式)
    PASV是Passive的缩写,中文为被动模式,工作原理:FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

    两种模式的比较
    从上面的运行原来看到,主动模式和被动模式的不同简单概述为: 主动模式传送数据时是“服务器”连接到“客户端”的端口;被动模式传送数据是“客户端”连接到“服务器”的端口。
    主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难。
    被动模式只需要服务器端开放端口给客户端连接就行了。

FTP传输模式


FTP传输数据时支持两种传输模式:ASCII模式和二进制模式。
ASCII模式用于传输文本。发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。二进制模式常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式,即可传输。

FTP配置


ARG3系列路由器和X7系列交换机均可提供FTP功能。
执行ftp server enable命令使能FTP功能。
执行set default ftp-directory命令设置FTP用户的默认工作目录。


在配置FTP服务器时,可以使用AAA为每个用户分别配置登录账号和访 问权限。
aaa命令用来进入AAA视图。
local-user user-name { access-limit max-number | ftp- directory directory | idle-timeout minutes [ seconds ] | password cipher password [ opt ] | privilege level level | state {active | block } } *命令用来创建本地用户 ,并配置本地用户的各项参数。
user-name指定用户名。
local-user huawei service-type ftp命令用来配置本地用户的接入类型
为ftp。
ftp-directory指定FTP用户可访问的目录。如果不配置FTP用户可访问
的目录,则FTP用户无法登录设备。
access-limit指定用户名可建立的最大连接数目。
idle-timeout指定用户的闲置超时时间。
privilege level指定用户的优先级。


ftp命令用来不远程FTP服务器建立控制连接,并进入FTP客户端视图。
binary命令用来在设备作为FTP客户端时设置文件传输方式为Binary模
式,又称二进制模式。 缺省情况下,文件传输方式为ASCII模式。
get命令用来从远程FTP服务器下载文件并保存在本地。

总结

  1. FTP服务默认使用服务器哪些端口?
  2. 用户反馈没有权限去访问FTP服务器上的目录,应该如何解决?
    答:
  3. FTP服务器需要开启TCP的21号端口来建立控制连接,20号端口来建立数据连接。
  4. 如果用户无权访问任何工作目录,则需要定义一个默认的FTP目录。 执行set default ftp-directory 命令建立默认 目录。