FTP协议分析(主动模式和被动模式)

FTP协议概述和工作原理 FTP概述 文件传送协议FTP(File Transfer Protocol)【RFC 959】 FTP提供的是交互式的访问,允许客户指明文件类型和格式(比如说指明是否用ascii 码),并允许文件具有存取权限(比如访问文件的用户必须输入相应的password)。 FTP屏蔽了计算机系统的细节,所以适合在异构网络中任意计算机之间传送文件。 在很早以前多数数据都是靠FTP传送的,直到1995年www的通信量才超过了FTP。 基于TCP的FTP和基于UDP的TFTP都是文件共享协议中的一大类,即复制整个文件 阅读详情

 今天本来计划分析下suricata中协议识别和解析的代码的,准备先从ftp协议开始看,不过看了一会儿代码后,还是觉得有必要对ftp协议的细节先熟悉熟悉。

目录

1、FTP环境搭建工具

2、FTP协议介绍

3、FTP文件操作命令列表

4、FTP请求码列表

5、FTP响应码列表

6、FTP两种工作模式

6.1 FTP主动模式流程

6.1.1 IPv4主动模式报文交互流程

6.1.2 IPv6主动模式报文交互流程

6.2 FTP被动模式流程

6.2.1 IPv4被动模式报文交互流程

6.2.2 IPv6被动模式报文交互流程


1、FTP环境搭建工具

1)FTP客户端:

  • Windows系统:FlashFXP 或者 浏览器 或者 文件管理器

  • Linux系统:ftp命令

2)FTP服务器:

  • Windows系统:  FileZilla Server 或者 3CDaemon(不支持IPv6)或者 自带的IIS

  • Linux系统:vsftpd

本篇文章,我的FTP客户端和服务器都是在windows系统上。

2、FTP协议介绍

 FTP协议(File Transfer Protocol,文件传输协议)是一种用于计算机之间传输文件的标准网络协议。它允许用户在不同的计算机之间进行文件传输和共享。通过FTP协议,用户可以通过网络连接到远程计算机上的FTP服务器,并进行文件上传、下载和管理。

FTP协议的功能非常简单,它不仅可以支持不同平台之间的文件传输,而且还支持多用户和多任务处理。FTP客户端和FTP服务器分别作为不同的实体进行交互。FTP客户端掌握了可以在一个远程服务器上实现的文件系统,而FTP服务器则允许用户上传、下载、删除和修改文件。FTP协议主要有两种模式:主动模式和被动模式。主动模式中,客户端向服务器发送命令,并侦听服务器发送的数据连接。被动模式中,服务器向客户端发送端口号,并侦听客户端连接的数据。FTP协议默认使用TCP协议传输,其控制连接是通过TCP的21端口,数据连接则是通过TCP的20端口。

需要注意的是,FTP协议并没有对数据进行加密处理,因此在数据传输过程中存在安全问题。有一些扩展了FTP协议的协议(比如Secure File Transfer Protocol、SSH File Transfer Protocol等),则包含了加密处理来保证数据的安全传输。

3、FTP文件操作命令列表

序号

命令

 说明

1

 ls

 显示服务器上的目录

2

 get

从服务器下载指定文件到客户端

3

 put

 从客户端传送指定文件到服务器

4

 open

 连接ftp服务器

5

 quit

 断开连接并退出ftp服务器

6

 cd directory

 改变服务器的当前目录为directory

7

 lcd directory

 改变本地的当前目录为directory

8

 bye

 退出ftp命令状态

9

 ascii

 设置文件传输方式为ASCII模式

10

 binary

 设置文件传输方式为二进制模式

11

 !

 执行本地主机命令

12

 cd

 切换远端ftp服务器上的目录

13

 cdup

 上一层目录

14

 close

 在不结束ftp进程的情况下,关闭与ftp服务器的连接

15

 delete

 删除远端ftp服务器上的文件

16

 get

 下载

17

 hash

 显示#表示下载进度

18

 mdelete

 删除文件,模糊匹配

19

 mget

 下载文件,模糊匹配

20

 mput

 上传文件,模糊匹配

21

 mkdir

 在远端ftp服务器上,建立文件夹

22

 newer

FTP协议简介 1. FTP协议概述 FTP协议的英文全称为File Transfer Protocol, 简称为FTP, 它是从一个主机向一个主机传输文件的协议。 FTP协议中客户端和服务器进行文件交互的方式如下图1所示,FTP客户端包含两部分:用户接口和客户端接口。 用户接口用来和用户进行人机交互,而客户端接口则负责FTP协议相关的处理。 2. FTP协议交互步骤 例如一个用户想把远程FTP服务器上的某个文... 阅读详情

相关推荐

FTP服务详解

当需要传送数据时,客户端开始监听端口N+1,并在命令链路上用PORT命令发送N+1端口到FTP服务器,于是服务器会从自己的数据端口(20)向客户端指定的数据端口(N+1)发送连接请求,建立一条数据链路来传送数据。(FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)并且 通知客户端在此端口上传送数据的请求,客户端连接服务器此端口然后FTP将通过这个端口进行数据的传送,这个时候FTP服务器不在需要建立一个新的和客户端直接爱你的连接。连接前会先进行三次握手。

杰儿__er 的博客 6478

FTP协议的Wireshark抓包分析

文章目录1.理论介绍2.ftp安装3.windows上连接ftp服务器3.1.通过浏览器访问3.2.通过资源管理器访问3.3.通过命令行进行访问(本次采用方式,使用主动模式连接)4.Wireshark抓包ftp分析4.1Wireshark抓包4.2抓包分析 环境配置: Ubuntu虚拟机(服务器):192.168.153.132 win7实体机(客户端):192.168.153.1 1.理论介绍 FTP是FileTransfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于In

weixin_43708235的博客 1万+

[wireshark]ftp恶意流量分析

ftp流量分析 先回顾下ftp协议,ftp协议用两个端口实现,分别是数据端口和命令端口。命令端口用于连接,数据端口用于传输数据。 命令端口一般都是21。而数据端口会变动。 这里又引入了主动模式(PORT)和被动模式(PASV)的概念。当客户端通知服务器它处于被动模式时才会启用,其标志就是客户端给服务端发送了一 个PASV 主动模式 在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"

qq_37301470的博客 2834

wieshark导出ftp文件_wireshark抓包分析之FTP协议分析

转载自网络今天刚刚申请了一个虚拟主机,上传数据成为问题,Google一下,呵呵哒,看到了flashfxp这个软件,这个叫什么鬼东西,原谅小客的英语烂到了极点,下载安装后,最近正好对协议分析很是感兴趣呀,于是,就有了今天这篇处女座的文章,呵呵,个人总是爱说些废话,好吧,如果你也这么觉得的话,那咱们就进入正题吧!wireshark 抓包分析协议 FTP协议的数据包分析与总结本文主要是针对在wiresh...

weixin_39644915的博客 1364

告别复杂配置:利用原生DDNS实现IPv6直连群晖的极简指南

本文详细介绍了如何利用原生DDNS实现IPv6直连群晖NAS的极简方法,告别复杂配置。从检查IPv6网络环境、路由器防火墙设置到群晖DDNS配置,一步步指导用户完成设置,并分享移动网络下的使用体验和安全防护建议,帮助用户轻松实现远程访问。

weixin_30918633的博客 414

Win11下Python脚本不执行?5分钟搞定PATH环境变量配置(VSCode终端实测)

本文针对Win11系统下VSCode终端中Python脚本执行无响应的问题,提供了详细的诊断与解决方案。核心在于正确配置PATH环境变量,通过图形化界面调整Python路径优先级,并分享了VSCode终端环境变量的刷新技巧,帮助开发者在5分钟内快速解决环境配置难题。

weixin_28358083的博客 384

STM32C8T6实战:用PID算法搞定超级电容的10W无线恒功率充电(附代码避坑)

本文详细介绍了如何使用STM32C8T6和PID算法实现超级电容的10W无线恒功率充电。通过优化硬件设计、动态调整PID参数以及三重滤波技术,解决了超级电容充电过程中的功率尖峰和效率问题。附有代码示例和调试经验,帮助开发者快速实现高效稳定的无线充电方案。

weixin_29190169的博客 405

从Power到HO:一文搞懂主流脑图谱在DPABI里怎么选,让你的rs-fMRI分析更精准

本文深入解析了rs-fMRI分析中主流脑图谱(如Power、HO、AAL等)在DPABI中的科学选择策略,帮助研究者根据不同的神经科学研究目标优化分析流程。从解剖学图谱到功能连接图谱的特性对比,到DPABI实操中的多图谱分析工作流,提供了全面的方法论指导,助力提升静息态功能磁共振成像(rs-fMRI)研究的精准度和可重复性。

weixin_30654583的博客 403

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 109

18、Excel VBA编程:自定义函数创建与代码调试全攻略

本文详细介绍了Excel VBA中自定义函数的创建方法,以获取单元格注释为例演示了完整开发流程,并深入讲解了代码调试的重要性与核心工具。内容涵盖三种主要错误类型及其应对策略,系统介绍了调试工具栏、断点、逐行执行、Locals窗口、Immediate窗口等实用功能。通过综合案例展示了如何运用调试技术解决实际问题,并总结了提前规划、逐步测试、日志记录等最佳实践,帮助读者提升VBA编程效率与代码质量。

life6的博客 100

【MATLAB例程】三维下的IMM(交互式多模型),模型使用CV(匀速)和CA(匀加速),滤波使用EKF。附完整代码

CV模型:状态包含位置、速度和零加速度(9维状态),状态转移矩阵忽略加速度项CA模型:完整包含位置、速度和加速度(9维状态),状态转移矩阵包含二次项过程噪声矩阵Q分别根据两种模型的运动特性推导。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 561

2026年OPPO嵌入式岗位面试题带详细答案

本文总结了OPPO嵌入式岗位面试的核心考点,涵盖硬件驱动、系统启动、Linux内核开发等7大模块共34道典型题目。重点解析了SPI通信协议、中断处理、U-Boot启动流程、Linux驱动开发等关键技术,突出硬件调试与工程实践能力考核。题目设置贴合实际岗位需求,适合校招与社招驱动开发岗位应聘者系统复习,帮助掌握嵌入式开发的核心知识与面试要点。

Open 489

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: DPDK网卡PMD驱动常用属性字段和API函数汇总
下一篇: Wireshark使用小技巧1 -- 查看http gzip压缩内容
编程十万问
博客等级 码龄7年 2428粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值