linux——NFS+AUTOFS服务的基本配置

本文介绍了NFS网络文件系统的基础知识及其实验步骤。包括NFS的优势、基本原理、安装配置方法及自动挂载工具autofs的使用。通过具体案例展示了如何设置共享目录、权限控制及挂载选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NFS

为什么要用NFS

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

FNS的好处
  • 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
  • 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
  • 一些存储设备CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

一、准备阶段(客户端、服务端)
  • 下载nfs server服务

服务端

[root@server ~]# yum install nfs-utils -y  ##下载安装nfs服务
[root@server ~]# systemctl start nfs       ##开启nfs服务

客户端

[root@client ~]# yum install nfs-utils -y   ##下载安装nfs服务
[root@client ~]# showmount -e 172.25.254.227
Export list for 172.25.254.227:
[root@client ~]#
二、相关命令介绍
showmount 参数 nfs_server(IP)
    -e nfs_server(IP) 查看nfs提供共享的文件系统
    -a nfs_server 查看nfs服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
    -d nfs_server 显示nfs服务器所有导出的文件系统
exportfs 参数:
    -a:跟-r或-u同时使用,表示重新挂载所有文件系统或取消导出所有文件系统
    -r:重新导出
    -u:取消导出
    -v:显示详细信息
三、实验
 ehco “/mnt  172.25.254.0/24(ro,sync)” > /etc/exports

/mnt 172.25.254.0/24(ro,sync)
共享/mnt目录,允许172.25.254.0网段地址使用挂载
模式可以为(ro只读),(rw读写),(sync异步),(async同步)

 ehco “/mnt  *(ro,sync)” > /etc/exports

共享/mnt目录,允许所有网段地址使用挂载

  • 实验一
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt   *(sync,ro)                ##同步、只读模式
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]#

测试
这里写图片描述

  • 实验二
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt   *(sync,rw)                ##同步、读写模式
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]#

测试
这里写图片描述
因为服务端的 /mnt 目录权限不够

[root@server ~]# ls -ld /mnt/
drwxr-xr-x. 2 root root 18 Jun  4 07:03 /mnt/
[root@server ~]# chmod 777 /mnt/
[root@server ~]# ls -ld /mnt/
drwxrwxrwx. 2 root root 18 Jun  4 07:03 /mnt/
[root@server ~]# 

测试
这里写图片描述

  • 实验三

no_root_squash:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!这个项目『极不安全』,不建议使用!
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份。

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt   *(sync,rw,no_root_squash)
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]#

测试
这里写图片描述

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt   *(sync,rw,root_squash)
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]#

测试
这里写图片描述

  • 实验四
[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/mnt   *(sync,rw,anonuid=1000,anongid=1000)
##同步、读写、建立的文件属性是uid=1000、gid=1000的用户 
[root@server ~]# exportfs -rv
exporting *:/mnt
[root@server ~]#

测试
这里写图片描述
实验后,进行下面的操作,以便 autofs 实验

[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/westos 172.25.254.0/24(sync,rw,no_root_squash)
[root@server ~]# exportfs -rv
exporting 172.25.254.0/24:/westos
[root@server ~]#
四、Autofs

autofs —— 自动挂载工具
特点:它与mount的不同,autofs是一个守护进程,如果它检测到用户正在访问一个尚未挂载的文件系统,如果存在,autofs会自动将其挂载;如果它检测到某个已经挂载的文件系统在一段时间内没有被使用,那么autofs会自动将其卸载。

  • 安装autofs(客户端)
[root@client ~]# yum install autofs -y

测试

[root@client ~]# cd /net                   
-bash: cd: /net: No such file or directory
##没有开启 autofs 服务之前,目录/net是不存在的
[root@client ~]# vim /etc/sysconfig/autofs 
##修改第13行   
##设定空闲卸载时间,空闲5秒后自动卸载
[root@client ~]# cat /etc/sysconfig/autofs | head -n 13 | tail -n 1
TIMEOUT=5
[root@client ~]# systemctl start autofs          
[root@client ~]# cd /net/
[root@client net]# pwd
/net
[root@client net]# ls       
[root@client net]# cd 172.25.254.227
[root@client 172.25.254.227]# pwd
/net/172.25.254.227
[root@client 172.25.254.227]# ls
westos
[root@client 172.25.254.227]# cd westos/
[root@client westos]# ls
[root@client westos]# df    ##挂载点默认在/net/172.25.254.227/westos
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3155092   7318808  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      84    484848   1% /dev/shm
tmpfs                     484932   12784    472148   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2355    451824   1% /home
172.25.254.227:/westos  10473984 3168256   7305728  31% /net/172.25.254.227/westos
[root@client westos]# cd
[root@client ~]# pwd
/root
##过大概 5 秒后
[root@client ~]# df
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3154928   7318972  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932      84    484848   1% /dev/shm
tmpfs                 484932   12784    472148   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2355    451824   1% /home
[root@client ~]#
  • 指定挂载点为/nfs/westos
[root@client ~]# vim /etc/auto.master
[root@client ~]#  cat /etc/auto.master | head -n 8 | tail -n 1
/nfs    /etc/auto.westos
##/nfs ——挂载目录的上层全部路径,若是挂载在/nfs/tutu/westos,那么此处应是/nfs/tutu
##/etc/auto.westos   自动挂载的配置文件
[root@client ~]# ll /etc/auto.westos
ls: cannot access /etc/auto.westos: No such file or directory
[root@client ~]# vim /etc/auto.westos
[root@client ~]# cat /etc/auto.westos
westos   -ro   172.25.254.227:/westos
##westos ——挂载点,文件名可以不存在,若是挂载在/nfs/tutu/westos,那么此处应是westos
##-ro ——挂载模式(ro:只读)
##172.25.254.227:/westos ——需要挂载的设备,本地的——“: 设备“,网络的——“IP : 目录“
[root@client ~]# systemctl restart autofs.service

测试
这里写图片描述
这里写图片描述

[root@client westos]# vim /etc/auto.westos 
[root@client westos]# cat /etc/auto.westos
westos   -rw,vers=3   172.25.254.227:/westos
[root@client westos]# cd
[root@client ~]# systemctl restart autofs.service

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值