NFS文件服务器(壹)

0x00 序

NFS服务端口2049
远程过程调用协议RPC(默认端口111)

NFS与RPC

NFS Client就类似租客
RPC 类似中介,可以提供房源
NFS Server就类似房主

NFS Client向服务器端的RPC发出NFS文件访问功能的查询请求 (showmount -e ip)
服务器端找到对应的已经注册的NFS daemon端口后,通知客户端
客户端获取端口后,与NFS daemon连接

注:在启动NFS前先要启动RPC,否则NFS无法向RPC注册,RPC若重新启动,注册数据会丢失,注册服务也需重新启动

安装与配置

安装

:::shell
#服务器端
apt-get install nfs-common nfs-kernel-server rpcbind
#RPC主程序最新为rpcbind,历史为portmap
#客户端
apt-get install nfs-common rpcbind
#Centos下
yum install nfs-utils rpcbind
#启动建议在rc.local设置而不是用chkconfig

运行

#服务器
#rpcbind
/etc/init.d/rpcbind start
#nfs
/etc/init.d/nfs-kernel-server start
#查看
rpcinfo -p localhost #启动是否正确
showmount -e #检查
#修改exports文件后
/etc/init.d/nfs-kernel-server reload

exportfs -au 卸载所有共享目录
exportfs -r 重新共享所有目录

#客户端
showmount -e ip
#挂载
mount ip:/data /mnt

NFS文件结构

主配置文件的语法与参数

共享目录 客户端地址(权限参数)  
#客户端地址可以是ip/网络号/主机名
192.168.1.1 
192.168.1.10* 
192.168.1.0/24
localhost
*.ysicing.net

参数

:::shell
rw/ro #读写/可读
sync/async #同步写入内存硬盘/先写内存,在写硬盘  
all_squash #无论谁登录NFS,用户身份都是nobody(nfsnobody)
anonuid=65534,anongid=65534 #匿名用户

当你挂载了远程的nfs后

[email protected]:/mnt# touch demo.txt
touch: cannot touch ‘demo.txt’: Permission denied

需要设置远程的nfs共享目录

[email protected]:/# chown -R nobody /data/
*****
Written by ysicing on 03 December 2015