首页 > 其他分享 >【网络知识】FTP主被动模式介绍及抓包分析

【网络知识】FTP主被动模式介绍及抓包分析

时间:2023-06-15 17:58:56浏览次数:43  
标签:FTP 被动模式 知识 端口 服务器 服务端 客户端

一.FTP是什么

FTP,即文件传输协议(File Transfer Protocol,FTP),基于该协议客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成两个连接,一个用来控制连接,传输FTP命令,标准端口为21;另一个用于上传、下载数据,标准端口为20。FTP有两种工作模式,分别是主动模式被动模式,下面将对其进行详细介绍。

##

本次测试环境的客户端和服务端均为linux系统,服务端为Vsftp 服务器

客户端ip:192.168.13.104

服务端ip:192.168.13.111

##

 

二.被动模式(较为常用)

具体流程

1.客户端连接到服务器的21端口(默认命令端口)

2.客户端发送pasv命令,请求服务器进入被动模式(linux客户端默认为passive模式)

3.服务器打开一个监听端口,并告知客户端

4.客户端收到响应后,主动连接到服务器的监听端口

下图为被动模式抓包截图,供参考学习

ACK包就不做分析了

1-3    三次握手,建立tcp连接,由此也能看出来ftp协议是基于tcp协议的

4       服务端响应ftp连接

6       客户端输入用户名

8       服务端提示请输入密码

10     客户端输入密码

11     服务端响应登录成功

13     客户端查询服务器系统类型

14     服务端返回系统类型

16     客户端请求被动模式

17     服务端响应进入被动模式,并将监听的端口13365发给客户端 (52x256+53=13365)

19-21三次握手,建立tcp连接

22      客户端查询目录(dir)

23      服务端响应

24      服务器传递目录详细信息

25,27-29  四次挥手

30      服务端提示传送完毕

32      设定传输模式为二进制模式

33      服务端返回设定的结果 

40      服务端请求下载文件(get 13111.txt)

41      服务端显示当前为binary传输模式

42      开始数据传输

43-46 四次挥手

47      服务端提示传输完成

49      客户端请求退出

50      服务端响应退出请求

 

三.主动模式

具体流程

1.客户端连接到服务器的21端口(默认命令端口)

2.客户端打开一个监听端口,并通过port命令告知服务器

3.服务器收到port命令后,通过服务器的20端口主动连接到客户端的监听端口

下图为主动模式抓包,供参考学习

 上面的被动模式已经说的较为详细,这里只介绍主动模式与其不同的地方

19    客户端给服务端发送监听的ip和端口,等待服务端来主动连接(linux默认为被动模式,输入pass切换到主动模式)

20    服务端响应已经收到port命令

不管是主动还是被动,这个都是相对于服务器而言的。所以被动模式,可以简单的理解为服务器被动的等着客户端来连接它。(人话版本)

 

四.FTP常用的命令

dir:显示服务器目录和文件列表
ls:显示服务器简易的文件列表
cd:进入服务器指定的目录
pwd:查看当前工作目录
rename filename newfilename:重命名FTP服务器上的文件
delete filename:删除FTP服务器上的文件
help[cmd]:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令
close:结束与服务器的FTP会话
quit:结束与服务器的FTP会话并退出FTP环境
bye: 退出ftp会话过程
get:下载指定文件 get filename [newname](filename为下载的FTP服务器上的文件名,newname为保存在本地计算机上时使用的名字,如果不指定newname,文件将以原名保存。
mget aa cc:批量下载
put aa.txt:上传文件
mput aa cc:批量上传文件

 

所有内容只为了记录学习过程,后续会继续补全完善,部分内容来源于网络,侵删。

标签:FTP,被动模式,知识,端口,服务器,服务端,客户端
From: https://www.cnblogs.com/Mourinkun/p/17481140.html

相关文章

  • Linux系统基础知识与自学方法
     大部分非计算机相关的朋友也经常使用电脑,所以我们频繁接触的是Windows系统。关于这个系统的评价不一,一部分人觉得简洁快捷,一部分人觉得问题(病毒、弹窗)多多,总之对Windows系统系统的评价参差不齐,上限高,下限也低。所以我们可以看出,这个系统在使用过程中每个人的感受都不一样。同时......
  • 信号处理基本知识:频谱/功率与能量/功率谱密度/
      (13条消息)信号频谱、幅度、功率和能量_信号幅度是什么_jackghq的博客-CSDN博客     功率谱密度类似于频谱(Spectrum),但在使用上一定要注意区分,否则容易闹笑话。在了解PSD之前,首先回顾一下信号的分类。信号分为能量信号和功率信号。一个信号不可能既是能量信号又......
  • 数据结构(python版)—— 2、前期知识与算法分析
    从C转到python(一)C:helloWorld!#include<stdio.h>​intmain(){//sayhelloprintf("HelloWorld!\n")}1-Compile编译到机器码2-Link与各种库链接3-Execute执行目标程序Python:HelloWorld!defmain():#sayhelloprint("HelloWorld!"......
  • STM32嵌入式面试知识点总结
    一、STM32F1和F4的区别?解答:参看:STM32开发–STM32初识内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;主频不同:F1主频72MHz,F4主频168MHz;浮点运算:F1无浮点运算单位,F4有;功能性能:F4外设比F1丰富且功能更强大,比如GPIO翻转速率、上下拉电阻配置、ADC精度等;内存大小:F1内部SRAM最大64K,F4有1......
  • 【技术积累】Linux中的基础知识【一】
    Linux系统是什么Linux系统是一种开源操作系统,它极具可定制性和灵活性,因此受到了许多人的欢迎。Linux系统以简单,强大和兼容性而著称。它可用于各种设备,从个人计算机到超级计算机,从移动设备到智能家居。Linux系统遵循GNU公共许可证(GPL)下的自由和开源软件原则,这......
  • 重拾梦想!语音交友源码平台搭建技术知识:在线K歌功能的实现
    你是否小时候也有一个当歌手的梦想,长大后却因生活压力所迫而放弃?我相信绝大多数人小的时候都有一个当歌手的梦想,因为在我们小的时候非常的天真纯洁,当听到好听的歌或是想起好听的歌,不管在何时何地,公共场合或是私密场所我们都可以不惧别人的目光唱起来歌,不管我们唱的好不好听,大部分人......
  • 【数据结构】部分易考知识点回顾
    期末实验考试一共线性表、树和查找、图、排序四道题。据说需要重点复习二叉树的遍历与哈希表。目前还没写完,龟速更新中。。。线性表&栈&队列顺序栈表达式求值核心逻辑核心算法是一个循环,每次读入一个元素:可能是一个数或一个符号(运算符、左右括号和结束符)括号包着的是一......
  • opcenter camstar designer基础知识-- Functions
     已编写函数来执行各种任务,如简单的算术、搜索复杂的数据结构、数据库查询、报告编写、数据收集、数据验证等等。函数具有零个或更多参数,并且由ActiveX组件实施。包含在CLF中的函数可以执行工作。函数有权访问系统的内部对象设计,它通过操纵该设计来完成工作。以下主题提供有......
  • python基础知识——字符串
    1、字符串的格式化python将若干值插入到带有“%”标记的字符串中,实现动态地输出字符串。格式:"%s"%str"%s%s"%(str_1,str_2)例如:str_0="I"str_1="Love"str_2="China"format="%s%s%s"%(str_0,str_1,str_2)printformat#ILoveChi......
  • python基础知识——内置数据结构(集合)
    python中的set是指一系列无序元素的集合,其中的元素都是相异的,常见的操作包括集合的并集,交集和补集等操作。1、set的创建格式set_name={value1,value2,...}创建空的集合set_name=set()注意:在创建空的集合的时候不能使用set_name={}这样创建出来的是字典。例如animals......