文章目录
NFS 服务配置
一、 NFS简介
1. 什么是NFS
- NFS 可以让 客户端把服务器的共享目录 挂载到本机使用,就像使用本机分区一样
2. RPC服务(远程调用)
- NFS 是被RPC服务管理的,所以必须安装RPC的主程序rpcbind
3. NFS端口
- NFS 端口 : 2049
- RPC端口 : 111
- NFS daemon端口 : 随机
4. 与其他的文件服务器对比
服务名称 | 使用范围 | 服务器端 | 客户端 | 局限性 |
---|---|---|---|---|
FTP | 内网和公网 | win,Linux | win,Linux | 无法直接在服务器端修改数据 |
Samba | 内网 | win,linux | win,linux | 只能在内网使用 |
NFS | 内网和公网 | linux | linux(win) | 客户端需要挂载使用,对普通用户需要有一定要求 |
二、 NFS权限说明
1. 权限说明
a. Linux系统目录权限也会生效
b. NFS服务共享权限也会生效
2. 用户身份映射(系统权限)
1. NFS 没有用户登陆认证机制,所以客户端登录到服务器之后,会把客户端的身份映射到服务器端,就会出现四种可能 :
* 第一种
- client 和server 上刚好有相同的账号和用户(用户名 和UID 都要相同)
- client 用户 可以在server上安装用户权限使用文件
* 第二种
- 当client和server 上拥有相同的UID,但是用户名不同
- 假设 client 上有 用户aa(UID : 500) ,server 上有用户bb(UID:500) 。 在client 在使用server共享目录时,身份识别为bb
- 这种情况尽量避免出现
* 第三种
- server 上没有client 的UID
- client用户访问server时,server没有此UID,则把此用户自动转变 为nfsnobody(UID:65534) 用户
* 第四种
- clinet 上是root使用共享
- 默认把root也转变为nfsnobody 。 服务器端可以修改配置文件,容许root访问nfs服务器
三、NFS服务器端设置
1. 服务器端安装
- nfs-utils , rpcbind
2. 相关文件
- 配置文件 : /etc/exports
3. 服务器端管理
- 默认启动,
- 手工
- service nfs start
- service rpcbind start
4. 守护进程
- ps aux | grep -E “nfs|rpc”
- rpc.rquotad :NFS配额
- rpc.mounted : 处理客户端挂载
- nfsd : NFS守护进程
- rpcbind : RPC守护进程
5. RPC服务注册情况
- rpcinfo -p IP或主机名
四、NFS服务器端配置文件
1. 配置文件
- /etc/exports
- 共享目录 客户端(权限)
2. 可以识别的客户端
-
指定IP : 192.167.1.1
-
指定网段 : 192.168.1.0/24
192.168.44.0/255.255.255.0
-
指定主机名 : cjs
-
所有主机 : *
3. 常用权限
权限 | 说明 |
---|---|
rw | 读写 |
ro | 只读 |
all_squash | 不论登录是谁,都压缩为匿名用户nfsnobody |
root_squash | 如果是登录是root,压缩为nfsnobody |
no_root_squash | 容许root身份登录 不推荐 |
anonuid | 所有的登陆用户,不再压缩为nfsnobody,而是压缩指定UID用户 |
sync | 将数据同步写入内存缓冲区与磁盘中,效率低,但是可以保证数据一致性 |
async | 将数据先保存在内容缓冲区汇总,必要时,才写入磁盘 |
举例1
-
任何人可以访问 ,容许root访问
vi /etc/exports /home/test *(rw,no_root_squash)
举例2
-
同时共享多个目录
vi /etc/exports /home/test 192.168.1.3(rw,no_root_squash) *(ro) /home/soft 192.168.1.0/24(rw)
举例3
-
匿名用户访问
vi /etc/exports /home/soft 192.168.1.0/24(rw,all_squash,anonuid=600)
4. 常用命令
- exportfs 选项
- -a 按照配置文件挂载/卸载所有目录
- -r 重新挂载
- -u 卸载
- -v 显示详细信息
- 例子
- exportfs -arv 重新挂载所有目录,不用重启服务
- exportfs -aux 全部且在所有目录
5. showmount 命令
- showmount 查看共享目录
- showmount -e IP或主机名
- -e 查看某个主机的共享目录
五、 NFS客户端使用
1. 需要启动的服务
- rpcbind
2. 查看服务器端共享目录
- showmount -e 192.168.1.3 (指定IP即可)
3. 把服务器共享目录挂载到本地
- mkdir /home/client 建立挂载点
- mount -t nfs 192.168.1.3:/home/soft /home/client 挂载到本地使用
- mount 查看挂载
4. 卸载
- umount /home/client
5. 开机自动挂载
vi /etc/fstab
192.168.1.3:/home/text /home/client nfs defaults 0 0
六、权限实验(仅供参考)
- 可以跟上面的四种可能 去实现 相关的实现