Linux网络服务的存储,FTP服务和NFS共享

2024-05-06 20:36

本文主要是介绍Linux网络服务的存储,FTP服务和NFS共享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.存储

1.存储类型

2.应用场景

二.FTP服务

1.FTP工作原理介绍

2.FTP协议的两种模式

3.用户类型

4.匿名用户案例

三.NFS

1.NFS简介

2.NFS服务主要进程

3.NFS特点

4.NFS共享配置文件格式

5.NFS工具

5.1  exportfs

5.2  showmount

5.3  mount.nfs

6.创建文件夹实验


一.存储

1.存储类型

存储类型分为三种

  • 直连式存储:Direct-Attached Storage,简称DAS

  • 网络附加存储:Network-Attached Storage,简称NAS

  • 存储区域网络:Storage Area Network,简称SAN

DAS:存储和主机是直连的,家用电脑,服务和硬盘直连,存储和主机在一台机器上

SAN:有一定距离,主机核存储设备距离先对较远 ,只提供空间不提供文件系统,管理等其他软件服务,只相当于多了一块硬盘

NAS:存储在远程,文件系统也在远程,这块空间,你可以直接访问上面的文件,你只能看到文件,文件共享NFS FTP 等都是NAS

2.应用场景
  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

  • NAS多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

  • SAN则适用于大型应用或数据库系统,缺点是成本高、较为复杂二.

二.FTP服务

1.FTP工作原理介绍

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

20端口:传输真实数据       21端口:传输命令端口

2.FTP协议的两种模式

(1)主动模式(PORT  style):服务器开启20端口主动连接客户端,传递数据

         命令(控制):客户端:随机port   ----> 服务器:21/tcp

         数据:客户端:随机port  <----服务器:20/tcp

过程:客户端随机生成一个端口号,主动去连接服务器的tcp21端口,服务器为主动模式那么服务器会主动开启20端口和客户端相连,然后传输数据

(2)被动模式(PASV  style):服务器开启随即端口,被动等待客户端连接,然后传递数据

         命令(控制):客户端:随机port   ---->  服务器:21/tcp

         数据:客户端:随机port  ----> 服务器:随机port /tcp

过程:客户端随机生成一个端口号,主动去连接服务器的tcp21端口,服务器是被动模式,服务器会产生一个随机的端口号,被动等待客户机来连接后在发送数据

3.用户类型
  • 匿名用户:ftp,anonymous,对应Linux用户ftp

  • 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户:特定服务的专用用户,独立的用户/密码文件

4.匿名用户案例

设置匿名用户访问的ftp服务(最大权限)

进入配置文件/etc/vsftpd/vsftpd.conf   修改配置文件


[root@zxy12 ~]# vim /etc/vsftpd/vsftpd.confanonymous_enable=YES           #开启匿名用户访问,默认开启
write_enable=YES               #开放服务器的写权限,默认已开启
local_umask=022                #设置匿名用户所上传数据的权限掩码(反掩码)
local_enable=YES               #是否允许linux用户登录
anon_upload_enable=YES         #允许匿名用户上传文件,默认已注释,这里需取消注释
anon_mkdir_write_enable=YES    #允许匿名用户创建目录,默认已注释,这里需取消注释
anon_other_write_enbale=YES    #允许删除、重命名、覆盖等操作。这里需要添加
guest_enable=YES 						#所有系统用户都映射成guest用户
guest_username=ftp   					#配合上面选项才生效,指定guest用户
local_root=/ftproot 					#指定guest用户登录所在目录,但不影响匿名用户的登录目录
user_config_dir=/etc/vsftpd/conf.d/ 	#每个用户独立的配置文件目录
chroot_local_user=YES                   #禁锢系统用户,默认NO,即不禁锢
#wu-ftp 日志:默认启用
xferlog_enable=YES                      #启用记录上传下载日志,此为默认值
xferlog_std_format=YES                  #使用wu-ftp日志格式,此为默认值
xferlog_file=/var/log/xferlog           #可自动生成, 此为默认值
#vsftpd日志:默认不启用
dual_log_enable=YES                     #使用vsftpd日志格式,默认不启用
vsftpd_log_file=/var/log/vsftpd.log     #可自动生成, 此为默认值

修改/var/ftp/pub 文件权限为777

匿名访问测试

三.NFS

1.NFS简介

NFS(Network File System 网络文件服务) 文件系统(软件)文件的权限 NFS 是一种基于 TCP/IP 传输的网络文件系统协议,最初由 Sun 公司开发。 通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源 NFS 也是 NAS 存储 设备必然支持的一种协议

软件包:nfs-utils(包括服务器和客户端相关工具,CentOS8 最小化安装时默认没有安装)

相关软件包:rpcbind(必须),tcp_wrappers

Kernel支持:nfs.ko

端口:2049(nfsd), 其它端口由portmap(111)分配

2.NFS服务主要进程

- rpc.nfsd 最主要的NFS进程,管理客户端是否可登录
- rpc.mountd 挂载和卸载NFS文件系统,包括权限管理
- rpc.lockd 非必要,管理文件锁,避免同时写出错
- rpc.statd 非必要,检查文件一致性,可修复文件

说明:CentOS 6 开始portmap进程由rpcbind代替

日志:/var/lib/nfs/

NFS配置文件:

/etc/exports
/etc/exports.d/*.exports

3.NFS特点

(1)采用TCP/IP传输网络文件

(2)安全性低

(3)简单易操作

(4)适合局域网环境

4.NFS共享配置文件格式

/dir   主机1(opt1,opt2)   主机2(opt1,opt2)

格式:共享目录  客户机地址 (权限)
默认选项:(ro,sync,root_squash,no_all_squash)
ro,rw 只读和读写
async 异步,数据变化后不立即写磁盘,先写入到缓冲区中,过一段时间再写入磁盘,性能高,安全性低
sync(1.0.0后为默认)同步,数据在请求时立即写入共享存储磁盘,性能低,安全性高
root_squash (默认)远程root映射为nfsnobody,UID为65534,CentOS8 为nobody,CentOS 7以前的版本为nfsnobody
no_root_squash 远程root映射成NFS服务器的root用户
all_squash 所有远程用户(包括root)都变成nfsnobody,CentOS8 为nobody
no_all_squash (默认)保留共享文件的UID和GID
anonuid和anongid 指明匿名用户映射为特定用户UID和组GID,而非nobody,可配合all_squash使用
5.NFS工具
5.1  exportfs

exportfs:可用于管理NFS导出的文件系统

常见选项:

exportfs  -v       #查看本机所有NFS共享
exportfs  -r        #重读配置文件,并共享目录
exportfs  -a       #输出本机所有共享
exportfs  -au     #停止本机所有共享

示例:

进入/etc/exports  配置文件,编辑配置文件

exportfs  -v       #查看本机所有NFS共享

exportfs  -r        #重读配置文件,并共享目录

exportfs  -au     #停止本机所有共享

5.2  showmount

远端客户查看有哪些共享文件夹

常见用法:

showmount -e hostname  [root@centos7 ~]#showmount -e 192.168.240.11
Export list for 192.168.240.11:
/share *

5.3  mount.nfs

客户端NFS挂载

NFS相关的挂载选项:man 5 nfs

fg #(默认)前台挂载
bg #后台挂载
hard #(默认)持续请求
soft   #非持续请求
intr   #和hard配合,请求可中断
rsize #和wsize 一次读和写数据最大字节数,rsize=32768
_netdev #无网络连接不挂载
vers    #指定版本,客户端centos8默认4.2 ,centos7默认4.1 centos6默认4.0

示例:

将一些文件复制到/share下

临时挂载

主机11 ip地址 :文件夹      主机12的挂载目录

永久挂载

[root@zxy12 ~]# vim   /etc/fstab192.168.240.11:/share   /mnt    nfs    defaults,_netdev    0   0

netdev:如果前面不通就不进行挂载

6.创建文件夹实验

在主机12上/mnt下创建文件夹

编辑主机11配置文件/etc/exprots,增加权限

no_all_squash :不压榨普通用户

root_squash  :压榨其他主机管理员

主机12在/mnt下创建文件夹

yum install nfs-utils.x86_64 -y
#客户端服务端两边都需要安装 nfs软件vim /etc/exports
/share   *
/share   *(rw)
/share   *(rw,no_root_squash)
#不压榨root
/share   *(rw,no_root_squash,all_squash
#都压榨
/nfs1 *(rw,no_root_squash,all_squash,anonuid=1003,anongid=1003)
#指定压榨成统一用户#文件系统需要权限
chmod  777  /share

这篇关于Linux网络服务的存储,FTP服务和NFS共享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/965314

相关文章

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、