Linux nfs网络文件系统搭建 发表于 2022-01-11 浏览量 546 评论数 1 # 简介 - NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利; # NFS工作原理 - 1、首先服务器端启动RPC服务,并开启111端口 - 2、服务器端启动NFS服务,并向RPC注册端口信息 - 3、客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口 - 4、服务端的RPC(portmap)服务反馈NFS端口信息给客户端。 - 5、客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。 # NFS部署 部署环境如下表格【统一关闭防火墙】 | 角色 | 系统 | IP | |-|-| | Server | Centos7.9 | 172.16.7.220 | |Client|Centos7.8|172.16.7.221| + 1、安装Server端 ``` # 1、检查是否安装NFS服务和RPC服务 #~ rpm -qa nfs-utils rpcbind rpcbind-0.2.0-49.el7.x86_64 nfs-utils-1.3.0-0.68.el7.x86_64 # 2、如果没有,那就安装NFS服务的nfs-unitls和rpcbind (因为centos7自带了rpcbind,所以不用安装rpc服务) yum -y install nfs-utils (只安装nfs-unitls) yum install nfs-utils rpcbind -y (安装nfs-unitls和rpcbind服务,与上面二选一) # 3、启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务) systemctl start rpcbind.service systemctl status rpcbind.service ``` - 2、编辑NFS配置文件(此文件默认为空) ``` #~ vi /etc/exports /data/bbs/ 172.16.7.0/21(rw,sync,root_squash) /data/bbs/ #表示你要共享的目录 172.16.7.0/21 #表示 所允许访问的客户端IP,这里表示整个7.0以上网段都可以访问,也可以指定单个地址如:172.16.7.220,也可以用*号表示所有用户都可以访问你所共享的目录 (rw,sync,root_squash) #rw:表示读写权限,sync:表示数据同步写入内存硬盘,root_squash:表示访问共享目录时,用户如果是root权限,对共享目录的权限会被压缩为nfsnobody用户的权限 systemctl restart nfs.service //修改配置文件记得重启服务! ``` - 其他NFS权限配置解释 ``` # ro:表示只读权限 # rw:读写权限 # sync:数据同步写内存硬盘 # async:将数据先保存在内存缓冲区中,必要时才写入磁盘; # all_squash:不管你访问共享目录的用户是谁,都必须压缩为nfsnobody用户的权限; # no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组; # root_squash: 如果访问共享目录是root的权限用户,对共享目录的权限会被压缩为nfsnobody用户的权 # no_root_squash:来访的root用户保持root帐号权限; # no_squash:访问共享目录时,用户如果是root权限,对共享目录也具有root权限(最好不要设置,增加服务安全隐患,稍后再提) # anonuid=:指定匿名访问用户的本地用户UID,要和root_squash 以及 all_squash一同使用; # anongid=:指定匿名访问用户的本地用户组GID,要和root_squash 以及 all_squash一同使用; # [anonuid/anongid :要和root_squash 以及 all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid] # secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器; # insecure:允许客户端从大于1024的tcp/ip端口连接服务器; # wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率; # no_wdelay:若有写操作则立即执行,应与sync配合使用; # subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限; # no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率; ``` - 3、配置Client端 ``` #安装NFS yum install -y nfs-utils //安装nfs systemctl enable rpcbind.service //rpcbind做开机启动 systemctl start rpcbind.service //启动rpcbind服务 # 挂载到本地 mount -t nfs 172.16.7.220:/data/bbs /data/nfsdisk # 检查 [root@test2 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 486M 0 486M 0% /dev tmpfs 496M 0 496M 0% /dev/shm tmpfs 496M 32M 464M 7% /run tmpfs 496M 0 496M 0% /sys/fs/cgroup /dev/sda5 48G 4.0G 44G 9% / /dev/sda2 297M 114M 183M 39% /boot 172.16.7.220:/data/bbs 48G 3.4G 45G 8% /data/nfsdisk //挂载成功! ```
想想你的文章写的特别好