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

news2024/12/28 18:05:40

目录

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.coloradmin.cn/o/1873971.html

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

相关文章

如何保护应用?可快速部署的WAF服务器分享

Web应用攻击是安全事件和数据泄露的主要原因。相关统计表明,超过四分之三的网络犯罪直指应用及其漏洞。为保护数量日益增长的应用安全,Web应用防火墙(WAF)因此而生。本文则聚焦于WAF服务器,了解它的性能与具体的实践应用。   新加坡网络安全…

鸿蒙HarmonyOS自定义组件开发和使用

自定义组件的介绍 在开发和使用自定义组件直接,我们需要了解什么是自定义组件? 在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常…

scatterlist的相关概念与实例分析

概念 scatterlist scatterlist用来描述一块内存,sg_table一般用于将物理不同大小的物理内存链接起来,一次性送给DMA控制器搬运 struct scatterlist {unsigned long page_link; //指示该内存块所在的页面unsigned int offset; //指示该内存块在页面中的…

CentOS7环境下DataX的安装、使用及问题解决

DataX概述 DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变…

SAP PP学习笔记24 - 生产订单(制造指图)的创建

上面两章讲了生产订单的元素。 SAP PP学习笔记22 - 生产订单(制造指图)的元素1-CSDN博客 SAP PP学习笔记23 - 生产订单(制造指图)的元素2 - 决济规则(结算规则)-CSDN博客 这一章讲生产订单的创建。比如 - 生产订单的流程&#…

端口扫描攻击检测及防御方案

端口扫描数据一旦落入坏人之手,可能会成为更大规模恶意活动的一部分。因此,了解如何检测和防御端口扫描攻击至关重要。 端口扫描用于确定网络上的端口是否开放以接收来自其他设备的数据包,这有助于网络安全团队加强防御。但恶意行为者也可以…

ETAS工具导入DEXT生成Dcm及Dem模块(一)

文章目录 前言Cfggen之前的修改ECU关联DcmDslConnectionDiagnostic ProtocolDiagnostic Ecu Instance PropsCommonContributionSetEvent修改communication channel总结前言 诊断模块开发一般是先设计诊断数据库,OEM会释放对应的诊断数据库,如.odx文件或.cdd文件。如果OEM没有…

博士最多8年?硕士6年清退?教育局可没这么说!

哈哈哈,教育部可没说过博士最多八年,教育部说的是 博士研究生教育的最长修业年限,一般为6-8年 并且 对于“因研究未结束而无法正常毕业的博士”,目前高校可以按规定统筹利用科研经费、学费收入、社会捐助等资金,设…

使用minio搭建oss

文章目录 1.minio安装1.拉取镜像2.启动容器3.开启端口1.9090端口2.9000端口 4.访问1.网址http://:9090/ 5.创建一个桶 2.minio文件服务基本环境搭建1.创建一个文件模块2.目录结构3.配置依赖3.application.yml 配置4.编写配置类MinioConfig.java,构建minioClient5.Fi…

【Python】已解决:Python正确安装文字识别库EasyOCR

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:Python正确安装文字识别库EasyOCR 一、分析问题背景 在使用Python进行图像处理和文字识别时,EasyOCR是一个流行的库,它基于PyTorch&…

一大波客户感谢信来袭,感谢认可!

“自美的置业数据中台项目启动以来,贵公司实施团队与服务运营始终以专业、敬业、合作的态度扎根用户、服务用户、与用户共成长。在此,我司表示由衷的感谢!” 这是携手美的置业以来,我们收到的第二封客户感谢信。 △ 以上为美的置…

Vue2组件传值(通信)的方式

1.父传后代 ( 后代拿到了父的数据 ) 1. 父组件引入子组件&#xff0c;绑定数据 <List :str1‘str1’></List> 子组件通过props来接收props:{str1:{type:String,default:}}***这种方式父传子很方便&#xff0c;但是父传给孙子辈分的组件就很麻烦&#xff08;父》子…

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

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

《昇思25天学习打卡营第5天|onereal》

ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作&#xff1a;Pointw…

KVB外汇:澳元/美元、澳元/纽元、英镑/澳元的走势如何?

摘要 本文对近期澳元/美元、澳元/纽元、英镑/澳元的技术走势进行了详细分析。通过对关键支撑位和阻力位的分析&#xff0c;我们可以更好地理解澳元在不同货币对中的表现。随着全球经济形势的变化&#xff0c;各国央行的货币政策对外汇市场的影响也愈发明显。本文旨在帮助投资者…

centos7+离线安装nginx

1.提取rpm包 链接&#xff1a;https://pan.baidu.com/s/1qLNPubAD_qt59Pzws4nnog 提取码&#xff1a;0124 --来自百度网盘超级会员V3的分享 2.安装流程 rpm -ivh nginx-1.20.1-1.el7.ngx.x86_64.rpm 在使用 nginx 时&#xff0c;通常需要掌握一些基本的命令来管理其启动、查…

新能源行业必会基础知识-----电力市场概论笔记-----经济学基础

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 什么是市场2. 电力市场机制设计的基本要求 1. 什么是市场 经济学定义 市场是供需双方交易并决定商品价格和产量的机制市场可…

新学期必备,录取情况统计如何制作?

暑假即将开始&#xff0c;新学期离我们又近了一步&#xff0c;老师们是不是在为如何高效统计录取情况而头疼呢&#xff1f;别担心&#xff0c;分享一个超实用的小技巧——使用易查分小程序的新建填表功能&#xff0c;让你的录取统计工作变得简单又高效&#xff01; 打开易查分小…

汇总大语言模型LLM的评测基准数据集(BenchMarks)

文章目录 0. 引言1. 知识与语言理解1.1 MMLU1.2 ARC1.3 GLUE1.4 Natural Questions1.5 LAMBADA1.5 HellaSwag1.6 MultiNLI1.7 SuperGLUE1.8 TriviaQA1.9 WinoGrande1.10 SciQ 2. 推理能力2.1 GSM8K2.2 DROP2.3 CRASS2.4 RACE2.5 BBH2.6 AGIEval2.7 BoolQ 3. 多轮开放式对话3.1 …

一文弄懂梯度下降算法

1、引言 在上一篇文章中&#xff0c;我们介绍了如何使用线性回归和成本损失函数为房价数据找到最拟合的线。不过&#xff0c;我们也看到&#xff0c;测试多个截距值可能既繁琐又低效。在本文中&#xff0c;我们将深入探讨梯度下降算法&#xff0c;这是一种更加强大的技术&…