nfs服务的搭建
步骤
安装nfs服务
启动nfs服务
创建nfs共享文件
配置nfs服务
测试nfs服务
搭建nfs服务不仅需要安装nfs自己的软件包,还要安装rpcbind软件包,以便nfs服务能够监听到111端口。
安装NFS时需要安装rpcbind的原因是因为NFS(Network File System,网络文件系统)使用RPC(Remote Procedure Call,远程过程调用)来进行客户端和服务端之间的通信。在NFS中,客户端需要知道服务端提供的NFS服务的端口号才能进行连接和数据传输。
而rpcbind服务负责管理和维护RPC服务的端口号映射关系,将服务名称映射到对应的端口号。因此,在安装NFS时,需要同时安装rpcbind服务,以便客户端能够通过rpcbind查询NFS服务的端口号,从而成功连接到NFS服务。
另外,rpcbind还负责处理RPC请求的路由和转发,确保客户端的请求能够正确地路由到对应的服务端。因此,安装rpcbind是确保NFS服务正常运行和客户端能够成功连接的必要条件之一。
如果不安装rpcbind,会导致NFS服务无法正常工作。
因为NFS使用RPC进行通信,而RPC需要使用固定的端口号进行通信。如果没有安装rpcbind,就无法建立正确的端口号映射关系,客户端无法知道NFS服务的端口号,也就无法成功连接到NFS服务。此外,rpcbind还负责处理RPC请求的路由和转发,如果缺少这个服务,客户端发送的RPC请求可能无法正确到达对应的服务端,导致通信失败或出现其他错误。
因此,为了确保NFS服务的正常运行和客户端的正确连接,必须安装rpcbind服务。
安装nfs服务和rpcbind服务
[root@localhost opt]# yum -y install nfs-utils rpcbind
Loaded plugins: langpacks, product-id, search-disabled-repos,
: subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package 1:nfs-utils-1.3.0-0.33.el7.x86_64 already installed and latest version
Package rpcbind-0.2.0-38.el7.x86_64 already installed and latest version
Nothing to do
默认情况下,是安装了nfs和rpcbind的。
启动nfs服务和rpcbind服务
systemctl start nfs-server rpcbind
创建共享文件
mkdir nfs
配置nfs服务
/etc/exports是NFS服务器配置文件,用于定义哪些文件系统目录可以被NFS客户端访问,以及访问权限。
在/etc/exports文件中,每一行定义一个共享目录及其访问权限。格式如下:
<directory> <client list> <options>
<directory>:要共享的目录的绝对路径。
<client list>:允许访问该目录的客户端列表。可以使用通配符,例如*表示所有客户端。
<options>:访问权限选项,可以包括以下选项:
rw:允许读写访问。
ro:只允许只读访问。
sync:同步写入,数据写入到磁盘后再返回响应。
async:异步写入,数据写入到缓存中即返回响应。
no_root_squash:允许客户端上的root用户以服务端上的root用户权限进行访问。
其他选项根据需要设置。
例如,以下是一个示例配置:
/usr/sys/src host2(rw,sync,no_root_squash) host3(ro,sync) * (rw,sync)
这个配置将/usr/sys/src目录共享给host2主机,允许读写访问,并且客户端上的root用户以服务端上的root用户权限进行访问。同时,也将该目录共享给host3主机,只允许只读访问。最后,允许所有客户端读写访问该目录。
请注意,修改/etc/exports文件后,需要重新启动NFS服务或使用exportfs -ra命令重新加载配置才能生效。
/home/nfs 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
[root@localhost nfs]# vim /etc/exports
/opt/nfs 192.168.10.10(rw,sync)
/opt/nfs 192.168.10.20(ro,sync)
重启服务
[root@localhost nfs]# systemctl restart nfs-server rpcbind
tips:
重启nfs-server和nfs的主要区别在于它们的作用和范围。
重启nfs-server是指重启NFS服务器服务。NFS(Network File System,网络文件系统)是一种用于在计算机系统之间共享文件和目录的协议。NFS服务器负责提供文件共享服务,允许远程计算机像访问本地文件一样访问和操作远程文件。重启nfs-server会重新启动NFS服务,恢复或解决任何与NFS服务相关的问题。
而nfs则通常是指网络文件系统(Network File System)的简称,它是一种分布式文件系统,可以在不同计算机之间共享文件和目录。nfs不是一项服务或命令,而是一种文件系统类型,它依赖于NFS服务器和客户端之间的通信来实现文件共享。
因此,重启nfs-server和nfs的主要区别在于前者是重启NFS服务器服务,而后者是分布式文件系统类型。
查看
[root@localhost nfs]# exportfs -v
/opt/nfs 192.168.10.10(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/opt/nfs 192.168.10.20(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
tips:
exportfs -v命令用于显示NFS服务器上已挂载的共享文件系统信息。这个命令可以帮助你查看哪些目录已经被导出(共享)给其他客户端,以及相关的访问权限和选项。
执行exportfs -v命令后,通常会列出所有已挂载的共享目录及其详细信息,包括客户端列表、访问权限、挂载选项等。
请注意,exportfs命令是NFS服务器端的管理工具,通常在NFS服务器上执行。如果你想查看客户端上的挂载情况,可以使用showmount -e命令。
防火墙的放行
[root@localhost nfs]# firewall-cmd --permanent --add-service=nfs
success
[root@localhost nfs]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@localhost nfs]# firewall-cmd --permanent --add-service=mountd
success
[root@localhost nfs]# firewall-cmd --reload
success
也可以尝试用富规则放行
[root@localhost nfs]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.10/24 service name=nfs accept'
success
[root@localhost nfs]# firewall-cmd --reload
success
[root@localhost nfs]# firewall-cmd --permanent --remove-service=nfs
success
[root@localhost nfs]# firewall-cmd --reload
success
[root@localhost nfs]# firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.10.10/24 service name=rpc-bind accept'
success
[root@localhost nfs]# firewall-cmd --reload
success
[root@localhost nfs]#
[root@localhost nfs]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens32
sources:
services: dhcpv6-client ftp http mountd mysql ssh
ports:
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="192.168.10.10/24" service name="nfs" accept
rule family="ipv4" source address="192.168.10.10/24" service name="rpc-bind" accept
tips:
mountd服务是NFS服务器的重要组成部分,它负责管理NFS共享目录的挂载和卸载。当客户端请求挂载共享目录时,mountd服务会与客户端建立连接,验证客户端的访问权限,然后执行相应的挂载操作。同时,当客户端请求卸载共享目录时,mountd服务也会执行相应的卸载操作。
在NFS服务器中,mountd服务与rpcbind服务协同工作,共同完成NFS服务的启动和停止。当NFS服务器启动时,rpcbind服务会启动并监听相应的端口号,而mountd服务则会通过rpcbind服务提供的端口号与客户端建立连接。
总之,mountd服务是NFS服务器中负责管理共享目录挂载和卸载的重要服务。
测试nfs
[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
[root@client share_nfs]# touch old
[root@client share_nfs]# ls
old
[root@client share_nfs]# cd ..
[root@client opt]# mount -t nfs 192.168.10.10:/opt/nfs ./share_nfs/
[root@client opt]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rhel-root xfs 16G 3.4G 13G 22% /
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 993M 84K 993M 1% /dev/shm
tmpfs tmpfs 993M 8.9M 984M 1% /run
tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 148M 350M 30% /boot
tmpfs tmpfs 199M 16K 199M 1% /run/user/42
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 iso9660 3.6G 3.6G 0 100% /media
192.168.10.10:/opt/nfs nfs4 16G 4.1G 12G 27% /opt/share_nfs
[root@client opt]#
[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
flag share
[root@client share_nfs]# cd ..
[root@client opt]# umount /opt/share_nfs/
[root@client opt]# cd share_nfs/
[root@client share_nfs]# ls
old
标签:rpcbind,服务,nfs,NFS,root,客户端
From: https://www.cnblogs.com/humlogs/p/17922003.html