FTP协议分析

FTP协议分析

1、概述

FTP网络共享文件传输协议,FTP客户端程序与服务器创建链接,从而双方能够进行文件的传输,FTP使用两个端口分别用于传输命令和传输数据。web

1. 命令端口

命令端口主要负责FTP命令的发送,当客户端向服务器端发送命令时,服务器端会响应相关信息,其中的返回码主要是用于判断命令是否被成功执行了。shell

2. 数据端口

数据传输主要用于显示目录列表和上传下载文件,一般分为主动模式和被动模式服务器

  • 主动模式:客户端发送端口号N给服务器,并在N+1端口进行监听,服务端会使用数据端口(20)链接此端口进行文件的传输网络

  • 被动模式:开启FTP链接时客户端打开两个任意本地端口(N>1024和N+1),第一个端口用于链接服务器的21端口进行命令的传输。服务器会开启任意一个端口(P>1024),返回例如"227 entering passive mode (127,0 ,0,1, 20 ,28)"。此数字前四个表示服务器地址,倒数第二个数字乘256+最后一个数字,则为服务器开放的端口,此时客户端利用N+1端口来链接此端口来进行数据的传输svg

  • Windows cmd下默认为主动模式,更改ftp为被动的方法:
    ftp> quote PASV.net

  • Linux ftp命令下默认为被动模式,更改成主动的方法:
    ftp> passivexml

3. 主要FTP命令

USER:指定用户名blog

PASS:指定用户密码图片

SIZE:从服务器返回指定文件大小get

CWD:改变工做目录

PASV:进入被动模式,使服务器在数据端口监听

PORT:使服务器在数据端口监听,进入主动模式

RETR:下载文件

STOR:上传文件

QUIT:关闭与服务器的链接

2、实验过程

1. 实验环境

使用xShell链接服务器(Ubuntu)

2. 实验配置

  • 在Ubuntu中安装vsftpd来开启ftp服务:sudo apt-get install vsftpd
  • 具体Ubuntu中ftp的配置在此处很少赘述
  • 在xshell中创建ftp链接

在这里插入图片描述

3. 数据包分析

3.1 上传文件

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

3.2 下载文件

在这里插入图片描述
在这里插入图片描述

3、参考资料