ftp是一种文件传输协议,我们以redhat6.9为服务器系统,来介绍一下ftp服务器,这里我们先介绍一下ftp协议工作的原理

ftp协议可以在不同类型的计算机之间传输文件,工作流程大致为

1:客户机向服务器发出请求,同时客户机随机的打开一个大于1024的端口等待与服务器建立连接

2:ftp服务器在端口21侦听到客户机的请求后,在服务器的21端口和客户机的端口建立一个ftp连接会话

3:当出现数据请求时,客户机再次随机打开一个大于1024的端口与服务器的20端口开始开始传输数据,传输完毕后,随机端口与20端口均自动关闭

4:客户机与服务器断开连接,客户机释放第一个建立连接的随机端口

介绍完工作原理,再来介绍一下工作模式

ftp有两种模式

主动模式/被动模式

主动模式的工作方式

1:客户机随机打开一个大于1024的端口n,与服务器的21端口进行连接

2:客户机使用n+1端口对连接进行监视

3:客户机向服务器发起数据传输,并再次随机打开一个大于1024的端口x

4:服务器收到数据连接请求后,用20端口与x建立数据连接

5:传输完毕后断开连接,释放端口x,端口m与服务器的21端口断开连接,释放m

被动模式的工作方式

1:客户机随机打开一个大于1024的端口n,与服务器的21端口进行连接

2:客户机使用n+1端口对连接进行监视

3:客户机向服务器表明自己处在被动模式

4:服务器向客户机发送请求,并随机打开一个大于1024的端口x

5:客户机收到请求后在自己的随机大于1024的端口上与服务器的随机端口x进行数据的传输

6:传输完毕后断开连接,释放随机端口,客户机端口n与服务器的21端口断开连接,释放服务器的随机端口x

总结,以上两种工作模式可以看出,区别在于有谁发出请求,如果是客户机主动发起请求,并等待服务器主动通过该请求建立数据连接,则被称为主动模式

反之,如果是服务器发起请求,并被动的等待客户机来建立数据连接,则为被动模式。
最明显的一点,服务器下的主动模式与被动模式连接皆为21端口,但数据传输,主动模式下为21端口,而被动模式下为一个随机大于1024的端口

ftp的用户类型

1:匿名用户  顾名思义,可以在没有用户名和密码的情况下访问ftp服务器的共享资源

2:本地用户  这是ftp服务器的本地用户,不仅可以访问ftp服务器的共享资源还可以访问自己的家目录

3:虚拟用户  非本地用户的ftp用户,相比本地用户,更加安全,虚拟用户只能访问ftp服务器的共享资源,没有操作其他资源的权限

我们主要以redhat6.9为例,ftp服务器的软件,但我们因此我i们在这里主要说的是vsftp

ftp服务的配置也非常的简单,ftp服务是一个直接开启就能使用的服务,我们主要介绍匿名用户和本地用户的配置方式

我们首先可以用

yum install vsftpd  来下载ftp服务

chkconfig vsftpd off  设置开机自启

service vsftpd status  查看ftp服务器当前的状态

service vsftpd start  开启ftp服务器 (前面说过,ftp服务器不需要任何配置可以直接开启使用)

下载完毕后可以使用rpm -ql vsftpd  来查看ftp服务的具体文件路径

这里需要注意的几个文件

/etc/vsftpd/vsftpd.conf  ftp服务的主配置文件

/etc/pam.d/vsftpd  ftp的pam认证文件

/var/ftp  匿名用户的主目录

/var/ftp/pub  匿名用户的下载目录

/etc/vsftpd/ftpusers  禁止使用vsftp的用户列表

/etc/vsftpd/user_list  禁止或允许使用vsftp的用户列表

主要就是这些文件的信息

配置一台匿名ftp服务器

需要对主配置文件的参数进行修改

anonymous_enable=yes  允许用户匿名访问ftp服务器

anon_upload_enable=yes  匿名用户可以上传文件

anon_mkdir_write_enable=yes  允许匿名用户具有新建文件夹的权限

配置到此就完成了

配置一台仅本地用户访问的ftp服务器

anonymous_enable=no  禁止匿名用户访问

local_enable=yes  允许本地用户访问

配置完成

linux服务基础之ftp服务的更多相关文章

  1. 关于linux服务器上搭建ftp服务的流程

    小龙最近折腾了一个阿里云的服务器,买完了就要开始做那么多那么多的功课,小龙对ssh也是一知半解的状态,做个小笔记,发布下整个ftp服务的搭建过程,大神勿喷:) 一.aliyun Linux(Redha ...

  2. linux Centos 6.5 FTP服务原理及vsfptd的安装、配置(转)

    本篇随笔将讲解FTP服务的原理以及vsfptd这个最常用的FTP服务程序的安装与配置... 一.FTP服务原理 FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文 ...

  3. linux环境中安装ftp服务

    需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum ...

  4. 利用vsftpd在Linux构建安全的FTP服务

    最近在机房搭建Linux环境,需要用到了FTP服务,查看了许多的资料,在这里做一下笔记 一.安装 方法一,使用yum命令安装,需要能够连接外网 # yum install vsftpd 方法二,使用安 ...

  5. Linux系统安装及配置ftp服务

    1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum  -y  install vsftpd 安装,(ubuntu 下使用apt-get instal ...

  6. Linux安装与使用FTP服务-vsftpd

    简介 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行 ...

  7. windows和linux传输小技巧——FTP服务

    目录 一.FTP简介 二.匿名用户访问设置 三.设置本地用户验证访问ftp 3.1.修改匿名用户.本地用户登录的默认根目录 四.使用user_list列表 一.FTP简介 FTP服务--用来传输文件的 ...

  8. Linux(Centos7) 实例搭建 FTP 服务

    本文以 CentOS 7.2 64位系统为例,使用 vsftpd 作为 FTP 服务端,FileZilla 作为客户端.指导您如何在 Linux 云服务器上搭建 FTP 服务. 操作步骤 安装 vsf ...

  9. 在linux中下载安装FTP服务

    一.环境及需求 阿里云服务器的Centos6.9版本,当时需要用到上传服务,所以我想着先搭建一个ftp,比较方便快捷,但是我参考了网上好多的博客,简单安装是没问题,但是时不时还会遇到好多坑,与其说是博 ...

随机推荐

  1. Nodejs介绍及npm工具使用

    一.Nodejs介绍 Nodejs英文网:https://nodejs.org/en/ Nodejs中文网:http://nodejs.cn/ Node.js 是一个基于 Chrome V8 引擎的 ...

  2. ezdpl:完全依赖脚本和ssh的自动化部署方案

    ezdpl是easy deployment的简写,使用简单的ssh和shell脚本来部署.升级.回滚和重新配置linux服务器. 重要提示:警告:这个项目还处于测试过程中,请仔细阅读说明,并且自己承担 ...

  3. 【Linux】unix/Linux常用命令英文全称

    英文全称解释更容易理解 知其然,更要知其所以然 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 显示当前工作路径. su ...

  4. 用java实现一个简单的单用户登陆功能的思路

    引用 所谓“单用户单账户登录”是指:在同一系统中,一个用户名不能在两个地方同时登录. 我们参照 QQ 实现效果:当某账号在 A 处登录后,在未退出的情况下,如果再到 B 处登录,那么,系统会挤下 A ...

  5. spring security基于数据库表进行认证

    我们从研究org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl.class的源码开始 public class JdbcDaoI ...

  6. win7 下vs2008试用版破解

    用过微软的开发套件Visual Studio 2008,如果用的是试用版本,超过90天,就会过期,出现下面这张图片显示的 下面介绍破解的步骤: 1.首先打开控制面板——然后找到卸载或更改程序——然后找 ...

  7. MyISAM引擎表出现“Error 'Incorrect key file for table”

    mysql主从复制中的从库突然出现了警报,sql_thread停止了,show slave status\G;查看 mysql> show slave status\G ; . row **** ...

  8. 通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩

    kubectl scale命令用于程序在负载加重或缩小时进行pod扩容或缩小,我们通过一些实际例子来观察scale命令到底能达到什么效果. 命令行创建一个deployment: kubectl run ...

  9. python入门21 pip安装、更新、卸载第三方包,验证包是否安装成功;pip自身更新升级

    1 安装第三方包 python3自带安装工具pip,且在安装时勾选添加path也会将pip.exe所在目录加入到环境变量(python安装目录\Scripts). 因此安装第三方软件特别简单,打开命令 ...

  10. public class Promise<T>: Thenable, CatchMixin

    public class Promise<T>: Thenable, CatchMixin