[Linux] 网络文件共享服务
一、存储类型
存储类型可分为三类:DAS(直连式存储),NAS(网络附加存储),SAN(存储区域网络)。
1.1 DAS
定义:
DAS是指直连存储,即直连存储,可以理解为本地文件系统。这种设备直接连接到计算机的主板总线上,而计算机可以将其连接到常见的硬盘、U盘等块de上,这种设备很难共享。
特征:
DAS具有较低的购置成本和简单的配置。 使用过程与使用本地硬盘没有太大区别。 服务器要求只是一个外部SCSI端口,这使得它对小型企业非常有吸引力。
缺点:
(1)数据备份操作复杂。
(2)服务器本身很容易成为系统瓶颈。
(3)服务器出现故障,无法再访问数据。
(4)在多台服务器的系统中,设备分散,管理不方便。
1.2 NAS
定义:
NAS意味着网络区域存储,即它是network-connected.storage.It 通常,您使用本地存储空间与其他主机共享,并且通常通过C/S进行通信architecture.It 实现文件级共享。 计算机通常将共享设置识别为文件系统,其文件服务器管理锁以实现并发访问。网络文件系统以文件模块的形式共享,运行在应用层上。 常见的NAS是NFS和CIFS(FTP).
特征:
NAS实际上是一个带有瘦服务器的存储设备,这个瘦服务器实际上是一个网络文件服务器。NAS设备直接连接到TCP/IP网络,网络服务器通过TCP/IP访问管理数据network.As 一个瘦服务器系统,NAS是一个带有瘦服务器的存储设备,这个瘦服务器实际上是一个网络文件服务器。 它易于安装和部署,易于管理和使用。
缺点:
(1)由于存储的数据是通过网络传输的,容易出现数据泄露等安全问题。
(2)存储的数据通过网络传输,因此容易受到网络上其他流量的影响。 如果网络上有其他较大的数据流量,则对系统的性能造成严重影响。
(3)存储可能会对系统效率产生严重影响,因为它只能作为文件进行访问,而不能像正常文件系统中那样作为物理数据块进行访问。 例如,大型数据库不能使用nas作为存储方案。
1.3 SAN
定义:
SAN是运行在内核中的存储区域网络, 将其模拟为SCSI总线以使用传输网络。 每个主机的网卡对应SCSI总线中的一个发起端,服务器对应1个或多个目标。 要通过FC或TCP/IP封装SCSI数据包,它实现了块级共享,通常被识别为块设备,但需要特殊的锁管理软件来实现多主机并发访问。
特征:
SAN实际上是专门为独立于TCP/IP的存储而建立的专用网络network.At 目前,常见的SAN提供从2gb/S到4gb/S的传输速率。与此同时,由于SAN网络独立于数据网络而存在,因此访问速度非常快。 此外,SAN通常使用高端RAID阵列,因此SAN的性能在一些专业的网络存储技术中脱颖而出。由于SAN基于专用网络,因此非常方便,因为它具有非常高的可扩展性,无论您是要向SAN系统添加一定量的存储空间,还是要向使用存储空间的多个服务器
缺点:
(1)需要另建光纤网络,异地扩展比较困难。 (2)无论是SAN阵列机柜还是SAN所需的光纤通道交换机,价格都非常高。
1.4 应用场景
DAS相对较旧,但它非常适合数据量低,磁盘访问速度高的小型企业。
NAS主要适用于存储非结构化数据的文件服务器。 它受以太网速度的限制,但部署灵活,成本低。
SAN适用于大型应用和数据库系统,但缺点是成本更高,更复杂。
二、ftp协议
2.1 简介
FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。
ftp默认使用TCP协议的20、21端口与客户端进行通信
20端口用于建立数据连接,并传输文件数据
21端口用于建立控制连接,并传输FTP控制命令
2.2 ftp的数据连接模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接
三、vsftpd的安装和配置
3.1 svftpd安装
rpm -qc vsftpd //检查vsftpd安装包是否存在,存在即不需要安装yum install -y vsftpd //yum 安装vsftpd
cd /etc/vsftpd
ls //切换到安装好vsftpd目录下查看文件

3.2 vsftpd中配置的作用
vsftpd初始化全局配置
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启匿名用户访问。默认已开启
local_enable=YES #允许系统用户进行访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。

四、FTP实验
本次实验运用ftp服务,模拟实际运用场景,分别针对匿名用户访问,本地用户访问不同的管控方式和权限设置。实现安全场景下,也能进行双方传输的操作环境
4.1 实验一 :匿名用户访问本机
简单设置,让匿名用户拥有访问本机和各种权限
anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES #允许删除、重命名、覆盖等操作。需添加
修改配置vim /etc/vsftpd/vsftpd.conf

重启vsftpd服务,关闭安全防护
[root CXK /etc/vsftpd] systemctl start vsftpd
[root CXK /etc/vsftpd] systemctl stop firewalld
[root CXK /etc/vsftpd] setenforce 0
[root CXK /etc/vsftpd]
测试1 获取文件
本访问端放入一个a.txt的文件

客户端获取文件

测试2 写入文件
为了发送的畅通,可以修改一下匿名用户访问的根目录权限
chmod 777 /var/ftp/pub/
访问端准备一个文件,写入信息



存在的缺点:匿名用户权限过高,存在安全隐患
4.2 设置本地用户验证访问ftp
4.2.1 设置本地用户可以访问ftp,禁止匿名用户登录
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)

systemctl restart vsftpd

安全隐患:本地用户访问可以随意切换目录

4.2.2 对本地用户访问切换目录进行限制
添加切换目录的限制配置 :
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限

除此之外我们还能修改ftp服务访问时,宿主家目录,让它的家目录成为我们指定的地方
同样是修改 vsftpd.conf (在响应的版块添加即可,保存退出重启服务)
vim /etc/vsftpd/vsftpd.conf
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对系统用户
4.3 windows 可以通过windows的方式访问Linux主机端


总结:
1. ftp的服务中有两个端口,一个20用于数据连接,一个21用户ftp传输控制指令。同时它使用的是TCP传输协议
2. ftp运用中可以又匿名登录和本地用户登录。匿名登录,没有密码限制,无法看清来访者,存在安全风险比较高。本地用户登录,也可以通过修改vsftp.conf 限制其切换目录。
相关文章:
[Linux] 网络文件共享服务
一、存储类型 存储类型可分为三类:DAS(直连式存储),NAS(网络附加存储),SAN(存储区域网络)。 1.1 DAS 定义: DAS是指直连存储,即直连存储,可以理解为本地文…...
二十七、W5100S/W5500+RP2040树莓派Pico<iperf 测速示例>
文章目录 1 前言2 简介2 .1 什么是网络测速技术?2.2 网络测速技术的优点2.3 网络测速技术数据交互原理2.4 网络测速应用场景 3 WIZnet以太网芯片4 示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言…...
非常经典的一道SQL报错注入题目[极客大挑战 2019]HardSQL 1(两种解法!)
题目环境: 没错,又是我,这群该死的黑客竟然如此厉害,所以我回去爆肝SQL注入,这次,再也没有人能拿到我的flag了 做了好多这个作者出的题了,看来又要上强度了 判断注入类型 username:a…...
创建一个用户test且使用testtab表空间及testtemp临时表空间并授予其权限,密码随意
文章目录 1、连接到数据库2、创建表空间3、创建用户4、授予权限5、测试 1、连接到数据库 sqlplus / as sysdba2、创建表空间 创建testtab表空间 CREATE TABLESPACE testtab DATAFILE /u01/app/oracle/oradata/orcl/testtab.dbf SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE …...
Linux网络应用层协议之http/https
文章目录 目录 一、http协议 1.URL 2.http协议格式 3.http的方法 4.http的状态码 5.http常见header 6.实现一个http服务器 二、https协议 1.加密 2.为什么要加密 3.常见的加密方式 对称加密 非对称加密 4.https的工作过程探究 方案1 只使用对称加密 方案2 只使…...
LLM(四)| Chinese-LLaMA-Alpaca:包含中文 LLaMA 模型和经过指令微调的 Alpaca 大型模型
论文题目:《EFFICIENT AND EFFECTIVE TEXT ENCODING FOR CHINESE LL AMA AND ALPACA》 论文地址:https://arxiv.org/pdf/2304.08177v1.pdf Github地址:https://github.com/ymcui/Chinese-LLaMA-Alpaca 一、项目介绍 通过在原有的LLaMA词…...
虚拟机CentOS 8 重启后不能上网
情况说明:原本虚拟机是可以上网的,然后嘚一下,重启后,连接不上网络,完了,上网查找一堆质料,我的连接方式是桥接模式(复制物理网络连接状态)。 好,有人说是vmn…...
让AI拥有人类的价值观,和让AI拥有人类智能同样重要
编者按:2023年是微软亚洲研究院建院25周年。25年来,微软亚洲研究院探索并实践了一种独特且有效的企业研究院的新模式,并以此为基础产出了诸多对微软公司和全球社会都有积极影响的创新成果。一直以来,微软亚洲研究院致力于创造具有…...
《C++避坑神器·十七》找到程序崩溃Bug的一个实用方法:dump调试
在检查程序报错除了断点调试,生成log日志,还有种直接的方法,调试dump文件,该调试方法可以在运行exe程序崩溃时进行调试。文章末尾有下载链接。 头文件 #include "crashdump.h"在mainWindow或主程序最开始处加下面代码…...
ROS stm32 CAN通信
文章目录 运行环境:原理1.1 ros中的代码1)socketcan_bridge2)测试的ros-python包3)keil5中数据解析4)USB-CAN连接5)启动指令 运行环境: ubuntu18.04.melodic STM32:DJI Robomaster C板 ROS:18.04 硬件:USB-CAN&#x…...
简单地聊一聊Spring Boot的构架
前言 本文小编将详细解析Spring Boot框架,并通过代码举例说明每个层的作用。我们将深入探讨Spring Boot的整体架构,包括展示层、业务逻辑层和数据访问层。通过这些例子,读者将更加清晰地了解每个层在应用程序中的具体作用。通过代码实例&…...
【算法】复习搜索与图论
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙请不要相信胜利就像山坡上的蒲公英一样唾手…...
【KCC@南京】KCC南京数字经济-开源行
一场数字经济与开源的视听盛宴,即将于11月26日,在南京举办。本次参与活动的有: 庄表伟(开源社理事执行长、天工开物开源基金会执行副秘书长)、林旅强Richard(开源社联合创始人、前华为开源专家)…...
苍穹外卖-day11
苍穹外卖-day11 课程内容 Apache ECharts营业额统计用户统计订单统计销量排名Top10 功能实现:数据统计 数据统计效果图: 1. Apache ECharts 1.1 介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生…...
git_07_协同开发
1.作业回复 干的什么事?动了哪些东西? 文档作业xxx文档已编写完成,相关svn目录:xxx/xxx/xxx代码作业(Git代码提交规范)具体什么问题,影响范围,是否已经解决: feat(xxx):改动描述 perf(xxx):改动…...
对比国内主流开源 SQL 审核平台 Yearning vs Archery
Yearning, Archery 和 Bytebase 是目前国内最主流的三个开源 SQL 审核平台。其中 Yearning 和 Archery 是社区性质的项目,而 Bytebase 则是商业化产品。通常调研 Bytebase 的用户也会同时比较 Yearning 和 Archery。 下面我们就来展开对比一下 Yearning 和 Archery…...
Mistral 7B 比Llama 2更好的开源大模型 (三)
Mistral 7B 比Llama 2更好的开源大模型 Mistral 7B是一个70亿参数的语言模型,旨在获得卓越的性能和效率。Mistral 7B在所有评估的基准测试中都优于最好的开放13B模型(Llama 2),在推理、数学和代码生成方面也优于最好的发布34B模型(Llama 1)。Mistral 7B模型利用分组查询注…...
关于 Git 你了解多少?
1. 什么是Git? Git 是一个版本控制系统,由林纳斯托瓦兹创建。它旨在管理项目代码的更改,以便团队成员可以协作开发和维护代码库。Git 可以让用户跟踪代码的更改、回滚错误的更改、合并代码等。Git 还具有分支和标签的功能,使得团队成员可以在…...
关于Elasticsearch的自动补全、数据同步和集群,以下是相关的知识点
1. 自动补全:Elasticsearch可以通过自动补全功能帮助用户快速查找相关的内容。它使用了一种称为“completion suggester”的功能来实现自动补全,是一种基于前缀的建议查询,可以在用户输入时提供实时建议。 2. 数据同步:Elasticse…...
linux套接字-Socket
1.概念 局域网和广域网 局域网:局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网:又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。IPInternet Protocol)&#…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
