Linux中NFS共享与autofs的使用

本文详细介绍了如何在Linux中设置NFS共享,包括安装nfs软件、配置exports文件、解决挂载问题。同时,讲解了autofs服务的安装与配置,实现了自动挂载和卸载NFS共享目录。还探讨了在共享目录下设定用户和用户组的方法,以控制新创建文件的归属。最后,讨论了修改NFS的版本和模式对挂载的影响。

1.NFS共享

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
实验:
让客户端可以访问并挂载服务端的共享目录
<1>在服务端安装nfs软件并开启服务

[root@desktop ~]# yum install nfs-utils -y	##安装nfs软件
[root@desktop ~]# systemctl start nfs	##开启nfs服务

在这里插入图片描述
在这里插入图片描述
注意:如果出现注册的问题就是没有开启nfs
<2>在服务端开启火墙

[root@desktop ~]# systemctl start firewalld	##开启火墙

在这里插入图片描述
<3>在客户端尝试从ip为172.25.254.166的主机上获取共享目录,但发现会出现报错

[root@server ~]# showmount -e 172.25.254.166	##会出现报错

在这里插入图片描述
<4>在服务端开启nfs服务以及给客户端随机分配端口的一个工具

[root@desktop ~]# firewall-cmd --permanent --add-service=nfs	开启nfs服务
[root@desktop ~]# firewall-cmd --permanent --add-service=rpc-bind	##给客户端随即分配端口的一个工具
[root@desktop ~]# firewall-cmd --reload

在这里插入图片描述
<5>在客户端再次尝试从ip为172.25.254.166的主机上获取共享目录,会出现报错,但报错的内容不一样

[root@server ~]# showmount -e 172.25.254.166	##出现的报错不一样

在这里插入图片描述
<6>在服务端开启客户主机在挂载的时候需要的一个服务

[root@desktop ~]# firewall-cmd --permanent --add-service=mountd
[root@desktop ~]# firewall-cmd --reload

在这里插入图片描述
<7>在客户端再次尝试从ip为172.25.254.166的主机上获取共享目录,没有出现报错

[root@server ~]# showmount -e 172.25.254.166

在这里插入图片描述
<8>在服务端修改/etc/exports中的内容并使其生效

[root@desktop ~]# vim /etc/exports
[root@desktop ~]# exportfs -rv

在这里插入图片描述
配置文件中的内容如下:

/westoslinux *(ro,sync)

在这里插入图片描述
<9>在客户端从ip为172.25.254.166的主机上获取共享目录,再将其挂载至/mnt目录下,实验完后后,将其卸载

[root@server ~]# showmount -e 172.25.254.166
[root@server ~]# mount 172.25.254.166:/westoslinux /mnt
[root@server ~]# umount /mnt

在这里插入图片描述

2.autofs

mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动挂载的麻烦。要实现光驱,软盘等的动态自动挂载,需要进行相关的配置。
autofs的实验(注意:挂载上之后不用会占用资源,因为会自动挂载和自动卸载):
-1-安装autofs软件
下面内容都在客户端进行
<1>安装autofs

[root@server ~]# yum install autofs.x86_64 -y
[root@server ~]# systemctl start autofs

在这里插入图片描述
<2>查看/net下的内容,发现没有内容

[root@server ~]# cd /net
[root@server net]# ls
[root@server net]# ls -a

在这里插入图片描述
<3>查看autofs相关的配置文件有哪些,打开控制自动卸载时间的文件(内核7.0的是/etc/sysconfig/autofs,内核7.0以上的是/etc/autofs.conf),将其时间更改成3s,便于查看变化,并重启服务

[root@server westoslinux]# rpm -qc autofs
[root@server westoslinux]# vim /etc/autofs.conf
[root@server westoslinux]# systemctl restart autofs.service

在这里插入图片描述
配置文件中更改的内容如下:

timeout = 3

在这里插入图片描述
-2-自动挂载和自动卸载
<4>进入/net/172.25.254.166/westoslinux查看,再用df命令查看,会发现共享目录已经自动挂载了

[root@server ~]# cd /net
[root@server net]# cd 172.25.254.166
[root@server 172.25.254.166]# ls
[root@server 172.25.254.166]# cd westoslinux
[root@server westoslinux]# df

在这里插入图片描述
<5>退出共享目录后,3s后进行查看,发现共享目录已经自动卸载了

[root@server westoslinux]# cd
[root@server ~]# df	##3s过后进行查看

在这里插入图片描述
-3-指定共享目录的挂载点
<6>进入一个新建的共享目录的配置文件,里面写入关于共享目录文件的内容

[root@server ~]# vim /etc/auto.westos

在这里插入图片描述
文件中写入的内容如下:

westos  172.25.254.166:/westoslinux	##westos是最终挂载点,以及挂载的时候的共享 不写默认是rw

在这里插入图片描述
<7>进入主策略文件(/etc/auto.master),修改后,要重启服务

[root@server ~]# vim /etc/auto.master
[root@server ~]# systemctl restart autofs.service

在这里插入图片描述
文件中更改的内容如下:

/misc   /etc/auto.misc
/opt    /etc/auto.westos	##/opt是最终挂载点的上层目录

在这里插入图片描述
<8>进入设置挂载的目录下,再利用df命令进行查看,会发现共享目录已经成功挂载到想要挂载的目录下了

[root@server ~]# cd /opt
[root@server opt]# ls
[root@server opt]# cd westos
[root@server westos]# df
[root@server westos]# cd
[root@server ~]# df

在这里插入图片描述

3.在共享目录下设定用户和用户组

-1-在共享目录下新创建的文件的用户和组都是默认的nfsnobody
<1>在服务端修改/etc/exports中的内容并使其生效

[root@desktop ~]# vim /etc/exports
[root@desktop ~]# exportfs -rv

在这里插入图片描述
在文件中增加的内容如下:

/westoslinux *(ro,sync) 172.25.254.155(rw,sync)	##说明当ip为172.25.254.155的主机访问共享目录时,可以进行读写操作

在这里插入图片描述
<2>在客户端进入共享目录并创建文件,查看文件的属性时发现文件的用户和组都是默认的nfsnobody

[root@server ~]# cd /opt/westos
[root@server westos]# ls
[root@server westos]# touch file
[root@server westos]# ll

在这里插入图片描述
-2-在共享目录下新创建的文件的用户和组都是root
<3>在服务端修改/etc/exports中的内容并使其生效

[root@desktop ~]# vim /etc/exports
[root@desktop ~]# exportfs -rv

在这里插入图片描述
在文件中增加的内容如下:

/westoslinux *(ro,sync) 172.25.254.155(rw,sync,no_root_squash
) ##说明当ip为172.25.254.155的主机访问共享目录时,建立的文件的用户和用户组都是root用户

在这里插入图片描述
<4>在客户端进入共享目录并创建文件,查看文件的属性时发现文件的用户和组都b变成了指定的超级用户

[root@server ~]# cd /opt/westos
[root@server westos]# touch file2
[root@server westos]# ll

在这里插入图片描述
-3-在共享目录下新创建的文件的用户是uid为1002的用户
<5>在服务端修改/etc/exports中的内容并使其生效

[root@desktop ~]# vim /etc/exports
[root@desktop ~]# exportfs -rv

在这里插入图片描述
在文件中增加的内容如下:

/westoslinux *(ro,sync) 172.25.254.155(rw,sync,anonuid=1002)
) ##说明当ip为172.25.254.155的主机访问共享目录时,建立的文件的用户是指定的1002

在这里插入图片描述
<6>在客户端进入共享目录并创建文件,查看文件的属性时发现文件的用户变成了指定的用户(uid=1002的用户)

[root@server ~]# cd /opt/westos
[root@server westos]# touch file3
[root@server westos]# ll

在这里插入图片描述
-4-在共享目录下新创建的文件的用户是uid为1002的用户,用户组为gid为1001的用户组
<7>在服务端修改/etc/exports中的内容并使其生效

[root@desktop ~]# vim /etc/exports
[root@desktop ~]# exportfs -rv

在这里插入图片描述
在文件中增加的内容如下:

/westoslinux *(ro,sync) 172.25.254.155(rw,sync,anonuid=1002,anongid=1001)
) ##说明当ip为172.25.254.155的主机访问共享目录时,建立的文件的用户是指定的1002,用户组是指定的1001

在这里插入图片描述
<8>在客户端进入共享目录并创建文件,查看文件的属性时发现文件的用户变成了指定的用户(uid=1002的用户)

[root@server ~]# cd /opt/westos
[root@server westos]# touch file4
[root@server westos]# ll
[root@server westos]# id westos

在这里插入图片描述
-5-修改NFS的版本(向下兼容的)
<9>更改子策略文件并使其生效

[root@server westos]# vim /etc/auto.westos
[root@server westos]# systemctl restart autofs

在这里插入图片描述
文件中更改的内容如下:

westos  172.25.254.166:/westoslinux

在这里插入图片描述
<10>进入共享目录的挂载路径并查看挂载信息,查看到挂载目录的版本是4.0

[root@server ~]# cd /opt/westos
[root@server westos]# mount

在这里插入图片描述
在这里插入图片描述
<11>更改子策略文件(将其版本号更改成3.0)并使其生效

[root@server westos]# vim /etc/auto.westos
[root@server westos]# systemctl restart autofs

在这里插入图片描述
将其挂载目录版本设置成3.0

westos -vers=3.0  172.25.254.166:/westoslinux

在这里插入图片描述
<12>进入共享目录的挂载路径并查看挂载信息,查看到挂载目录的版本是3.0

[root@server ~]# cd /opt/westos
[root@server westos]# mount

在这里插入图片描述
在这里插入图片描述
-6-修改NFS的模式
NFS模式默认的是hard,当建立一个文件,当建立的动作发生了阻塞,在建立三次之后,会报错
在挂载的时候基本用soft,因为会响应时间的
<13>进入共享目录的挂载路径并查看挂载信息
[root@server ~]# cd /opt/westos
[root@server westos]# mount
发现共享目录中的模式为hard
在这里插入图片描述在这里插入图片描述
<14>退出自动挂载目录后重新挂载目录,此时加上soft模式,最终会发现共享目录中的模式为soft
注意:不要在文件内更改,因为可能会卡死

[root@server ]# mount -o soft 172.25.254.128:/westoslinux /opt	##尽量不要在文件内更改,因为可能会卡死
[root@server ]# mount

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值