FTP协议的原理及配置

article/2025/8/18 14:52:46

一、FTP概述

1、FTP(File Transfer Protocol,超文本传输协议)

是典型的c/s架构的应用层协议,需要由服务端软件、客户端软件两个部分共同实现文本传输功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。tcp协议:20,21端口。

FTP是一种文本传输协议,它支持两种模式,一种方式叫做Standard(也就是Active,主动方式),一种是Passive(也就是PASV,被动方式)。Standard模式 FTP的客户端发送PORT命令到FTP server。Passive模式FTP的客户端发送PASV命令 FTP server。

2、Standard模式概述

FTP客户端首先和FTPServer的TCP21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

3、Passive模式概述

在建立控制通道的时候和standard模式类似,当客户端通过这个通道发送PASV命令的时候,FTP
server打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传送数据的请求,然后FTP server将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

二、FTP的作用与工作原理

1、FTP的作用和模式以及通信方式

作用:Internet上用来传送文件的协议

VSFTP全称(very secure FTP)

VSFTP模式:C/S模式

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

20端口用于建立数据连接,并传输文件数据

21端口用于建立控制连接,并传输FTP控制命令

2、FTP工作原理与流程:

FTP数据连接分为两种模式:主动模式和被动模式
FTP 会话包含了两个通道,控制通道和数据传输通道,                                                                     FTP的工作有两种模式,一种是主动模式,一种是被动模式,以 FTP Server为参照,主动模式,服务器主动连接客户端传输;被动模式,等待客户的连接。”

(1)主动模式的工作原理:

FTP 客户端连接到 FTP 服务器的21号端口,发送用户名和密码,客户端随机开放一个端口(1024以上),发送PORT 命令到FTP 服务器,告知服务器客户端采用主动模式并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20 号端口和客户端开放的端口连接,发送数据,原理画图所示,(无论是主动还是被动模式,首先的控制通道都是先建立起来,只是在数据传输模式上的区别)

(2)被动模式的工作原理:
PASV 是 Passive 的缩写,中文成为被动模式,工作原理:FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,发送 PASV 命令到 FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,而后客户端再连接到服务器开放的端口进行数据传输,原理画图所示。

 总结:主动模式:服务器主动发起数据连接

            被动模式:服务器被动等待数据连接

扩展:FTP服务器默认使用TCP协议的20、21端口与客户端进行通信

常用的ftp软件:

windows:Serv-U、FTP server、filezilla server

linux:ProFTPD  重点:Very secure FTP(vsftp)工作环境中都用这个FTP服务

三、配置FTP服务

1、关闭防火墙

systemctl stop firewalld   #关闭防火墙

setenforce 0      #临时增强型安全功能

 vim /etc/sysconfig/selinux  

SELINUX=disabled   #永久关闭防火墙

2、yum info vsftpd  或者 rpm -q  vsftp 查看软件包信息

yum install -y vsftpd    #如果没有,使用yum安装

systemctl start vsftpd  #开启FTP服务

cd /etc/vsftpd 

cp vsftpd.conf    vsftpd,conf.bak     #切换到服务配置目录并且做备份

3、匿名用户案例

设置匿名用户访问的FTP服务(最大权限)

#修改配置文件

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES           #开启匿名用户访问。默认已开启
write_enable=YES                      #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                       #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload enable=YES          #允许匿名用户.上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES  #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES  #允许删除、重命名、覆盖等操作。需添加
chmod 777 /var/ftp/pub/              #为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据

4、匿名访问测试

在windows系统,输入cmd命令打开命令提示符

建立ftp连接                                                                                                                                      ftp 192.168.154.19#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录                         ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub目录


ftp> get文件名 #下载文件到当前Windows本地目录(文件位置在系统用户里面admin)


ftp> put 文件名 #上传文件到ftp目录(默认在var/ftp/pub)
ftp> quit #退出   

 5、设置用户登录模式

设置本地 用户验证访问ftp,并静止切换到ftp以外的目录(默认登录的跟目录为本机用户的家目录)

修改配置文件

vim/etc/vsftpd/vsftpd.conf
local enable=Yes #启用本地用户
anonymous enable=NO #关闭匿名用户访问
write enable=YES #开放服务器的写权限(若要上传,必须开启)
local umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot local user=YES #将访问禁锢在用户的宿主目录中
allow writeable chroot=YES #允许被限制的用户主目录具有写权限
#anon mkdir writeenable=YES 注释
#anon other write enable=YES 注释

systemctl restart vsftpd    重启服务

 设置一个张三用户并设置密码

ftp 192.168.154.19

ftp://zhangsan@192.168.154.19 #

 设置张三用户为/var/ftp/fbc 目录位置的属主

张三就有了写的权限

修改匿名用户、本地用户登录的默认根目录

anon_root=/var/www/html    #anon_root 针对匿名用户

local_root=/var/www/html   #local_root 针对系统用户

6.配置黑名单文件

vim /etc/vsftpd/user_list 配置黑白名单文件

把张三加入黑名单

 保存并推出:重启服务 systemctl restart vsftpd

在次打开windows cmd命令登录会显示登录失败

 四、简单生成案例

需求:某公司因新业务上线需要制定备份计划(使用FTP服务)

   1、FTP服务端部署在业务服务器

   2、创建zhangsan wangwu lisi用户,并且设置文件固定路径/usr/local/html

   3、配置用户lisi白名单,zhangsan与wangwu黑名单

   4、每天凌晨2点把/usr/local/html文件打包(加日期)备份

   注:文件数据可以自行制作

   5、通过FTP服务每天人工下载备份文件到windows服务器上

   注:windows备份盘自定义

备注:以上操作步骤编写成操作手册第一步做什么----》第二步做什么-------》第三步做什么

步骤:

  1. 配置服务
  2. 创建用户
  3. 加入黑白名单
  4. 设置备份周期任务
  5. 人工下载备份

第一步:配置服务

检查vsftpd安装包是否安装

关闭防火墙关闭临时增强安全功能

查看防火墙状态

 开启服务并查看状态

 第二步:创建用户并设置密码

 Vim /etc/vsftpd/vsftpd.conf  #配置如下三个文件

 Vim /etc/vsftpd /chroot_list  #进入添加被限制登录路径的用户

 Cmd打开windows命令控制符并使用lisi账号,发现用户在/etc/local/html尝试切换位置,发现请求被拒绝。设置固定位置成功

 第三步: 加入黑白名单

vim /etc/vsftpd/user_list  #配置白名单加入lisi用户

 vim /etc/vsftpd/vsftpd.conf

Userlist_enable=yse

Userlist_deny=NO   #设置白名单

 Cmd打开windows命令控制符ftp 分别登录zhangsan lisi wangwu的账号发现只有白名单中的lisi用户能登录系统

 第四步设置周期性备份任务

创建一个目录

 Vim /bak/.backup  创建一个文件并编辑 以下内容,赋值一个时间到backup下面

 给文件添加一个可执行权限

 设置周期性任务

 为了验证设置时间为18:05

 Cd /usr/local/html 查看目录下的详细文件

 等18:05以后在查看一次 文件就被压缩并添加时间在了html 目录下

第五步:通过ftp协议下载到windows系统下下

通过cmd命令符ftp协议登录lisi用户 get文件名到windows

 文件被保存在系统盘的用户文件下。

 本章总结

1、什么是FTP

2、VSFTP模式

3、工作原理模式,主动和被动

4、FTP端口和作用

5、FTP配置文件

6、实验匿名用户与本地用户登录权限和方式

7、用户的黑白名单

                     


http://chatgpt.dhexx.cn/article/8kqTntdN.shtml

相关文章

基于FTP协议的文件传输与下载

文章目录 一、FTP协议二、文件上传1.连接服务器2.登录操作3.上传操作 三.文件下载1.连接服务器2.登录操作3.下载操作 四. 总结 一、FTP协议 FTP(文件传输协议),基于TCP/IP协议;也是C/S架,分为两部分:FTP服务器、FTP客户端。服务器…

基于FTP协议实现文件上传与下载

目录 一、FTP简介 二、关于FTP服务器 三、文件上传 分步讲解: 完整实现代码: 四、下载文件 分步讲解: 完整实现代码: 小结 一、FTP简介 FTP(File Transfer Protocol)即文件传输协议,是…

【FTP】——文件传输协议

文章目录 1.FTP简介1.1 FTP概述1.2 FTP主动模式1.3 FTP被动模式 2. 实例:匿名用户访问FTP服务3. 实例:本地用户访问FTP服务 1.FTP简介 1.1 FTP概述 FTP服务——用来传输文件的协议。 FTP服务器默认使用TCP协议的20、21端口与客户端进行通信. 20端口…

FTP协议使用

FTP协议大家都知道是文件传输协议,那这个协议到底是怎么样的呢,怎么用C语言是实现一个客户端呢? 我想通过这篇文章你能够理解FTP协议。 1-首先我们先了解一下FTP的工作流程 FTP分为 FTP服务器,FTP客户端,一般我们只…

FTP协议分析

一、实验名称 FTP协议分析 二、实验目标 1、理解FTP协议的工作原理; 2、了解FTP协议的常用命令; 3、了解应用层协议与传输层协议的关系 三、实验原理 FTP(File Transfer Protocal),是文件传输协议的简称。FTP使…

FTP 文件传输协议

FTP: 使用FTP进行文件传输时,会使用两个TCP连接。第一个连接是FTP客户端和FTP服务器间的控制连接。FTP服务器开启21号端口,等待FTP客户端发送连接请求。FTP客户端随机开启端口,向服务器发送建立连接的请求。控制连接用于在服务器…

在互联网上传输文件 —— FTP协议

文章目录 FTP协议是什么FTP协议传输过程FTP命令和回答参考文献 FTP协议是什么 FTP(File Transfer Protocol,文件传输协议) 是TCP/IP 协议组中的协议之一。 FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。…

文件传输协议(FTP)

因特网上使用的最广泛的文件传输协议。FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存储权限。它屏蔽了各个计算系统的细节,因而适合于在异构网络中的任意计算机之间传输文件。 FTP提供以下功能: 提供不同种…

FTP协议完全详解

1. 介绍 FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。…

FTP协议(文件传输协议)

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序&am…

FTP文件传输协议详解

简介:FTP是基于TCP协议之上的具有C/S架构的文件服务器。 需要通过控制连接20端口来控制双方的通信 需要通过数据连接21端口来进行双方的通信 主动模式:最大的特点是数据连接由服务器的20端口主动发起连接,这种情况可能会被客户端的防火墙拒绝…

FTP协议讲解

FTP 概述 文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。 在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命…

FTP 协议

FTP 协议 FTP协议的(file Transfer Protocol)文本传输协议,简称为FTP, **FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议。 FTP 工作在一种特殊的服务机制上,**采用的是c/s模式 也就是客户端和服务器…

浅谈FTP(文件传输协议)

FTP(文件传输协议) FTP(File Transfer Protocol) ,是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。 该协议使用的端口号为20和21,其中20是数据端口,21是命令端口(默认情况下) 是否使用…

FTP协议

一、FTP的概述 1、文件传送协议FTP (File Transfer Protocol)是互联网上使用得最广泛的文件传送协议,用于Internet上的控制文件的双向传输。 2、FTP提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。 3、FTP 屏蔽了…

FTP文件传输协议

目录 一、FTP的概述 1.1 FTP的理念 1.2 FTP数据连接模式 1.2.1 连接模式分类 1.2.2 主动和被动模式的工作原理 二、配置FTP服务 2.1 配置匿名用户FTP服务 2.1.1 关闭防火墙安装vsftpd软件包 2.1.2 开启FTP服务并做备份 ​ 2.1.3 修改配置文件 2.1.4 设置目录下权限&a…

FTP协议详解

一、FTP协议的概述 1、文件传送协议(File Transfer Protocol)是互联网上使用的最广泛的文件传输协议,用于Internet上的控制文件的双向传输。 2、FTP提供交互式的访问,允许客户指明文件类型与格式,并允许文件具有存取权限。 3、FTP屏蔽了各…

手推向量投影长度、投影向量

投影 (tuyǐng),数学术语,指图形的影子投到一个面或一条线上。 声明向量F为F、 向量F的大小为|F|,向量b为b、向量b的大小为、|b| 当我们得到了投影的大小之后|F| 因为 F 在 b 上 所以 单位向量相同,F 和 b…

向量投影公式

公式一:a.b |a||b|cos(r) cos(r) a.b/|a|/|b| 公式二:|c| |a|cos(r) 公式三:|c| a.b/|b| 公式四:c b/|b| |c| 公式五:c a.b/|b|2 b 公式六:c a.b/b.b b 备注:|b| √b.b 朝向解P…