服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux的FTP服务详解

Linux的FTP服务详解

2023-10-12 15:09闲亦生花 Linux

主要介绍FTP服务是什么?有什么功能,有哪些传输模式,并进行试验配置服务。

本章概述

主要介绍FTP服务是什么?有什么功能,有哪些传输模式,并进行试验配置服务。

一、什么是FTP服务?

FTP(file Transfer Protocol,文件传输协议),是典型的C/S架构的应用层协议,由客户端软件和服务端软件两个部分共同实现文件传输功能,FTP客户端和服务器之间的连接时可靠的,面向连接的,为数据的传输提供了可靠的保证。

FTP 是TCP传输协议,主要使用20和21端口

  • 20端口用来传输数据
  • 21端口用来建立连接(传输指令)

FTP是一种文件传输协议,它支持两种模式

  • 一种叫做Standard(也就是Active,主动方式),客户端发送PORT命令到服务器。
  • 另一种叫做Passive(也就是PASV被动方式),客户端发送PASV命令到服务器。

二、FTP的作用和接口信息

FTP的作用

  • internet上用来传输文件的协议

FTP服务器的接口信息

  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP的控制命令

三、FTP的工作原理和流程

FTP数据连接分为主动模式和被动模式

  • FTP会话包含了两个通道, 控制通道数据传输通道 ,FTP的工作有两种模式,一种是主动模式,一种的被动模式,以FTP server为参照。

  • 主动模式: 服务器主动连接客户端传输

  • 被动模式: 服务器等待客户端连接。

注意:无论时主动还是被动模式,首先控制通道都是先建立起来,只是在数据传输模式上的区别。

1、主动模式

FTP客户端连接到FTP服务端的21号端口,发送用户名和密码,客户端随机开放一个端口(高位端口:1024以上),发送PORT命令到FTP服务器,告知服务器客户端采用主动模式,并开放端口,FTP服务器收到PORT主动模式命令和端口后,通过服务器的20号端口和客户端开放的端口连接,发送数据。

Linux的FTP服务详解

解释: 主动模式就是:客户端开放一个高位端口连接到FTP服务器的21号端口,发送用户名和密码和PORT命令以及自己开放的高位端口号,告知FTP服务器、客户端采用的是主动模式,FTP服务器收到PORT命令和端口后,通过自己的20号端口来和客户端另一个端口号进行连接,发送数据

注意:主动模式的情况,客户端必须关闭防火墙,否则无法传输数据。

2、被动模式

FTP客户端连接到FTP服务器所监听的21号端口,发送用户名和密码,还有PASV命令到FTP服务器,服务器在本地随机开放一个端口(1024以上),然后把开放的端口告知客户端,然后客户端再连接到服务器开放的端口进行数据传输。

Linux的FTP服务详解

解释: 被动模式就是:客户端连接到FTP服务器的21号端口,发送用户名和密码和PASV和自己开放的一个端口,告诉FTP服务器,客户端采用的是被动模式,服务端收到后,会在本地也开放一个高位端口号,并告知客户端这个端口号,等待客户端过来进行连接,客户端通过自己的另一个高位端口号连接FTP的高位端口号之后,开始传输数据。

四、搭建和配置FTP服务

1、匿名用户案例

1.1 下载服务包、备份配置文件

关闭防火墙、核心防护

Linux的FTP服务详解

查看下载FTP服务包(服务包为vsftpd)

Linux的FTP服务详解

下载完成之后进行开启服务

Linux的FTP服务详解

进行备份ftp服务的主要配置文件

Linux的FTP服务详解

1.2 修改配置文件

进入配置文件

Linux的FTP服务详解

需要修改配置文件内容描述

anonymous_enable=YES           #开启匿名用户访问。默认开启
write_enable=YES               #开放服务器的写权限(若要上传必须开启)。默认已开启
local_umask=022                 #设置用户所上传数据的权限掩码(反掩码)
anon_upload_enable=YES         #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES    #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES    #允许匿名删除、重命名、覆盖等操作。需添加

anon_root=/var/ftp/pub       
#anon_root 针对匿名用户(如果不设置默认为此目录,可以进行修改,修改之后修改给它权限)

Linux的FTP服务详解

Linux的FTP服务详解

修改文件 /var/ftp/pub 权限为777

Linux的FTP服务详解

重启服务

Linux的FTP服务详解

1.3 匿名访问测试

开启一台windows系统,进行登录

  • windows下面的根目录在linux上面显示的目录就是“ /var/ftp/pub ”

    Linux的FTP服务详解

在FTP服务器中的共享目录创建一个文件

Linux的FTP服务详解

查看windows中是否可查看文件

Linux的FTP服务详解

可以将看到的文件下载到本地

Linux的FTP服务详解

也可以在windows本地创建文件进行上传的到FTP服务器

Linux的FTP服务详解

在FTP服务器上进行查看FTP共享文件,是否有windows上传的文件

Linux的FTP服务详解

2、用户登录模式

首先前面的配置跟匿名登录一样操作,在配置文件中的定义存在区别,具体操作如下
2.1 修改配置文件

进入配置文件

Linux的FTP服务详解

配置文件内容介绍

local_enable=Yes              #启用本地用户
anonymous_enable=NO          #关闭匿名用户访问
write_enable=YES              #开放服务器的写权限(若要上传,必须开启) 
local_umask=077               #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES         #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES    #允许被限制的用户主目录具有写权限

#anon_mkdir_write_enable=YES  注释	
#anon_other_write_enable=YES  注释

修改配置文件内容

Linux的FTP服务详解

Linux的FTP服务详解

Linux的FTP服务详解

2.2 创建需要登录的用户,更换需要共享的目录

配置好后可以创建一个目录用来当做FTP的共享目录,还需要创建一个用户用来作为此用户的属主目录

Linux的FTP服务详解

然后再进入到配置文件中,将刚所创建的目录添加到配置文件中

local_root=/var/ftp/data      #local_root针对系统用户

Linux的FTP服务详解

2.3 进行验证测试上传(put)和下载(get)文件

进入windows系统,使用创建的用户进行连接ftp服务器

Linux的FTP服务详解

在centos 7 中查看上传的目录

Linux的FTP服务详解

2.4 设置黑白命令
在黑明单内的用户,在别的系统上面就无法完成登录的操作

进入配置文件

Linux的FTP服务详解

将yudeqiang用户加入到黑名单

Linux的FTP服务详解

再从windows系统上进行登录

Linux的FTP服务详解

五、总结

FTP服务就是一个传输文件的协议

主要使用20(用来传输)和21(用来控制)两个端口用来连接和传输文件

且有两种传输模式

  • 主动模式: 客户端通过自己的高位端口连接到ftp服务器的21端口,发送用户名、密码、端口号、PORT给FTP服务端,其中PORT就是告诉服务端,此时此刻连接为主动模式,然后FTP服务器将使用自己的20端口连接到客户端的高位端口进行传输数据

  • 被动模式: 客户端通过自己的高位端口连接到FTP服务器的21端口,发送用户名、吗,IMA、端口号、PASV给到FTP服务端,其中PASV就是告知服务端,此次连接为被动模式,ftp服务器收到后返回一个高位接口给到客户端,客户端进行连接ftp服务器的高位端口进行传输数据

具体的实验为

  • 匿名登录: 主要就是配置ftp服务,进行任何用户都可以进行登录到FTP服务器中的指定的目录中下载或上传文件。

的高位端口进行传输数据

  • 被动模式: 客户端通过自己的高位端口连接到FTP服务器的21端口,发送用户名、吗,IMA、端口号、PASV给到FTP服务端,其中PASV就是告知服务端,此次连接为被动模式,ftp服务器收到后返回一个高位接口给到客户端,客户端进行连接ftp服务器的高位端口进行传输数据

到此这篇关于Linux的FTP服务的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/weixin_43555345/article/details/130345096

延伸 · 阅读

精彩推荐
  • Linux在Linux里安装和启动nginx的方法

    在Linux里安装和启动nginx的方法

    本篇文章主要介绍了在Linux里安装和启动nginx的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    TonsonMiao-苗红宾4452022-03-10
  • Linux在 Linux 中使用 OBS 和 Wayland 进行屏幕录制

    在 Linux 中使用 OBS 和 Wayland 进行屏幕录制

    有大量可用于 Linux 的屏幕录像机。但是当涉及到支持 Wayland 时,几乎所有的都不能用。这是个问题,因为许多新发布的版本都再次默认切换到 Wayland 显示管...

    Linux中国12902021-09-22
  • LinuxLinux实现文件内容去重及求交并差集

    Linux实现文件内容去重及求交并差集

    这篇文章主要介绍了Linux实现文件内容去重及求交并差集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    楔子4782020-08-04
  • Linux如果你使用过 “Free Download Manager”,必读!

    如果你使用过 “Free Download Manager”,必读!

    无论如何,保持谨慎总是上策! 对于 Linux 的恶意软件,我们并不常提及,这是因为它常会被迅速修复,并且与 Windows/macOS 相比,在现实中被利用的情况相...

    Linux中国82023-09-14
  • LinuxLinux进程调度:我太难了!

    Linux进程调度:我太难了!

    本文讲述的进程调度模型其实就是Linux中O(1)调度算法和CFS(完全公平调度算法)调度算法的雏形,为了便于理解,文中进行了一定程度的简化。...

    编程技术宇宙9172022-04-27
  • LinuxLinux scp命令用法及实例分享

    Linux scp命令用法及实例分享

    Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。下面我们来详细看下scp命令的用...

    51CTO6802021-12-31
  • LinuxLinux下执行java程序的方法

    Linux下执行java程序的方法

    本文通过图文并茂的方式给大家介绍linux下执行java程序的方法,想要在Ubuntu上运行java程序,可以将java程序编译成功后打包,然后在Ubuntu上用命令执行jar文...

    小鹿BAMBI5872021-11-21
  • Linux详解SSH 远程执行任务的方法

    详解SSH 远程执行任务的方法

    本篇文章主要介绍了详解SSH 远程执行任务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev4542020-07-09