ftp服务

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

21端口:用于传输指令


2. FTP的作用和模式以及通信方式

2.1 FTP的作用

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

2.2 VSFTP模式


VSFTP全称 (very secure FTP)  
VSFTP模式: C/S模式

2.3 FTP的通信方式


FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
20端口:建立数据连接,并传输文件数据
21端口:建立控制连接,并传输FTP控制指令


3.  FTP工作两种模式(主动、被动)


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

3.1 主动模式的工作原理:


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


3.2 被动模式的工作原理:


 PASV 是 Passive 的缩写,中文成为被动模式

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


 
 
注:以上的说明主动和被动,是相对于的 FTP server 端而判断,如果 server 去连接client开放的端口,说明是主动的,相反,如果 client去连接server开放的端口,则是被动。

主动相当于服务器拷贝信息到主机

被动相当于主机拷贝到服务器(可能10个主机同时发给服务端,需要一个代理端口)


总结:

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

扩展:
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
windows: Serv-U、FTP server、filezilla server
linux:ProFTPD             重点:Very Secure FTP(vsftp)工作环境中都用这个FTP服务 
TFTP  69  简单FTP
ssh SFTP 文件传输

4.  搭建和配置FTP服务

4.1 安装前准备工作


4.1.1 关闭防火墙和增强型安全功能

systemctl stop firewalld    #关闭防火墙
systemctl disable firewalld  开机自关闭防火墙 
setenforce 0         #临时增强型安全功能

4.1.2查看安装信息

yum info vsftpd 
或 
rpm -q vsftp

#如没有安装,使用yum 安装

yum install -y vsftpd

4.1.3开启FTP服务 

systemctl start vsftpd
systemctl enable vsftpd     #开机自启FTP服务

4.1.4 切换服务配置目录 并且做备份

cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

4.2 匿名用户案例


设置匿名用户访问的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子目录设置最大权限,以便匿名用户.上传数据


####匿名访问测试
在Windows系统打开开始菜单,输入cmd 命令打开命令提示符

#建立ftp连接
ftp 192.168.190.10
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd          #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls           #查看当前目录
ftp> cd pub       #切换到pub目录
ftp> get 文件名    #下载文件到当前Windows本地目录
ftp> put 文件名   #上传文件到ftp目录
ftp> quit         #退出

在Windows系统打开开始菜单,输入cmd 命令打开命令提示符

在xshell里的 /var/ftp/pub 添加 yss.txt 文件

下载文件到当前Windows本地目录

 cd /var/ftp/pub/ 才有权限

put 文件名      上传文件到ftp目录

4.3  设置用户模式登录


设置本地用户验证访问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_write_enable=YES  注释    
#anon_other_write_enable=YES  注释

重启服务
systemctl restart vsftpd

ftp 192.168.190.10

ftp://zhangsan@192.168.190.10

cd /home/zhangsan  创建zhangsan.txt

下载zhangsan.txt文件到当前Windows本地目录

4.4 fz工具上传下载

左边是本地,右边是服务器

上传本地文件到服务器

下载文件到桌面

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

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

4.6使用user_list用户列表文件

vim /etc/vsftpd/user_list
//末尾添加zhangsan用户
zhangsan


vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES    #启用user_list用户列表文件
userlist_deny=NO       #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单,禁用

把zhangsan列入黑名单

无法登录用户zhangsan

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/782480.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列

本系列目录 《带你自学大语言模型》系列部分目录及计划,完整版目录见:带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型(科普向) 第一章 走进大语言模型 1.1 从图灵机到GPT,人工智能经历了什么&#xff1…

【3GPP核心网】【5G】精讲5G核心网系统架构主要特征

目录 前言 1. 5G核心网系统架构主要特征 1.1 5G核心网与4G核心网EPC区别 1.2 5G核心网系统架构主要特征 2. 5G网络逻辑架构 2.1 新型基础设施平台 2.2 逻辑架构 前言 首先需要理解核心网的角色定位,作为移动通信网络的核心部分,核心网起着承上启下的作用…

阶段三:项目开发---大数据开发运行环境搭建:任务3:安装配置Hadoop集群

任务描述 知识点:安装配置Hadoop 重 点: 安装配置Hadoop 难 点:无 内 容: Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威…

JS进阶-作用域

学习目标: 掌握作用域 学习内容: 作用域局部作用域全局作用域作用域链JS垃圾回收机制拓展-JS垃圾回收机制-算法说明闭包变量提升 作用域: 作用域规定了变量能够被访问的"范围",离开了这个"范围"变量便不能被…

批量爬取B站网络视频信息

使用XPath爬取B站视频链接等相关信息 分析B站html框架获取内容完整代码 对于B站,目前网上的爬虫大多都是使用通过解析服务器的响应来爬取想要的内容,下面我们通过使用XPath来爬取B站上一些想要的信息 此次任务我们需要对B站搜索到的关键字,并…

本地多卡(3090)部署通义千问Qwen2-72B大模型提速实践:从龟速到够用

最近在做文本风格转化,涉及千万token级别的文本。想用大模型转写,在线的模型一来涉及数据隐私,二来又不想先垫钱再找报销。本地的7-9B小模型又感觉效果有限,正好实验室给俺配了4卡3090的机子,反正也就是做个推理&#…

Python falsk 接口挂载 步骤

Python falsk 接口挂载 步骤 1.首先要有自己独立的python环境,因为如果和别人共用环境的话,会有依赖包冲突的情况 2.找到python.exe的安装路径 3.CMD切换到该路径下 4.执行指令activate,进入到专属的python环境 5.然后执行指令 pip freeze > re.tet…

CentOS 7遗忘了root密码怎么办?

正文共:666 字 12 图,预估阅读时间:1 分钟 说来也巧,突然发现使用KVM在部署CentOS时(笔记本电脑安装CentOS系统),会有一个神奇的现象,还不是偶然出现的,在最近的三四次部…

【ComfyUI节点】扰动注意力引导Perturbed Attention Guidance

扰动注意力引导 Perturbed Attention Guidance GitHub - KU-CVLAB/Perturbed-Attention-Guidance: Official implementation of "Perturbed-Attention Guidance" 按照官方介绍,扰动注意力指导显著提高了扩散模型的样本质量,而无需外部条件&am…

测试用例编写与管理流程

hello,大家好,我是一名测试开发工程师,至今已在自动化测试领域深耕9个年头,现已将本人实战多年的多终端自动化测试框架【wyTest】开源啦,在接下来的一个月里,我将免费指导大家使用wyTest,请大家…

14-Django项目--文件上传-Excel

目录 前端 路由 视图函数 前端 <div class"modal-body"><form method"post" enctype"multipart/form-data" action"/pretty/asset/">{% csrf_token %}<input type"file" name"excel"><bu…

Leetcode3194. 最小元素和最大元素的最小平均值

Every day a Leetcode 题目来源&#xff1a;3194. 最小元素和最大元素的最小平均值 解法1&#xff1a;排序遍历 将数组 nums 排序后&#xff0c;利用双指针计算每一对 (minElement maxElement) / 2&#xff0c;最小值即为答案。 代码&#xff1a; /** lc appleetcode.cn …

Spring源码十七:Bean实例化入口探索

上一篇Spring源码十六&#xff1a;Bean名称转化我们讨论doGetBean的第一个方法transformedBeanName方法&#xff0c;了解Spring是如何处理特殊的beanName&#xff08;带&符号前缀&#xff09;与Spring的别名机制。今天我们继续往方法下面看&#xff1a; doGetBean 这个方法…

AI 大模型系统实战

AI 大模型是什么&#xff1f; 维基百科对基础模型的定义是这样的&#xff0c;基础模型是一种大型机器学习模型&#xff0c;通常在大量数据上进行大规模训练&#xff08;通过自监督学习或半监督学习&#xff09;&#xff0c;以使它可以适应各类下游任务。因此&#xff0c;它需要…

数学系C++ 类与对象 STL(九)

目录 目录 面向对象&#xff1a;py&#xff0c;c艹&#xff0c;Java都是,但c是面向过程 特征&#xff1a; 对象 内敛成员函数【是啥】&#xff1a; 构造函数和析构函数 构造函数 复制构造函数/拷贝构造函数&#xff1a; 【……】 实参与形参的传递方式&#xff1a;值…

【Java】了解异常

初始异常 我们平时应该已经接触过一些 “异常” 了&#xff0c;这里列举一些例子。 算术异常&#xff1a; 数组下标越界异常&#xff1a; 访问空指针异常&#xff1a; 所谓异常指的就是程序在 运行时 出现错误时通知调用者的一种机制。 异常的基本用法 捕获异常 try{ 有可能…

知识的向量表示

1、one-hot表示&#xff0c;空间太大 2、bag词袋模型&#xff0c;无法表示词的语义 3、词的语义由什么决定&#xff1f;词由他的上下文决定&#xff1f;分布式语义 4、CBow&#xff0c;通过前面几个词和后面几个词&#xff0c;预测中间几个词 5、skip-gram&#xff0c;通过…

【Python】已解决:(MongoDB安装报错)‘mongo’ 不是内部或外部命令,也不是可运行的程序

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例及解决方案五、注意事项 已解决&#xff1a;&#xff08;MongoDB安装报错&#xff09;‘mongo’ 不是内部或外部命令,也不是可运行的程序 一、分析问题背景 在安装和配置MongoDB时&#xff0c;有…

数据库逆向工程工具reverse_sql

reverse_sql 是一个用于解析和转换 MySQL 二进制日志&#xff08;binlog&#xff09;的工具。它可以将二进制日志文件中记录的数据库更改操作&#xff08;如插入、更新、删除&#xff09;转换为反向的 SQL 语句&#xff0c;以便对系统或人为产生的误操作进行数据回滚和恢复。 *…

Python28-9 XGBoost算法

XGBoost&#xff08;eXtreme Gradient Boosting&#xff0c;其正确拼写应该是 "Extreme Gradient Boosting"&#xff0c;而XGBoost 的作者在命名时故意使用了不规范的拼写&#xff0c;将“eXtreme”中的“X”大写&#xff0c;以突出其极限性能和效率&#xff09;是一…