FTP 文件传输协议:概念、工作原理;上传下载操作步骤

目录

FTP

概念

工作原理

匿名用户

授权用户

FTP软件包

匿名用户上传下载实验步骤

环境配置

下载

上传

wget

授权用户上传下载步骤

root用户登录FTP步骤

监听

设置端口号范围

修改用户家目录

匿名用户

授权用户


FTP

概念

FTP(File Transfer Protocol)是一种文件传输协议,用来上传和下载,实现远程共享文件,和统一管理文件。FTP允许用户在两台计算机之间传输文件,其中一台计算机充当服务器,另一台计算机充当客户端。

工作原理

  1. 连接建立
    1. 客户端使用随机端口(>1024的端口,高位端口)发起连接请求,连接到运行FTP服务的服务器。连接通常使用21端口号。
  2. 身份验证
    1. 客户端需要输入用户名和密码进行身份验证,以确保只有授权用户才能访问服务器上的资源。
  3. 命令和响应
    1. 一旦连接和身份验证成功,客户端通过发送FTP命令与服务器进行通信。服务器接收这些命令并作出相应的响应。典型的命令包括列出目录、改变目录、上传和下载文件等。
  4. 数据传输模式(默认为被动模式)
    1. 主动模式(服务器主动向客户端发起连接)
      1. 客户端在启动时打开一个随机高位端口并告知服务器该端口号,然后服务器从其数据端口(通常是20)连接到客户端指定的端口以传输数据。
      2. 客户端的防火墙会拦截服务器发起的连接,所以连接模式默认为被动模式
    2. 被动模式(服务器等待客户端向自己发起连接)
      1. 服务器打开一个随机高位端口并告知客户端该端口号,然后客户端(随机端口)连接到服务器的这个端口进行数据传输。
  5. 数据传输
    1. 数据传输通道建立后,文件开始在客户端和服务器之间进行传输。数据可以是文件内容、目录列表等。
  6. 连接终止
    1. 文件传输完成后,客户端可以发送命令断开连接,结束会话。

匿名用户

无需经过授权可以连接到FTP服务器,匿名用户一般只能进行对服务器进行下载操作

在服务器安装过FTP服务的软件包后,可以看到本地的用户账号文件中多出了一个名为ftp的用户,该用户就是匿名用户

授权用户

连接FTP时需要登录进行身份验证,授权用户通常权限比匿名用户高,比如下载和上传

FTP软件包

服务端软件包名:vsftpd

客户端软件包名:ftp

匿名用户上传下载实验步骤

环境配置

准备两台CentOS 7 虚拟机,一台做服务器(192.168.10.101)一台做客户端(192.168.10.102)

关闭内核安全机制

关闭服务端的防火墙并安装服务端的FTP服务软件包

同时安装客户端的FTP服务软件包

先开启服务端的FTP服务

此时在客户端(102)就可以尝试连接服务器(101)

可以通过 exit、quit、bye 退出连接

下载

当你在 /var/ftp FTP服务的根目录下创建一个文件,就可以在客户端通过 get 命令来下载该文件到连接服务器时所在目录位置下

或在末尾加入路径以指定下载时指定存放位置和名称

如果此时关闭客户端的防火墙,再连接FTP服务器

关闭被动模式,就进入了主动模式,再尝试下载文件,就可以在主动模式下下载文件了

所以主动模式还是被动模式都是由客户端决定的,而不是由服务器决定的

上传

默认配置下的FTP服务,匿名用户是没有上传权限的

所以我们需要修改服务端的配置文件

为了讲解方便,这里去除了配置文件内注释的行,然后再打开FTP的配置文件

  • anon_umask=022:指定匿名用户创建文件和目录时的umask值,022表示文件的权限为666-022=644,目录的权限为777-022=755
  • anon_upload_enable=yes:允许匿名用户上传文件到服务器
  • anon_mkdir_write_enable=yes:允许匿名用户创建新目录
  • anon_other_write_enable=yes:允许匿名用户对文件进行其他写操作,比如删除和重命名文件

由于修改了配置文件需要重启服务

由于刚才只是修改了配置文件中的权限,但是在系统中对于文件和目录还有权限的控制

再修改系统中对于匿名用户进行操作的目录进行权限上的修改

使用put命令上传文件

wget

通过 wget 客户端在不登录FTP的情况下直接下载FTP服务器中的文件

授权用户上传下载步骤

对授权用户的访问,仅限在该用户的家目录下

在服务端新建一个用户,用于在客户端进行授权用户的登录

  • chroot_local_user=YES:把本地用户(local_user)锁定在其主目录下,限制其无法切换到其他目录。
  • allow_writeable_chroot=YES:让本地用户在其主目录下创建和写入文件。通常情况下如果chroot_local_user设为YES,用户由于被锁定在主目录下而无法写入文件,但设置了allow_writeable_chroot=YES后,这些用户将可以在其主目录下写入和创建文件。

重启服务

如果不设置上面两个选项,授权用户就可以通过在FTP服务器中使用 cd / 到系统的根目录,而修改完后只能cd 到 自己用户的根目录

root用户登录FTP步骤

修改ftp存放禁止登录用户的文件

将root注释或删除

编辑拒绝用户连接的列表文件

将root用户也注释掉

因为没有修改主配置文件,所以不用重启服务

此时就可以用root用户登录了

在vsftpd的配置文件(/etc/vsftpd/vsftpd.conf)中也可以看到用户列表启用的选项

把YES改为NO就不启用用户列表,列表文件就不会生效了

还可以添加一个选项:userlist_deny=NO,如果在启用用户列表的情况下,再添加该选项,FTP服务器只有用户列表中的用户可以访问

该选项默认为YES,也就是拒绝用户列表中的用户访问

在用户列表文件(/etc/vsftpd/user_list)内也能看到相关注释

监听

vsftpd服务默认是通过Xinetd超级服务来进行管理,当有人访问vsftpd服务时,Xinetd就唤醒该服务,没人访问就让该服务休眠

如果要修改端口,不想让Xinetd来管理vsftpd服务,就打开监听选项,并添加监听的IP地址,指定访问vsftpd服务的IP地址,指定端口,取消ipv6的监听

修改vsftpd服务的配置文件

保存并退出,重启服务

此时在客户端(102)就需要指定端口来访问FTP服务

设置端口号范围

修改配置文件,添加相关选项

仅限于被动模式下,才分配指定端口号范围内的端口

保存并退出,重启服务

修改用户家目录

匿名用户

在服务端添加选项,指定目录

保存并退出,重启服务

在匿名用户的家目录下创建一个文件用于测试

此时登录到匿名用户也就进入了指定的家目录,创建的文件也能看到

授权用户

在服务端的配置文件中添加选项

保存退出,重启服务

在客户端登录也可以看到测试的文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA设计模式-大集合数据拆分

背景 我们在做软件开发时,经常会遇到把大集合的数据,拆分成子集合处理。例如批量数据插入数据库时,一次大约插入5000条数据比较合理,但是有时候待插入的数据远远大于5000条。这时候就需要进行数据拆分。数据拆分基本逻辑并不复杂&…

毅速丨金属3D打印是制造业转型升级的重要技术

随着科技的进步,金属3D打印技术已成为制造业升级的重要驱动力。它以其独特的优势,正引领着制造业迈向新的未来。 金属3D打印技术的突破: 设计自由。金属3D打印能制造任意形状和结构的零件,为设计师提供了无限的创意空间。 快速制…

idea配置外置gradle

下载gradle包,解压 https://gradle.org/install/#manually 创建一个本地仓库 mkdir /Users/caidingnu/save/gradle-8.5/gradlerep如果需要全局适应 gradle,环境变量自行配置 配置阿里云仓库 路径: /Users/caidingnu/save/gradle-8.5/init.…

ONLYOFFICE8.1-------宝藏级别桌面编辑器测评

简介 ONLYOFFICE 8.1 是一个功能强大的办公套件,提供了一系列广泛的功能,用于文档管理、协作和沟通。它包括用于创建和编辑文本文档、电子表格、演示文稿等的工具。ONLYOFFICE 8.1 的一些关键特性包括: 1. 协作:ONLYOFFICE 8.1 允…

51单片机STC89C52RC——11.1 蜂鸣器播放音乐

目录 目的/效果 一,STC单片机模块 二,蜂鸣器 2.1 介绍 2.2 板子位置电路图 2.3 发声原理 2.4 音符和频率 三,创建Keil项目 四,代码 4.1 乐谱代码 4.1.1 《义勇军进行曲》 4.1.2 《天空之城》 4.1.3 《小美满》 4.1.…

安防监控视频平台LntonAIServer视频监控管理平台裸土检测算法技术核心和应用场景

LntonAIServer裸土检测算法是一种基于人工智能技术的创新解决方案,旨在实现对裸土地表的自动识别。以下是对该算法的详细分析: 技术基础: 1、该算法利用深度学习和计算机视觉技术,通过捕捉视频或图像中的关键信息,如…

快手主播李香周助力推动 K-beauty风潮谈背后成功秘诀

近年来,互联网的迅速发展和SNS社交媒体的普及,人们通过网络可以随时随地对自己感兴趣的自由畅谈和学习。而直播带货更是作为一种依托于互联网兴起的新型营销方式,凭借其价格优势和新颖的介绍方式为消费者带来了十分便捷的购物体验。 本期采访…

多模态语言模型的新突破:Reka Core、Flash和Edge系列

人工智能领域的每一次技术革新都可能引领一场行业的变革,特别是在自然语言处理(NLP)领域,多模态语言模型(MLMs)正逐渐成为推动智能系统发展的核心力量。Reka团队最新推出的Reka Core、Flash和Edge系列模型&…

一个项目学习Vue3---快速了解Vue代码结构

基础结构 Vue文件中基本上和咱们自己写Html、CSS、JS差不太多&#xff0c;主要也由这三部分组成 HTML部分&#xff1a; <template><div>这里面写HTML代码</div> </template> CSS部分&#xff1a; <style scoped> .aaa {font-size: 3em; } &…

蚂蚁- 定存

一&#xff1a;收益变动&&收益重算 1.1: 场景组合 1: 澳门元个人活期&#xff0c;日终余额大于0&#xff0c;当日首次、本周本月非首次系统结息&#xff0c;结息后FCDEPCORE_ASYN_CMD_JOB捞起进行收益计算 【depc_account_revenue_detail】收益日 > 【depc_accoun…

golang使用RSA加密和解密

目录 前提 生成RSA公钥和密钥 读取文件 加密 解密 前提 本文章我们是先读取的RSA文件&#xff0c;所以需要先生成RSA&#xff0c;并且保存在文件中&#xff0c;再进行加密 生成RSA公钥和密钥 如果没有公钥和密钥&#xff0c;可以先看看我上一篇文章 生成RSA公钥和密钥h…

同步模式之保护性暂停模式

1. Guarded Suspension&#xff1a;一个线程需要等待另一个线程的执行结果 2. 理解 一个线程需要将结果传递给另一个线程&#xff0c;将这两个线程关联到到同一个 GuardedObject 如果需要源源不断地传递结果&#xff0c;需要使用消息队列&#xff08;生产者-消费者模型&…

最新AIGC系统源码-ChatGPT商业版系统源码,自定义ChatGPT指令Promp提示词,AI绘画系统,AI换脸、多模态识图理解文档分析

目录 一、前言 系统文档 二、系统演示 核心AI能力 系统快速体验 三、系统功能模块 3.1 AI全模型支持/插件系统 AI模型提问 文档分析 ​识图理解能力 3.2 GPts应用 3.2.1 GPTs应用 3.2.2 GPTs工作台 3.2.3 自定义创建Promp指令预设应用 3.3 AI专业绘画 3.3.1 文…

【51单片机入门】数码管原理

文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中&#xff0c;数码管被广泛应用于各种电子设备中&#xff0c;如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中&#xff0c;我们将探讨数码管的工作原理…

SpringMVC启动流程

文章目录 引文HandlerHandlerMapperHandlerAdapterRequestMapping方法参数解析RequestMapping方法返回值解析文件上传流程拦截器解析 SpringMVC启动流程如下 引文 我们在使用SpringMVC时&#xff0c;传统的方式是在webapp目录下定义一个web.xml文件&#xff0c;比如&#xff1a…

PerplexityAI与《连线》杂志纠纷事件深度分析

引言 最近&#xff0c;PerplexityAI&#xff0c;这家人工智能搜索领域的新秀公司&#xff0c;因被《连线》杂志指控剽窃内容和捏造事实而陷入困境。这起事件引发了广泛关注&#xff0c;也揭示了AI技术在信息检索和内容生成领域面临的一系列挑战。本文将对该事件进行详细分析&a…

Android Lint

文章目录 Android Lint概述工作流程Lint 问题问题种类警告严重性检查规则 用命令运行 LintAndroidStudio 使用 Lint忽略 Lint 警告gradle 配置 Lint查找无用资源文件 Android Lint 概述 Lint 是 Android 提供的 代码扫描分析工具&#xff0c;它可以帮助我们发现代码结构/质量…

最小生成树拓展应用

文章目录 最小生成树拓展应用理论基础 题单1. [新的开始](https://www.acwing.com/problem/content/1148/)2. [北极通讯网络](https://www.acwing.com/problem/content/1147/)3. [走廊泼水节](https://www.acwing.com/problem/content/348/)4. [秘密的牛奶运输](https://www.ac…

用英文介绍芝加哥(1):Making Modern Chicago Part 1 Building a Boomtown

Making Modern Chicago | Part 1: Building a Boomtown Link: https://www.youtube.com/watch?vpNdX0Dm-J8Y&listPLmSQiOQJmbZ7TU39cyx7gizM9i8nOuZXy&index4 Summary Summary of Chicago’s History and Development Urban Planning and Growth Chicago, often r…

无需向量量化的自回归图像生成

摘要 https://arxiv.org/pdf/2406.11838 传统观点认为&#xff0c;用于图像生成的自回归模型通常伴随着向量量化的标记。我们观察到&#xff0c;尽管离散值空间可以方便地表示分类分布&#xff0c;但它对于自回归建模来说并不是必需的。在这项工作中&#xff0c;我们提出使用扩…