计算机网络——FTP网络服务器

2023-05-16

目录

一、实验目的与要求

二、实验内容与方法

三、实验步骤与过程


一、实验目的与要求

学习安装、使用FTP服务器软件和FTP客户端软件,掌握基本的FTP传输数据的控制方式,能对FTP协议数据包抓取并进行分析。

实验环境:

  1. 使用Windows操作系统;Internet连接
  2. FTP服务器软件 Xlight
  3. FTP客户端软件 FlashFXP
  4. 抓包软件Wireshark。

二、实验内容与方法

FTP服务器软件和客户端软件的安装和使用、掌握FTP传输控制方式、抓取FTP协议数据包并对数据包进行分析

三、实验步骤与过程

1、认识FTP协议

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。

(1)其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

(2)它属于网络传输协议的应用层。FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unicode一样。但是,FTP有着极高的延时,从开始请求到第一次接受需求数据之间的时间,会非常长;并且不时的必须执行一些冗长的登录进程。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

 

图 1 FTP示意图

(3)FTP工作原理:

与许多互联网应用一样,FTP服务也是一个客户机用反务器系统(C/S)。用户通过一个支持FTP协议的客户端程序,连接到远程主机上的FTP服务器程序。用户通过客户端程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户端。

以文件下载为例,当启动FTP客户端程序从远程计算机下载文件时,事实上启动了两个程序:一个本机上的FTP客户端程序,它向FTP服务器提出拷下载文件的请求;

另一个是启动了远程计算机的上的FTP服务器程序,它响应你的请求并将指定的文件传送到你的计算机中。目前,FTP的应用软件有很多,如服务器端的有Server-U、FileZilla等,客户端的有CuteFtp 、 FlashFTP等,极大地方便了用户的使用。

2、在服务器端配置FTP

1FTP服务器软件 Xlight 的安装

在本实验中,我选择了Xlight作为FTP的服务器软件。从官网上下载安装包,并按照指示进行安装。

 

图 2 FTP服务器软件Xlight下载

2FTP服务器软件 Xlight 运行

以管理员身份启动运行Xlight,可以看到如下界面:

 

图 3 Xlight服务器界面

3FTP服务器软件 Xlight 配置

       首先,为了配置FTP服务器,需要获取服务器的局域网ip,通过上两次实验中的ipconfig命令进行查询,结果如图 4

 

图 4 局域网ip地址

获取了服务器的局域网ip后就可以建立虚拟FTP服务器了。将IP地址设置为本机的局域网地址,即172.31.225.33,端口默认为21。具体如图 5

 

图 5 配置FTP服务器

       完成服务器配置后点击“OK”即可,如图 6可以看到FTP服务器已经成功加入到列表中了。

 

图 6 FTP服务器列表

       此时,我们只需点击“启用”按钮,启用服务器即可。

 

图 7 启用FTP服务器

       至此,FTP服务器已经完成全部设置,接下来只需完成客户端的设置即可。

3、在客户端配置FTP

1FTP客户端软件 FlashFXP的安装

在本实验中,我选择了FlashFXP作为FTP的客户端软件。从官网上下载安装包,并按照指示进行安装。

 

图 8 FlashFXP下载

(2)打开FTP客户端软件 FlashFXP

完成安装后,打开FlashFXP,可以看到如下界面:

 

图 9 FlashFXP界面

至此,我们的FTP客户端已经配置成功,接下来将进行文件的上传与下载。

4、使用FTP上传和下载文件

通过服务器端,我们可以设置可访问的文件路径及权限,我们定义远程服务器的D盘作为公共路径,并创建对应的虚拟路径为Computer_Network,权限设置为可读可写,并以递归方式应用权限。

 

图 10 创建虚拟路径

       完成设置后保存结果如下图 11

 

图 11 公共路径列表

       然后再服务器端继续创建用户,在此我们创建了名为“szudyh”的用户,如下图 12

 

图 12 创建用户

       接下来将在客户端建立连接,首先选择建立快速连接,并输入对应的地址,端口,用户名及密码:

 

图 13 连接FTP服务器

       完成设置后,点击连接,将对远程FTP服务器进行联系,可以看到如图 14进行了登录的尝试,并最终成功登录。

 

图 14 登录过程

       登录后,如可以从右侧看到我们之前在服务器端设置好的公共路径。这里将显示所有的公共路径的内容。

 

图 15 成功登录后显示的结果

       接下来将进行上传与下载的测试,我们首先进行下载,选择“办秘.mp4”拖动至左侧并释放鼠标,可以从图 16中的红色方框看到正在下载,下载时间,以及传输速度等信息。

 

图 16 客户端下载状态

       同样地,我们也可以从服务器端查看传输的记录,如图 17,其中显示了传输的速度,以及已经传输的大小。

 

图 17 服务器端下载状态

下载完成后,可以看到如图 18的提示,显示了传输时间,大小和平均速度。

 

图 18 下载完成后的服务器端信息

       接下来,将对上传进行测试,选择要上传的文件,拖动至右侧并释放鼠标,可以在图 19看到上传的一些信息。

 

图 19 上传客户端状态

       至此,我们已经全部完成下载上传的实验。

5、改变用户权限和目录访问控制

1)修改用户权限

我们从FTP服务器上将用户使用期限设定为图 20中的1:18。

 

图 20 修改用户权限

在该时间后再次使用FlashFXP软件对服务器发起连接,如图 21,可以发现被服务器拒绝连接,连接失败。

 

图 21 修改用户权限后被拒绝登录

在本实验中,我选择了FlashFXP作为FTP的客户端软件。从官网上下载安装包,并按照指示进行安装。

2)修改用户访问目录

修改用户访问目录为D盘下名为“DongYunhao”的目录,并将读写权限修改为可读不可写,如图 22。

 

图 22 修改用户访问目录

       重新登录后,可以看到如图 23所示,目录已经更新了

 

图 23 更新后的目录

       我们向服务器上上传一个文件,可以发现被服务器拒绝了,这说明我们设置的权限生效了。

 

图 24 拒绝写入

6、分析FTP协议

1TCP三次握手建立连接请求

使用Wireshark追踪TCP流,下图 25中的数据包为TCP三次握手建立连接请求,可见FTP是基于TCP的。最后一个数据包表示服务器向客户端发送的信息,此处状态码220表示服务就绪。

 

图 25 TCP三次握手

2)进行用户验证

由于FTP以明文形式传输数据包,可以看到如图 26的数据包显示登录FTP服务器的用户名为szudyh、密码为*************,状态码230表示登录成功。

 

图 26 通过tcp进行登录

       可以看到,首先由客户端请求服务器登录的用户名为szudyh,然后服务器响应为需要密码。接下来由本地客户端将用户的密码发送给服务器,服务器验证通过后返回230状态码,证明登录成功。

3)获取服务器信息

在完成登录的用户验证后,需要获取服务器的一系列信息,通过Wireshark抓取数据包如图 27:

 

图 27 获取服务器信息

在上图中,SYST命令获取服务器的操作系统,FEAT命令获取系统状态或帮助支持。服务器系统是UNIX Type :L8。

 

图 28 建立文件路径

接下来将建立文件路径,如图 28数据包PWD请求打印工作目录,服务器响应为返回当前工作目录,路径名已建立为“/”。接着,数据包CWD更改工作目录,响应为文件行为已完成。

4)上传文件

通过FTP上传文件的数据包可通过Wireshark抓包如图 29

 

图 29 上传文件数据包

首先,客户端发送MLST命令,参数为1.png文件,由于是上传操作,故服务器返回找不到文件。然后服务器端以被动连接模式请求文件,接着服务器响应进入被动模式,传送文件的服务器IP地址为172.31.225.27,ID端口为63734,进行数据传输。完成传输后由服务器端响应传输完成数据包给本地客户端。

4)下载文件

通过FTP下载文件的数据包可通过Wireshark抓包如图 30

 

图 30 下载文件数据包

 

图 31 文件信息

首先,客户端发送MLST命令,参为1. png文件,服务器收集并返回如图 31的文件信息,如大小、创建时间、格式等。接着,客户端以被动连接模式请求文件,服务器响应进入被动模式,传送文件的服务器IP地址为172.31.225.27,端口为63734。服务器打开端口准备就绪后通知客户端下载数据。完成数据传输后,服务器返回信息表示文件传输完成,并关闭数据连接。

5)断开连接

在完成传输后,将释放与服务器的链接。通过Wireshark可抓包如图 32:

 

图 32 断开连接的数据包

先由客户端发出“Request: QUIT”请求即断开连接;服务器返回221完成连接的释放。然后进行四次握手,FTP连接完全断开。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机网络——FTP网络服务器 的相关文章

  • 【AI欣赏】将火影忍者推向新高度:StableDiffusion的神奇效果

    AI欣赏 将火影忍者推向新高度 xff1a StableDiffusion的神奇效果 x1f525 你是否曾经梦想过将自己的绘画水平提升到一个新的高度 xff0c 让你的艺术作品能够轻松地与官方制作相媲美呢 xff1f StableDiff
  • 2023-03-06 debian11 最小安装记录

    1 镜像准备 xff0c 根据个人需求下载debian 版本 Debian 获取 Debian 2 上传到VSAN 内容库 我这边是在vm里面安装的 xff0c 就直接上传到内容库备用 xff08 根据个人需求存放 xff09 3 分配虚拟
  • Vue 项目启动报错:http://eslint.org/docs/rules/no-unused-vars

    Vue项目启动时报 xff1a http eslint org docs rules no unused vars 39 vm 39 is assigned a value but never used src navigation nav
  • Android解决相机预览拉伸问题

    拉伸的原因 1 主要是由于surfaceview的尺寸和 相机预览尺寸不一致造成的 64 Override span class token keyword public span span class token keyword void
  • Linux技巧

    0001 修改主机名 bjchenxu vi etc sysconfig network xff0c 修改HOSTNAME一行为 34 HOSTNAME 61 主机名 34 没有这行 xff1f 那就添加这一行吧 xff0c 然后运行命令
  • 8.消抖技术

    简介 开关的金属触点在断开闭合的过程中产生了多个信号 xff0c 消抖就是保证只有一个信号起到作用 这样的小抖动不像快脉冲一样造成市电上的其他设备出现故障 但是会导致模拟电路快速翻转的数字信号电路出现故障 便宜的电脑键盘通常使用导电橡胶制成
  • 1.7-1.8动态库加载失败的原因和解决办法

    目录 1 动态库和静态库的原理 2 动态库加载失败的原因 3 解决方法 3 1 DT RPATH段 3 2将libcalc so的路径加入到环境变量LD LIBRARY PATH中 3 3将libcalc so的路径加入到 etc ld s
  • Spring中Bean创建完成后执行指定代码的几种实现方式

    Spring中Bean创建完成后执行指定代码的几种实现方式 1 实现ApplicationListener接口2 实现InitializingBean接口3 使用 64 PostConstruct注解 在实际开发中经常会遇到在spring容
  • archlinux fcitx5 在浏览器中不能使用中文输入法

    archlinux系统升级后 xff0c fcitx5 在浏览器中不能使用中文输入法 xff0c 解决办法 xff1a 编辑 etc environment 并添加以下几行 xff0c 然后重新登录 1 xff1a GTK IM MODUL
  • ANR问题了解新思路

    众所周知 xff0c ANR问题一般不太容易解决 它是一种比较综合性的问题 往往涉及系统事件分发逻辑 xff0c ANR产生机制 xff0c BINDER机制 xff0c 线程同步 xff0c CPU和内存使用等各方面 意思就是说 xff0
  • 2021-01-14

    Design expert教程 单因素实验设计 Part 1 基础简介在这个教程中 xff0c 我们会使用Design Expert创建一个常用的单因素多水平设计 这种类型的设计对分类处理的简单比较非常有用 xff0c 例如 xff1a 谁
  • Statement和PreparedStatement的区别/PreparedStatement和Statement比较的优点

    Statement 和 PreparedStatement之间的关系和区别 关系 xff1a PreparedStatement继承自Statement 都是接口 区别 xff1a PreparedStatement可以使用占位符 xff0
  • MATLAB自适应中值滤波

    span class token operator span 自适应中值滤波 clc span class token punctuation span clear span class token punctuation span clo
  • 操作系统经典问题之生产者消费者问题

    一 生产者消费者问题 生产者和消费者问题是计算机同步互斥的经典问题 xff0c 其意思就是生产者把生产出来的产品放在仓库里 xff0c 消费者把产品从仓库里取出来 仓库属于临界区 xff0c 生产者和消费者一次只能一个进入临界区中 两个进程
  • ctags使用教程

    Ctags ctags在http ctags sourceforge net 下载源码 xff0c 编译后安装 常规的标记命令为 ctags R 34 R 34 表示递归创建 xff0c 也就包括源代码根目录下的所有子目录下的源程序 绝大多
  • 线程池(阻塞队列,生产者消费者模式)

    线程的等待和通知 Object类中有些方法不可随便调用 wait notify notifyAll 这三个方法 xff1a 1 wait 使线程主动释放锁 xff0c 进入等待状态 xff0c 直到他被其他的线程通过 notify 和 no
  • ubuntu18.04开机后无法进入系统问题的解决方法

    解决方法ubuntu18 04开机时无法进入系统的问题 问题描述 xff1a 出现这种错误的原因是安装了nvidia smi安装包 xff0c Ubuntu18 04内核bug导致gdm3和nvidia驱动冲突 xff0c 使得gdm3无法
  • 解决安装软件包时出现E:无法定位的问题

    第一种情况 xff1a 在确定网络连接和质量没问题的情况下 xff0c 任何软件都无法安装 xff0c 出现E 无法定位XXX 解决 xff1a 换源 具体步骤 xff1a 1 备份 etc apt sources list 文件 执行命令
  • 初次入职,git使用教程:如何在idea使用git拉取代码,提交代码,以及在gitlab上发起合并请求

    git的使用相信是很多刚踏入程序员这一行朋友的痛点 xff0c 刚入职的一段时间非常担心git用错 xff0c 把别人的代码覆盖掉 xff0c 下面我详细介绍一下如何在idea上使用git xff0c 拉取 xff0c 提交代码 xff0c
  • nginx配置反向代理

    因为项目会根据生成一个URL 那个URL需要挂在移动端APP上 xff0c 但该项目需要部署在公司内网 xff0c 公司内网不能全外网开放 xff0c 所以需要经过nginx配置反向代理来跳转 文章目录 前言一 pandas是什么 xff1

随机推荐

  • 张筱雨履历

    自出道以来便以清纯可爱风格 席卷全球 幽雅的姿态 迷人的身姿 无不透露出深刻内涵的底蕴 被誉为中国第一 姓名 xff1a 张筱雨 出生日期 xff1a 1985年06月06日 职业 xff1a 模特 性别 xff1a 女性 籍贯 xff1a
  • Hystrix总结

    Hystrix是什么 xff1f Hystrix 能使你的系统在出现依赖服务失效的时候 xff0c 通过隔离系统所依赖的服务 xff0c 防止服务级联失败 xff0c 同时提供失败回退机制 xff0c 更优雅地应对失效 xff0c 并使你的
  • python爬取京东商品信息及评论

    准备 chrome浏览器 和 chromeDriver插件 xff08 其他浏览器步骤类似 xff09 python 环境python selenium模块 代码 span class token triple quoted string
  • 错误:端口被占用解决办法

    1 首先打开cmd xff0c 输入以下命令netstat ano xff0c 这是在查看所有端口 2 会列出以下端口 这里根据你的占用窗口找到他的PID xff0c 我这里占用的是1080 xff0c 可以看到他的PID是10512 3
  • 在RuoYi-Cloud若依系统的环境部署的建议及总结

    RuoYi Cloud若依系统的环境部署 为了开发项目 xff0c 使用了RuoYi Cloud系统 xff0c 在前期需要搭建好相应的环境 xff0c 然后再进行实际开发 下面是综合 RuoYi 官方在线文档的相应介绍及自己在搭建中的步骤
  • (第二版)亿级流量电商详情页系统实战-缓存架构+高可用服务架构+微服务架构+课件

    第1节课程介绍以及高并发高可用复杂系统中的缓存架构有哪些东西 第2节基于大型电商网站中的商品详情页系统贯穿的授课思路介绍 免费观看 7分钟 第3节小型电商网站的商品详情页的页面静态化架构以及其缺陷11分钟 第4节大型电商网站的异步多级缓存构
  • 解决idea报错 “cannot access class“ 同一包下Java代码飘红

    解决idea报错 cannot access class 同一包下Java代码飘红 遇到的问题 xff1a 同一个包下的java代码 xff0c 突然飘红 xff0c 出现红色的波浪下划线 xff0c 错误提示 xff1a cannot a
  • Spring Cloud Alibaba微服务实战笔记之微服务架构篇

    目录 xff1a 一 微服务介绍 二 微服务架构的常见问题 三 微服务架构的常见概念 四 微服务架构的常见解决方案 概述 xff1a 俗话说 xff0c 兵马未动 xff0c 粮草先行 xff0c 只有更好的理解什么是微服务 xff0c 才
  • 主流微服务技术栈Spring Cloud Alibaba

    目录 xff1a 一 国内主流微服务技术栈 二 Spring Cloud Alibaba介绍 三 总结 一 国内主流微服务技术栈 之前有段时间阿里开源的dubbo处于不怎么维护的阶段 xff0c 正好这段时间Spring cloud完善的技
  • 项目实战Dubbo Spring Cloud 并使用Nacos实现注册中心

    搞了大半天 xff0c 终于趟平了 本文中主要是基于Dubbo实现了服务提供和调用的demo xff0c 并接入Nacos注册中心 Dubbo Spring Cloud 是Spring Cloud Alibaba 的核心组件 xff0c 它
  • Dubbo高级应用事件之集群容错

    目录 xff1a 什么是容错Dubbo容错模式 Dubbo集群模式配置 什么是容错 xff1f 在分布式架构的网络通信中 xff0c 容错能力是必须要具备的 那什么叫做容错昵 xff1f 简单来说就是服务容忍错误的能力 xff0c 具体来说
  • HDU 5984(求木棒切割期望 数学)

    题意是给定一长为 L 的木棒 xff0c 每次任意切去一部分直到剩余部分的长度不超过 D xff0c 求切割次数的期望 若木棒初始长度不超过 D xff0c 则期望是 0 000000 xff1b 设切割长度为 X 的木棒切割次数的期望是
  • 书籍推荐:Spring源码深度解析(第2版)

    Spring源码学习必读书籍 Spring源码深度解析 xff08 第2版 xff09 从核心实现 企业应用和Spring Boot这3个方面 xff0c 由浅入深 由易到难地对Spring源码展开了系统的讲解 xff0c 包括Spring
  • chrome cookies cookie 解密 写入(80+版本)

    一 xff0c 历史变迁 80之前 xff0c 解密 xff1a win32crypt CryptUnprotectData encrypted value bytes None None None 0 1 xff0c 老文N多 xff0c
  • 使用 Nemo 替代 Ubuntu 自带的文件管理器

    Nautilus 是 Ubuntu 下默认的文件管理器 xff0c 为什么要替换它呢 xff1f 如果你用过 Ubuntu 13 04 或 13 10 xff0c 我想你就不会问这个问题了 xff0c 真是 谁用谁知道 Nemo 虽然没有
  • springboot错误: 找不到或无法加载主类

    IDEA如果遇到创建完springboot后 要简单运行 xff0c 却出现找不到或者无法加载主类的这种情况 请再maven那边先clean下 gt 然后再打包package 这样再重新运行就好啦 记得是在Maven gt Lifecycl
  • Linux驱动简介和开发流程--Linux驱动学习(1)

    Linux驱动简介和开发流程 学习笔记 Linux 驱动的分类 Linux三大设备驱动 1 字符设备驱动 IO的传输过程是以字符为单位的 xff0c 没有缓冲 比如I2C SPI都是字符设备 2 块设备驱动 IO传输过程中是以块为单位的 跟
  • 性能优化与内存优化

    性能优化 主要以这四个方向进行优化 xff1a 稳定流畅耗损apk 瘦身 稳定 避免内存溢出异常捕获反馈机制 流畅 卡顿的原因 xff1a 布局复杂动画过多View 的过度绘制UI 耗时操作频繁 GC 耗损 减少没必要的网络访问或合并相关网
  • java 实现快速排序

    1 介绍 快速排序是对冒泡排序的一种改进 它的基本思想是 xff1a 通过一趟排序将要排序的数据分割成独立的两部分 xff0c 其中一 部分的所有数据都比另外一部分的所有数据都要小 xff0c 然后再按此方法对这两部分数据分别进行快速排序
  • 计算机网络——FTP网络服务器

    目录 一 实验目的与要求 二 实验内容与方法 三 实验步骤与过程 一 实验目的与要求 学习安装 使用FTP服务器软件和FTP客户端软件 xff0c 掌握基本的FTP传输数据的控制方式 xff0c 能对FTP协议数据包抓取并进行分析 实验环境