大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第13篇文章

文章目录

  • 一. FTP服务的概述
    • 1. ftp的相关概念
    • 2. 常见的FTP服务器
    • 3. VSFTP基本信息
  • 二. FTP两种共工作模式及原理
    • 1) ftp的两种工作模式介绍
    • (1) PORT(主动模式)
    • (2) PASV (被动模式)
  • 四. ftp的安装
    • 1)服务器端安装:
    • 2) 客户端安装:
  • 配置文件结构
  • 服务启动
  • ftp是使用方法
    • 1. 通过浏览器访问或 打开文件夹,在地址栏输入地址:ftp://192.168.1.17/,
    • 2. 使用lftp
  • 总结

一. FTP服务的概述

1. ftp的相关概念

FTP 是File Transfer Protocol文件传输协议)的英文简称,它工作在OSI模型的第七层,TCP模型的第四层上,即传输,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的”三次握手”的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。

FTP服务使用FTP协议(文件传输协议)来进行文件的上传和下载,可以非常方便的进行远距离的文件传输,还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销,并实现相应的安全控制。

2. 常见的FTP服务器

常见FTP服务器:
Windows:Serv-U 、FTP Server、filezilla_server
Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。

我们在这里主要讨论VSFTP

3. VSFTP基本信息

VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特点:
它是一个安全、高速、稳定的FTP服务器。

VSFTP模式: C/S 模式
监听端口:20、21
服务的端口,我们可以从/etc/services文件里查看

vim /etc/services

FTP监听的端口有两个:
端口20:用于传输数据
端口21:用于传输指令

二. FTP两种共工作模式及原理

1) ftp的两种工作模式介绍

ftp协议的连接方式有两种,一种是命令连接,一种是数据连接,而ftp的数据连接模式也有两种,一种是主动模式,一种是被动模式。

FTP会话连接时包含了两个通道,一个叫控制通道,端口号21;一个叫数据通道,端口号20

控制通道:控制通道是和FTP服务器进行沟通的通道,连接FTP,发送FTP指令都是通过控制通道来完成的

数据通道:数据通道是和FTP服务器进行文件传输或者列表的通道

FTP协议中,控制连接均有客户端发起,而数据连接有两种工作方式:PORT方式和PASV方式

1.FTP的PORT(主动模式)和PASV(被动模式)

(1) PORT(主动模式)

PORT中文称为主动模式,工作的原理:

FTP客户端连接到FTP服务器的21端口→发送用户名和密码登录,登录成功后要list列表或者读取数据时→客户端随机开放一个端口(1024以上)→发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口→FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据,原理如下图:

(2) PASV (被动模式)

PASV是Passive的缩写,中文成为被动模式,工作原理:

FTP客户端连接到FTP服务器的21端口→发送用户名和密码登录,登录成功后要list列表或者读取数据时→发送PASV命令到FTP服务器→ 服务器在本地随机开放一个端口(1024以上)→然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输,原理如下图:

四. ftp的安装

1)服务器端安装:
[root@gaosh-17 ~]# yum install vsftpd
2) 客户端安装:
[root@gaosh-17 ~]# yum install lftp

备注:
从CentOS开始,系统镜像中默认没有ftp客户端命令。取而代之的是lftp命令。

Linux客户端:
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp、ftps、http、https、hftp、fish(其中ftps和https需要在编译的时候包含openssl库),llftp的界面非常类似一个Shell,有命令补全、历史记录、允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载、等功能。

配置文件结构

vsftpd的核心文件和目录:

  • /etc/pam.d/vsftpd #基于PAM认证的vsftpd验证配置文件
  • /etc/logrotate.d/vsftpd #日志轮转备份配置文件
  • /etc/rc.d/init.d/vsftpd #vsftpd启动脚本,供server调用
  • /etc/vsftpd #vsftpd的主目录
  • /etc/vsftpd/ftpusers #默认的黑名单
  • /etc/vsftpd/user_list #指定允许使用vsftpd的用户列表文件
  • /etc/vsftpd/vsftpd.conf #vsftpd主配置文件
  • /var/ftp #vsftpd默认共享目录(匿名用户的根目录)
  • /etc/vsftpd/vsftpd_conf_migrate.sh #是vsftpd操作的一些变量和设置脚本

服务启动

开启服务,设置开机启动

[root@gaosh-17 ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@gaosh-17 ~]#

查看监听端口

[root@gaosh-17 ~]# netstat -antup |grep ftp
tcp6       0      0 :::21                   :::*                    LISTEN      3607/vsftpd
[root@gaosh-17 ~]#

注: 这里我们只能看到一个端口,20端口只有当有数据传输的时候才会开启。

ftp是使用方法

1. 通过浏览器访问或 打开文件夹,在地址栏输入地址:ftp://192.168.1.17/,

如图:

2. 使用lftp
[root@gaosh-17 ~]# lftp 192.168.1.17
lftp 192.168.1.17:~> ls
drwxr-xr-x    2 0        0               6 Apr 01 04:55 pub
lftp 192.168.1.17:/>

总结

本文我们主要探讨了FTP的原理及使用,没有涉及到配置文件,下篇文章,我们将探讨配置文件的详细参数。

我是高胜寒,一个在教培行业不忘初心的人。 欢迎留言,与我一起交流。

FTP系列目录:

【Linux】循序渐进学运维-服务篇-FTP的原理及使用

【Linux】循序渐进学运维-服务篇-FTP的原理及使用相关推荐

  1. 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...

  2. 循序渐进学运维-服务篇V1版更新完毕

    我是互联网老辛,关注我吧,给自己每天的进步找一个机会和理由,不要被无效信息淹没,免除知识焦虑 前言 循序渐进学运维系列的基础篇参考: 喜大普奔:<循序渐进学运维>第一阶段完稿 本次完结的是 ...

  3. 【Linux】循序渐进学运维-服务篇-ssh服务入门

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第3篇文章 文章目录 前言 1. 什么是SSH? 2. ssh的连接原理 3. ssh服务的安装 1) OpenSSH的构成 2) 安 ...

  4. 【Linux】循序渐进学运维-服务篇-SCP命令

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第6篇文章 文章目录 前言 scp命令的使用 1. 什么是scp? 2. scp的格式 3. 复制本地文件到远程服务器 4. 拉取远程 ...

  5. 【Linux】循序渐进学运维-服务篇-LNMP环境部署

    文章目录 前言 一. LNMP的介绍 二. 什么是Fast-CGI 三. 部署实战 1. 安装php和mysql 2. nginx和php的结合 a. 编译nginx b. 配置nginx与php的结 ...

  6. 【Linux】循序渐进学运维-服务篇-rysnc+inotify实战

    大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第12篇文章 文章目录 前言 实验环境 1. 配置ssh免秘钥登陆,且配置时间同步 2 . 设置rsync的配置文件,确保两台服务 ...

  7. 【Linux】循序渐进学运维-服务篇-inotify部署及应用

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第11篇文章 文章目录 前言 inotify 出现的原因 什么是inotify? 实验环境 1. 内核: 2. 查看当前系统是否支持安 ...

  8. 【Linux】循序渐进学运维-服务篇-rsync实战

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第10篇文章 文章目录 前言 实验环境 实验步骤 1. 修改配置文件 2. 创建提示文件及用户密码 1) 编辑欢迎信息 2) 创建密码 ...

  9. 【Linux】循序渐进学运维-服务篇-rsync配置文件

    大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第9篇文章 文章目录 前言 一. rsync配置文件举例 二. rsync配置文件详解 1. 配置文件的组成: 2. 常见的全局参数 ...

最新文章

  1. Linux下,如何给PHP安装pdo_mysql扩展
  2. vscode显示中文乱码问题
  3. CentOS HarBor安装与配置
  4. libSVM介绍(二)
  5. 收藏网站制作常用经典css.div.布局.设计实例打包下载
  6. TurnipBit开发板DIY呼吸的吃豆人教程实例
  7. iOS开发-面试总结(十五)
  8. python读取配置文件存在某配置_Python读取ini配置文件的方式
  9. VsCode字体颜色修改和背景图片修改 字体高亮
  10. 什么是javaEE、什么是JavaSE、什么是javaME?
  11. 总结了几款好用的思维导图软件
  12. vue实现输入六位密码支付页面
  13. 怎么用c语言解四元方程,求四元一次方程组的解
  14. js 获取当天23点59分59秒 时间戳 (最简单的方法)
  15. 关于制作Unity动画的时候出现的问题:
  16. vmware连接服务器失败响应时间过长,VMware存储性能问题排错指南
  17. JavaScript的深浅拷贝
  18. 通过Debug命令行清除BIOS Setup密码
  19. 微信小程序分享盆友圈(onShareTimeline)
  20. 关于echart没有数据显示暂无数据

热门文章

  1. android瀑布流列表两边跳,Android Fragment + RecyclerView瀑布流布局
  2. js 直接修改html中文字颜色,怎么修改textarea内字的颜色_html/css_WEB-ITnose
  3. 关于php的求职简历免费下载,PHP程序员求职简历模板下载
  4. [工会网站建设方案-日志]第一阶段 策划:收集、整理、分析
  5. 浅谈母线配电在数据中心的应用以及产品监控选型
  6. J-Link弹出The connected J-Link is defective解决方法
  7. hivesql修改字段类型_Hive SQL常用命令总结,大数据开发人员按需收藏
  8. EBS: AP_BATCHES_ALL
  9. 凯勒姆机器人系统_关于机器人,你了解多少
  10. 初创企业的九个基本数字营销技巧