网络文件共享

存储类型分三类

  • 直连式存储:DAS
  • 存储区域网络:SAN
  • 网络附加存储:NAS

三种存储架构的应用场景

  • DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业
  • SAN多适用于文件服务器,用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低
  • NAS则适用于大型应用或数据库系统,缺点是成本高、较为复杂

FTP文件传输协议

FTP简介

FTP是一种用于在计算机网络上传输文件的标准协议,基于C/S结构。
通过FTP,用户可以在客户端和服务器之间进行文件的上传(上传到服务器)和下载(从服务器下载到本地计算机)操作

FTP工作原理

主动模式:

首先客户机会随机产生一个端口号主动去连接服务器的tcp21端口,如果服务器是主动模式那么服务器会主动开启20端口和客户端相连,然后在传数据

被动模式:

首先客户机会随机产生一个端口号主动去连接服务器的tcp21端口,如果服务器是被动模式,那么服务器会随机产生一个端口号,被动等待客户机来连接再发送数据

协议:tcp

端口号:20 21 21是命令端口 20是数据端口

ftp软件:vsftpd filezilla

用户认证

  • 匿名用户:ftp,anonymous
  • 系统用户:linux用户在 /etc/passwd 密码/etc/shadow
  • 虚拟用户:只可以用来登录ftp

vsftp

[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl status vsftpd
[root@localhost ~]# rpm -qc vsftpd 
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf               #配置文件

服务端安装vsftp

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# systemctl start vsftpd

客户端连接服务端

[root@localhost ~]# ftp 192.168.118.20
Connected to 192.168.118.20 (192.168.118.20).
220 (vsFTPd 3.0.2)
Name (192.168.118.20:root): 

修改默认命令端口号

#服务端
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YESlisten_port=227   #修改端口号为227[root@localhost ~]# systemctl restart vsftpd     #重启服务
#客户端
[root@localhost ~]# ftp 192.168.118.20    #修改端口号后不加端口号会拒绝连接
ftp: connect: 拒绝连接
ftp> 
[root@localhost ~]# ftp 192.168.118.20 227
Connected to 192.168.118.20 (192.168.118.20).
220 (vsFTPd 3.0.2)
Name (192.168.118.20:root):

NFS

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

NFS原理

请添加图片描述

NFS优势

节省本地存储空间,将常用的数据如:/home目录,存放扎起NFS服务器上

通过网络访问,将减少本地磁盘的使用率

NFS软件相关

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

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

yum install -y nfs-utils rpcbind #安装服务

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

RPCbind 111

NFS相关文件位置

日志

/var/lib/nfs

配置文件

/etc/exports

/etc/exports.d/*.exports

NFS共享配置文件

#文件路径
/etc/eports
#文件内容
/dir     主机1(opt,opt2)
共享文件夹        域名、ip....vim /etc/exports
...
共享文件夹     允许访问的主机[权限]     #添加的内容

exportfs

exportfs是一个用于在 Linux 操作系统上管理 NFS(Network File System)导出的命令

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

showmount

showmount -a显示所有共享的目录
showmount -e 服务器主机名或ip地址显示特定NFS服务器上的共享目录
showmount -l仅显示挂载点的主机名或ip地址

模拟实现NFS

#服务端
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install nfs-utils rpcbind -y
[root@localhost ~]# mkdir /test
[root@localhost ~]# touch /test/t1
[root@localhost ~]# vim /etc/exports
/test 192.168.118.0/24
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# showmount -e 192.168.118.20
Export list for 192.168.118.20:
/test 192.168.118.0/24
[root@localhost ~]# exportfs -v
/test         	192.168.118.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)#客户端
[root@localhost ~]# mount 192.168.118.20:/test /mnt
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
t1

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【字符串】Leetcode 最长回文子串

题目讲解 5. 最长回文子串 算法讲解 dp[i][j]表示i~j这一段区间的子串是否是回文 当s[i] s[j]的时候&#xff0c;此时是有三种情况的&#xff1a; ij说明一个字符肯定是回文 i1 j也说明一个字符是回文 i1 < j说明需要判断[i1, j-1]这一段区间是否是回文 此时我们就可以…

leetCode75. 颜色分类

leetCode75. 颜色分类 题目思路 代码 class Solution { public:void sortColors(vector<int>& nums) {for(int i 0, j 0, k nums.size() - 1; i < k;){if(nums[i] 0) swap(nums[i],nums[j]);else if(nums[i] 2) swap(nums[i],nums[k--]);else if(nums[i] …

【redis】redis持久化分析

目录 持久化Redis持久化redis持久化的方式持久化策略的设置1. RDB&#xff08;快照&#xff09;fork(多进程)RDB配置触发RDB备份自动备份手动执行命令备份&#xff08;save | bgsave&#xff09;flushall命令主从同步触发动态停止RDB RDB 文件恢复验证 RDB 文件是否被加载 RDB …

怎么口语外教一对一课程?这篇文章告诉你答案!

怎么口语外教一对一课程&#xff1f;在当今全球化的时代&#xff0c;英语口语能力已经成为许多人追求的重要技能。为了满足这一需求&#xff0c;市场上涌现出了许多提供一对一口语外教课程的软件。这些软件不仅提供了与母语为英语的外教进行实时交流的机会&#xff0c;还通过互…

【企业动态】东胜物联正式加入EnOcean联盟,携手为智慧楼宇及能源管理提供更稳定的硬件解决方案

2024年4月&#xff0c;东胜物联&#xff08;Dusun&#xff09;宣布正式加入EnOcean联盟。EnOcean联盟是一个由来自建筑行业的400多家公司组成的全球性组织。它以EnOcean无线标准&#xff08;ISO/IEC 14543-3-10/11&#xff09;为基础&#xff0c;为可持续建筑自动化建立了创新的…

拼多多商品详情API返回值全解析

关键数据指标 成长层级&#xff1a;根据店铺近30天交易额、店铺领航员&#xff0c;综合评估得出店铺所处的成长层级 店铺综合体验星级&#xff1a;以领航员综合分为数据基础&#xff0c;同时结合店铺活跃度、行业特色服务(特色服务要求根据行业特色调整)&#xff0c;形成的店铺…

网红隋总揭秘:高效实施人力RPO项目的秘诀

随着企业对于招聘流程效率和专业性的追求日益提升&#xff0c;RPO(招聘流程外包)项目逐渐成为人力资源领域的热门话题。隋总凭借丰富的行业经验和独特的视角&#xff0c;分享了关于如何高效实施人力RPO项目的秘诀。 一、明确目标&#xff0c;找准定位 在启动RPO项目之前&#x…

【源码+文档+调试教程】基于微信小程序的电子购物系统的设计与实现

摘 要 由于APP软件在开发以及运营上面所需成本较高&#xff0c;而用户手机需要安装各种APP软件&#xff0c;因此占用用户过多的手机存储空间&#xff0c;导致用户手机运行缓慢&#xff0c;体验度比较差&#xff0c;进而导致用户会卸载非必要的APP&#xff0c;倒逼管理者必须改…

机器学习——3.梯度计算与梯度下降

基本概念 梯度的本意是一个向量&#xff08;矢量&#xff09;&#xff0c;表示某一函数在该点处的方向导数沿着该方向取得最大值&#xff0c;即函数在该点处沿着该方向&#xff08;此梯度的方向&#xff09;变化最快&#xff0c;变化率最大&#xff08;为该梯度的模&#xff0…

多线程详解

目录 1.线程的概念 2.进程和线程的区别 3.线程操作 4.线程互斥 5.可重入和线程安全 6.常见锁的概念 7.线程同步 1.线程的概念(lwp) 1.1 线程概念 (1) 线程是cpu调度的基本单位(轻量化的进程), 和进程不同的是进程是承担系统资源的基本实体. (2) 一个进程里面至少有一个线…

10.k8s的附加组件(coreDNS组件)

目录 一、概念 二、查看k8s集群的coreDNS的IP地址 三、验证 一、概念 service发现是k8s中的一个重要机制&#xff0c;其基本功能为&#xff1a;在集群内通过服务名对服务进行访问&#xff0c;即需要完成从服务名到ClusterIP的解析。k8s主要有两种service发现机制&#xff1a;…

mars3d的config,json文件配置谷歌影像地图的tilingScheme属性

mars3d的config,json文件配置tilingScheme属性说明&#xff1a; 1.cesium加载谷歌影像地图的时候需要配置tilingScheme参数&#xff0c;如以下代码&#xff1a; var viewer new Cesium.Viewer("cesiumContainer", { animation: false, //是否显示动画控件 baseLaye…