linux主机搭建NFS服务器

NFS(Network File System,网络文件系统)

它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

因为NFS的端口并不固定,导致客户端连接连接服务器产生问题,原因就在于客户端并连接服务器是需要知道服务器端的端口才能进行连接,

为了解决这一办法,此时就需要RPC(Remote Procedure Call,远程过程调用)的服务,当服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port 111来监听客户端的需求并向客户端响应正确的端口号。

即nfs服务需要搭配RPC服务运行才行

搭建NFS服务器要求

架设一台NFS服务器,并按照以下要求配置
1、开放/nfs/shared目录,供所有用户查询资料
2、开放/nfs/upload目录,为192.168.xxx.0/24网段主机可以上传目录,并将所有用户及所属的组映射为nfs-upload,其UID和GID均为2100
3、将/home/tom目录仅共享给192.168.xxx.xxx这台主机,并只有用户tom可以完全访问该目录

配置

主配置文件进行配置

主配置文件:/etc/exports

分析:

1、创建/nfs/shared目录,供所有用户查询资料,则在配置文件中写入共享的目录及权限为只读(ro权限)即可

2、创建/nfs/upload目录,为192.168.217.0/24网段主机可以上传目录,则该共享目录权限给读写权限(rw权限),因为所有用户及所属的组映射为nfs-upload,其UID和GID均为210,则写入all_squash ,anonuid=2100, anongid=2100

3、创建home/tom目录,写入只有192.168.217.133/24(客户端ip),只有用户tom可以完全访问该目录,则写入rw权限,

配置环境:

[root@server ~]# systemctl stop firewalld
[root@server ~]# setenforce 0
[root@server ~]# yum install nfs-utils rpcbind -y

1、开放/nfs/shared目录,供所有用户查询资料  

服务端:

[root@server ~]# systemctl start nfs-server  把rpc和nfs服务合并了直接启动即可
[root@server ~]# mkdir -p /nfs/shared #先创一个目录文件
[root@server ~]# touch /nfs/shared/资料{a..f}  #创几个资料文件做模拟
[root@server ~]# ll /nfs/shared/ 查看server端的文件
总用量 0
-rw-r--r--. 1 root root 0 1月  13 23:52 资料a
-rw-r--r--. 1 root root 0 1月  13 23:52 资料b
-rw-r--r--. 1 root root 0 1月  13 23:52 资料c
-rw-r--r--. 1 root root 0 1月  13 23:52 资料d
-rw-r--r--. 1 root root 0 1月  13 23:52 资料e
-rw-r--r--. 1 root root 0 1月  13 23:52 资料f
[root@server ~]# vim /etc/exports 打开nfs的配置文件
/nfs/shared     *(ro)   
要分享的目录   *代表所有用户 ()中的ro代表只读权限
~                                                                               
~                                                                               
~       
[root@server ~]# exportfs -ra  导出配置文件生效
[root@server ~]# showmount -e  查看共享的目录
Export list for server:
/nfs/shared *

客户端:

[root@Node1 ~]# showmount -e 192.168.217.132  显示服务器分享过来的目录
Export list for 192.168.217.132:
/nfs/shared *
[root@Node1 ~]# mkdir /test   准备搭建文件系统
[root@Node1 ~]# mount 192.168.20.133:/nfs /test  
[root@Node1 ~]# cd /test/ 查看是否可以看到
[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 11月  1月  13 shared
[root@Node1 test]# ll shared/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 23:52 资料a
-rw-r--r--. 1 root root 0 1月  13 23:52 资料b
-rw-r--r--. 1 root root 0 1月  13 23:52 资料c
-rw-r--r--. 1 root root 0 1月  13 23:52 资料d
-rw-r--r--. 1 root root 0 1月  13 23:52 资料e
-rw-r--r--. 1 root root 0 1月  13 23:52 资料f

2、上传文件的操作

服务端:

[root@server ~]# mkdir /nfs/upload
[root@server ~]# touch /nfs/upload/资料{1..5}
[root@server ~]# ll /nfs/upload/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
[root@server ~]# vim /etc/exports
/nfs/shared     *(ro)
/nfs/upload     192.168.217.0/24(rw,all_squash,anonuid=210,anongid=210)
[root@server ~]# groupadd -g 210 nfs-upload
[root@server ~]# useradd -u 210 -g 210 nfs-upload        # 或者直接创建系统用户(useradd -r -u 210 nfs-upload)
[root@server ~]# showmount -e
Export list for server:
/nfs/shared *
/nfs/upload 192.168.217.0/24

 同时需要注意/nfs/uplaod 的权限问题,要想让映射用户可以用创建文件,那么就需要其他人的读权限。

[root@server home]# chmod o+w /nfs/upload/
[root@server home]# ll /nfs/
总用量 0
drwxr-xr-x. 2 root root 96 1月  13 23:52 shared
drwxr-xrwx. 2 root root 81 1月  13 00:23 upload

客户端:

客户端192.168.20.133可以访问到,

[root@Node1 test]# showmount -e 192.168.20.133
Export list for 192.168.20.133:
/nfs/shared *
/nfs/upload 192.168.100.0/24 
[root@Node1 test]# mount 192.168.20.133:/nfs/ /test/ 通过读写方式挂载
[root@Node1 test]# cd /test/
[root@Node1 test]# ll upload/
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
[root@Node1 upload]# touch a
[root@Node1 upload]# ll
总用量 0
-rw-r--r--. 1 root root 0 1月  13 00:23 资料1
-rw-r--r--. 1 root root 0 1月  13 00:23 资料2
-rw-r--r--. 1 root root 0 1月  13 00:23 资料3
-rw-r--r--. 1 root root 0 1月  13 00:23 资料4
-rw-r--r--. 1 root root 0 1月  13 00:23 资料5
-rw-r--r--. 1 210 210 0 1月  13 00:35 a

可以看到新建的文件的uid和gid都是210.

3、将/home/tom目录仅共享给192.168.217.133这台主机,并只有用户tom可以完全访问该目录

服务端:

把共享文件的所属用户和所属组改为tom即可

[root@server home]# useradd tom    新建一个tom用户
[root@server home]# vim /etc/exports    编辑配置文件添加这一行
/nfs/tom        192.168.217.133/24(rw)
[root@server home]# exportfs -ra        重载配置
[root@server home]# showmount -e
Export list for server:
/nfs/shared *
/nfs/tom    192.168.217.133/24
/nfs/upload 192.168.217.0/24

客户端:

我们先使用fox用户看看是否可以完全访问tom目录很明显是不可以的

[root@Node1 test]# ll
总用量 0
drwxr-xr-x. 2 root root 96 1月  13 23:52 shared
drwxr-xr-x. 2 2101 2101  6 1月  13 00:35 tom
drwxr-xrwx. 2 root root 90 1月  13 00:35 upload
[root@Node1 test]# su fox
[fox@Node1 test]$ cd tom/
[fox@Node1 tom]$ touch a
touch: 无法创建 'a': 权限不够
 

创建tom用户切换后尝试:

[root@Node1 tom]# useradd -u 2101 tom
[root@Node1 tom]# su tom
[tom@Node1 tom]$ touch b
[tom@Node1 tom]$ ll
总用量 0
-rw-rw-r--. 1 tom    tom    0 1月  13 00:35 b
-rw-r--r--. 1 root   root   0 1月  13 00:35 tom1
-rw-r--r--. 1 root   root   0 1月  13 00:35 tom2
[tom@Node1 tom]$ 

  • 21
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值