【Linux】循序渐进学运维-服务篇-FTP的原理及使用
大家好,我是高胜寒,本文是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的原理及使用相关推荐
- 【Linux】循序渐进学运维-服务篇-FTP服务配置文件详解
大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第14篇文章 文章目录 前言 ftp配置文件详解 1. 常见默认配置参数 2. 常见参数的含义 配置文件使用举例 1. 创建本地用 ...
- 循序渐进学运维-服务篇V1版更新完毕
我是互联网老辛,关注我吧,给自己每天的进步找一个机会和理由,不要被无效信息淹没,免除知识焦虑 前言 循序渐进学运维系列的基础篇参考: 喜大普奔:<循序渐进学运维>第一阶段完稿 本次完结的是 ...
- 【Linux】循序渐进学运维-服务篇-ssh服务入门
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第3篇文章 文章目录 前言 1. 什么是SSH? 2. ssh的连接原理 3. ssh服务的安装 1) OpenSSH的构成 2) 安 ...
- 【Linux】循序渐进学运维-服务篇-SCP命令
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第6篇文章 文章目录 前言 scp命令的使用 1. 什么是scp? 2. scp的格式 3. 复制本地文件到远程服务器 4. 拉取远程 ...
- 【Linux】循序渐进学运维-服务篇-LNMP环境部署
文章目录 前言 一. LNMP的介绍 二. 什么是Fast-CGI 三. 部署实战 1. 安装php和mysql 2. nginx和php的结合 a. 编译nginx b. 配置nginx与php的结 ...
- 【Linux】循序渐进学运维-服务篇-rysnc+inotify实战
大家好,我是互联网老辛,本文是Linux运维-循序渐进学运维-服务篇的第12篇文章 文章目录 前言 实验环境 1. 配置ssh免秘钥登陆,且配置时间同步 2 . 设置rsync的配置文件,确保两台服务 ...
- 【Linux】循序渐进学运维-服务篇-inotify部署及应用
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第11篇文章 文章目录 前言 inotify 出现的原因 什么是inotify? 实验环境 1. 内核: 2. 查看当前系统是否支持安 ...
- 【Linux】循序渐进学运维-服务篇-rsync实战
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第10篇文章 文章目录 前言 实验环境 实验步骤 1. 修改配置文件 2. 创建提示文件及用户密码 1) 编辑欢迎信息 2) 创建密码 ...
- 【Linux】循序渐进学运维-服务篇-rsync配置文件
大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-服务篇的第9篇文章 文章目录 前言 一. rsync配置文件举例 二. rsync配置文件详解 1. 配置文件的组成: 2. 常见的全局参数 ...
最新文章
- Linux下,如何给PHP安装pdo_mysql扩展
- vscode显示中文乱码问题
- CentOS HarBor安装与配置
- libSVM介绍(二)
- 收藏网站制作常用经典css.div.布局.设计实例打包下载
- TurnipBit开发板DIY呼吸的吃豆人教程实例
- iOS开发-面试总结(十五)
- python读取配置文件存在某配置_Python读取ini配置文件的方式
- VsCode字体颜色修改和背景图片修改 字体高亮
- 什么是javaEE、什么是JavaSE、什么是javaME?
- 总结了几款好用的思维导图软件
- vue实现输入六位密码支付页面
- 怎么用c语言解四元方程,求四元一次方程组的解
- js 获取当天23点59分59秒 时间戳 (最简单的方法)
- 关于制作Unity动画的时候出现的问题:
- vmware连接服务器失败响应时间过长,VMware存储性能问题排错指南
- JavaScript的深浅拷贝
- 通过Debug命令行清除BIOS Setup密码
- 微信小程序分享盆友圈(onShareTimeline)
- 关于echart没有数据显示暂无数据
热门文章
- android瀑布流列表两边跳,Android Fragment + RecyclerView瀑布流布局
- js 直接修改html中文字颜色,怎么修改textarea内字的颜色_html/css_WEB-ITnose
- 关于php的求职简历免费下载,PHP程序员求职简历模板下载
- [工会网站建设方案-日志]第一阶段 策划:收集、整理、分析
- 浅谈母线配电在数据中心的应用以及产品监控选型
- J-Link弹出The connected J-Link is defective解决方法
- hivesql修改字段类型_Hive SQL常用命令总结,大数据开发人员按需收藏
- EBS: AP_BATCHES_ALL
- 凯勒姆机器人系统_关于机器人,你了解多少
- 初创企业的九个基本数字营销技巧