NFS 简介
- NFS (Network File System)
NFS可以让客户端把服务器的共享目录挂载到本机使用,就像使用本机分区一样使用非常方便
- RPC服务
RPC (远程调用)服务:NFS是被RPC服务管理的,所以必须安装RPC的主程序rpcbind
- NFS端口
NFS端口:2049
RPC端口:1 1 1
NFS daemon端口:随机
- 常用文件服务器比较
服务器 | 使用范围 | 服务器端 | 客户端 | 局限性 |
---|---|---|---|---|
FTP | 内网和公网 | Windows、Linux | Windows、Linux | 无法直接在服务器端修改数据 |
Samba | 内网 | Windows、Linux | Windows、Linux | 只能内网使用 |
NFS | 内网和公网 | Linux | Linux | 如用Windows客户端需要第三方软件 |
NFS 配置文件
– 配置文件
vim /etc/exports
共享目录 客户端(权限)
2、客户端,可以识别的客户端
指定IP: 192.168.44.4
指定网段:192.168.44.0/24 或者 192.168.44.0/255.255.255.0
指定主机名:www.itxdl.cn
所有主机:*
3、权限,常用权限
rw:读写
ro:只读
all_ squash:不论登陆是谁,都压缩为匿名用户nfsnobody
root squash:如果登陆的是root,压缩为nfsnobody
no_ root_squash:允许root身份登陆{不推荐
anonuid:把所有的登陆用户,不再压缩为nfsnobody用户,而是压缩为指定uid用户
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一- 致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
– 守护进程
ps aux | grep -E “nfs l rpc’
rpc.rquotad:NFS配额
rpc.mountd:处理客卢端挂载
nfsd:NFS守护进程
repcbind:RPC守护进程
– 查看端口
rpcinfo -p
NFS 访问方式
- 第一种可能
client 和server 上刚好有相同的用户名和UID,client上用户可以在server上按照用户权限使用文件.
- 第二种可能
当 clinet 和 server 上拥有相同的UID,不同的用户名
假设clinet.上有用户aa(UID: 500),server上有用户bb(UID:500)
在clinet在 使用server共享目录时,身份识别为bb (因为Linux权限绑定在UID_上),此种情况尽量避免出现,容易逻辑混乱
- 第三种可能
server上没有和 clinet 相同的UID
clinet 用户访问 serve 时,server上没有此UID,则把此用户自动转变为nfs nobody (UID: 65534)用户
- 第四种可能
clinet 上是 root 使用共享,默认把 root 也转变为nfsnobody 。服务器端修改配置文件允许root访问nfs服务器
NFS 使用
– 安装 NFS
NFS主程: nfs-utils
RPC主程序:rpcbind (旧版本portmap)
– exportfs:不需要重启服务
exportfs -auv //全部卸载所有目录
exportfs -arv //重新挂载所有目录,不用重启NFS服务
– showmount:查看共享目录
showmount -e //服务端查看
showmount -e 192.168.113.161 //客户端查看
– 把服务器共享目录挂载到本地
mkdir /home/client #建立挂载点
mount -t nfs 192.168.44.3:/home/soft /home/client #挂载到本地使用
mount #查看挂载
– 开机自动挂载
vi /etc/fstab 192.168.44.3:/home/test /home/client nfs defaults 0 0
– 卸载
umount /home/cl1ent