1.1 FTP介绍

  • FTP是用来传送文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。
  • FTP是基于TCP传输的,所以数据在传输的过程中可靠性得到了保障,基于TCP20、21端口。

1.2 FTP的应用

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

1.3 FTP传输文件的过程

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

1.4 FTP传输模式

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

主动模式的FTP连接建立主要步骤:

  • 客户端打开一个随机的端口(端口号大于1024,在这里我们称它为X),同时一个FTP进程连接至服务器的21号端口。此时,源端口为随机端口X,在客户端,远程端口为21,在服务器端。
  • 客户端开始监听端口(X+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器现在客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。
  • 服务器打开20号端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(X+1)。
  • 客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

FTP的被动模式也叫做PASV模式,当客户端通知服务器它处于被动模式时才启用。被动模式的FTP连接中,控制连接和数据连接都是由客户端发起。
被动模式的FTP连接建立主要步骤:

  • 当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N>1024和N+1)。
  • 当一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口。而是提交PASV命令。
  • 这样做的结果是服务器会开启一个任意的非特权端口(P>1024),并发送PORT P命令给客户端。
  • 然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

image.png

  1. 客户端发起PASV请求
  2. 服务器回复Port端口 10,0,12,1是服务器地址 192x256+100是服务器端口号
  3. 客户端发起FTP第二信道的SYN请求连接

1.5 FTP配置

image.png
ftp server enable //打开FTP功能
set default ftp-directory flash: //设置FTP用户的默认工作目录
image.png
在配置FTP服务器时,可以使用AAA为每个用户分别配置登录账号和访问权限
image.png
ftp命令用来与远程FTP服务器建立控制连接,并进入FTP客户端视图。binary命令用来在设备作为FTP客户端时设置文件传输方式为Binary模式,又称二进制模式。缺省情况下,文件传输方式为ASCII模式。get命令用来从远程FTP服务器下载文件并保存在本地。