首页 > 系统相关 >Linux NFS共享服务

Linux NFS共享服务

时间:2022-10-22 23:37:47浏览次数:66  
标签:rpcbind squash NFS Linux nfs 共享 root

导图

1.NFS(Network File System 网络文件服务)

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

NFS 它是文件系统,是操作系统内核来管理的

[root@localhost ~]#ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/
binfmt_misc.ko.xz  ceph    dlm    fat      gfs2   lockd          nfs_common  overlayfs  udf
btrfs              cifs    exofs  fscache  isofs  mbcache.ko.xz  nfsd        pstore     xfs
cachefiles         cramfs  ext4   fuse     jbd2   nfs            nls         squashfs

NAS存储:

NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,通过使用 NFS 协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源。(远端过程调用:自己没有这种功能,调用别人的功能) NFS 也是 NAS 存储 设备必然支持的一种协议 以完成远 程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务, 前者用于 NFS 共享发布和访问,后者用于 RPC 支持。 手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

特点:

  • 采用TCP/IP传输网络文件
  • 安全性低
  • 简单易操作
  • 适合局域网环境

2.NFS原理

 

 

3.NFS软件介绍

软件包:nfs-utils(包括服务器端和客户端)

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

nfs端口号2049 RPC端口号111

NFS服务主要进程:

  • rpc.nfsd 最主要的NFS进程,管理客户端是否可登录

  • rpc.mountd 挂载和卸载NFS文件系统,包括权限管理

  • rpc.lockd 非必要,管理文件锁,避免同时写出错

  • rpc.statd 非必要,检查文件一致性,可修复文件

配置文件: /etc/exports

配置文件格式
/dir          主机1(opt1,opt2)   主机2(opt1,opt2)...
#共享路径       共享给谁

/share    *
#共享给任何主机    *代表任意(注意此时未给权限)


主机:
通配符:表示使用*通配所有客户端

单个主机:ipv4,ipv6,FQDN
192.168.91.100  
网段:两种掩码格式均支持
172.18.0.0/255.255.0.0
172.18.0.0/16
内网  

wildcards:主机名通配,例如:*.kgc.com,IP不可以
netgroups:NIS域的主机组,@group_name

默认选项:(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使 用








#查看当前共享信息
exportfs -v


[root@localhost ~]#exportfs -r
#重新加载服务配置
exportfs: No options for /share *: suggest *(sync) to avoid warning

###客户机上如何查看共享
[root@localhost yum.repos.d]#showmount -e 192.168.91.100
#
Export list for 192.168.91.100:
/share *

[root@localhost yum.repos.d]#mount 192.168.91.100:/share   /mnt/nfs1/
#                                   对方地址      共享文件夹   挂载点
[root@localhost yum.repos.d]#df



[root@localhost nfs1]#ll
#变成nobody   由root_squash(压缩缩小)  决定
总用量 4
-rw-r--r--. 1 nfsnobody nfsnobody    0 3月  21 01:17 111.txt
-rwxrwxrwx. 1 root      root      2259 3月  21 01:12 passwd


#普通用户不压榨   由   no_all_squash决定



/share    *(rw,no_root_squash)

 

4.NFS共享存储服务配置的过程

4.1服务端

 

4.2客户端

 

5.总结

1、NFS的概念及作用:是一种基于TCP/IP传输的网络文件系统协议;可以实现客户机访问远程服务器中的共享资源

2、NFS的缺点:安全性差

3、NFS的使用要求:需要安装nfs-utils(共享发布和访问)、rpcbind(远程过程调用)

4、NFS的配置文件:/etc/exports

5、配置NFS共享存储的步骤:

服务器端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:设置共享目录并把共享目录的权限设为777

第三步:修改NFS的配置文件(格式为:共享的目录名称 客户机地址(权限))

第四步:启动NFS服务(先启动rpcbind,再启动nfs),并设置开机自启动

第五步:发布NFS共享目录,并查看

客户端

第一步:安装nfs-utils和rpcbind软件,并关闭防火墙和增强安全功能

第二步:查看服务器端的共享目录,并将其挂载到新建目录上(可手动或自动挂载)

标签:rpcbind,squash,NFS,Linux,nfs,共享,root
From: https://www.cnblogs.com/suoluo212/p/16817334.html

相关文章

  • Linux PXE服务
    导图1.PXE(prebootexecuteenvironment 高效批量网络装机)它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载......
  • Linux YUM仓库部署
    导图1.yum简介yum是一个基于RPM包(是Red-HatPackageManager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找......
  • Linux热门命令,你get到多少?
    大家应该都知道Linux操作系统,就算不熟悉至少也听说过吧,由于它是开放性的,也是免费的,且安全性比较高等,近些年受到越来越多人的喜欢,不少公司也都是使用Linux系统办公。Linux中......
  • Dcoker实战:Linux环境安装mysql8.0.27安装步骤
    ​今天给大家分享Centos8系统下安装mysql8.0.27,具体参考下面的步骤就可以使用Docker正确安装mysql。1、拉取镜像#拉取最新的mysql版本dockerpullmysql#查看mysql镜像dock......
  • Linux DNS服务
    导图1.DNS(DomainNameSystem域名系统)应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS服务使用TC......
  • 树莓派4b部署samba服务实现文件共享
    注意samba生命力很旺盛,软件是在不断更新的,网上很多针对samba网速优化设置截止当前实测发现有很多已经过期,甚至有些设置会适得其反,使传输速度更低。例如,全网都......
  • 通过Linux的socket套接字实现客户端与服务器端的通信
    具体案例:使用树莓派ds18b20温度传感器实现温度上报首先需要获得传感器文件中保存的温度信息:温度信息通常保存在路径为“/sys/bus/w1/devices/28-xxxxxxxxxxxx/w1......
  • Linux 网络命令
    导图一.网络配置命令1.ifconfig- 查看网络接口信息 命令格式作用ficonfig来自于net-tools包,在不带任何选项和参数执行ifconfig命令时,将显示当前主机中已......
  • linux下使用gcc编译含gets()函数的程序
    网上有很多关于gets()会导致栈溢出之类的废话也许会有初学者望着千篇一律的回答茫然无错,以为真的就只能使用fgets()了 首先你要了解gets()函数有极大的风险其次,在gcc......
  • Linux、数据库、Redis、MongoDB统一管理平台!
    #一、开源项目简介基于DDD分层实现的web版linux(终端文件脚本进程)、数据库(mysqlpostgres)、redis(单机集群)、mongo统一管理操作平台# 二、开源协议使用Apache-2.0......