第五章:nfs服务器
1、NFS网络文件系统(Network File System ):通过网络去共享目录资源
2、nfs工作流程
(1)nfs客户端先找RPC,因为RPC有固定的端口号,而RPC知道每个NFS功能所对应的端口号
(2)RPC返回nfs服务器的端口
(3)nfs客户端再找nfs服务器
(4)nfs服务器可以共享目录(rw/ro)
(5)nfs客户端需要将该目录挂载到本地的目录(默认是nobody 65534身份)
(6)若是rw共享,那么需要在服务端加上w的权限/chmod 777,客户端才能创建文件
3、nfs配置
(1)nfs共享文件
前提:
#先关闭防火墙,selinux通过
#[root@localhost ~]# yum install rpcbind 不用单独装,utils会一起装
[root@localhost ~]# yum install nfs-utils
#systemctl stop firewalld
#setenforce 0
#systemctl start nfs-serverserver:
#我们需要编辑的文件是/etc/exports,写共享配置
#创建共享目录
[root@server ~]# mkdir /data
[root@server ~]# touch /data/file
[root@localhost ~]# cat /etc/exports
/data 192.168.59.142(rw)
[root@localhost ~]# systemctl restart nfs-server
[root@localhost ~]# systemctl status rpcbind #rpcbind也运行了Active: active (running) since Sat 2024-10-26 19:46:01 CST; 18s ago
#服务器用showmount -e访问一下
[root@localhost ~]# showmount -e 192.168.59.143
Export list for 192.168.59.143:
/data 192.168.59.142
#客户端再访问一下,看是否访问到共享目录列表
[root@client ~]# showmount -e 192.168.59.143
Export list for 192.168.59.143:
/data 192.168.59.142
#查看监听端口(rpc,tcp)
[root@localhost ~]# ss -lntup |grep rpcclient:
#查看是否能连上 如果不能确定可以用22测试,因为22肯定是可以连上的
[root@client ~]# nc -zv 192.168.59.143 111
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.59.143:111.
Ncat: 0 bytes sent, 0 bytes received in 0.06 seconds.
[root@client ~]# mkdir /guazai1
[root@client ~]# ll /guazai1/
total 0
#挂载
[root@client ~]# mount 192.168.59.143:/data /guazai1/
[root@client ~]# cd /guazai1/
[root@client guazai1]# ll
total 4
-rw-r--r--. 1 root root 7 Oct 26 19:42 file
[root@client guazai1]# echo haha >> file #ro
-bash: file: Read-only file system
[root@client guazai1]# echo haha >> file #rw
-bash: file: Permission denied 因为所属组是nobody,所以没有权限
注:client 管理员root访问nfs文件系统默认做了用户映射root --nobody(65534)server: #给其他用户添加w权限
[root@localhost data]# chmod o+w file
[root@localhost data]# ll
总用量 4
-rw-r--rw-. 1 root root 7 10月 26 19:42 fileclient: #成功写入
[root@client guazai1]# echo haha >> file
[root@client guazai1]# cat file
server
haha#验证客户端的root用户默认是nobody,但普通账号还是普通账号
server:
[root@localhost data]# chmod o+w /data/
[root@localhost data]# ll -d /data/
drwxr-xrwx. 2 root root 18 10月 26 19:42 /data/client:
[root@client guazai1]# touch file1
[root@client guazai1]# ll
total 4
-rw-r--rw-. 1 root root 12 Oct 26 20:05 file
-rw-r--r--. 1 nobody nobody 0 Oct 26 20:08 file1[root@client ~]# df -h 查看挂载信息