1、NFS:NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。
  在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
2、安装NFS服务器端:sudo apt-get install nfs-kernel-server;
3、配置/etc/exports:sudo vim /etc/exports ;
Ubuntu NFS允许挂载的目录及权限在文件/etc/exports中进行了定义。
  将根目录下的 文件夹  /home/upload 目录共享出来,
  在/etc/exports 文件末尾添加如下一行: /home/upload

*     : 代表允许所有的网络段访问,

rw   :是可读写权限,

sync :是资料同步写入内存和硬盘,


是客户端分享目录使用者的权限,如果客户端使用的是用户,那对于该共享目录而言,该客户端就具有权限。


linux nfs 共享 linux中nfs的搭建_linux nfs 共享


4、NFS重启服务

$sudo /etc/init.d/portmap restart
   $sudo /etc/init.d/nfs-kernel-server restart

5、测试Ubuntu NFS

  此时可以运行以下命令来显示一下共享出来的目录: $showmount -e   

  或者可以使用以下命令把它挂载在本地磁盘上, 例如将/home/upload 挂载

  到/mnt下: $sudo mount -t nfs 192.168.1.117:/home/upload   /home/upload

  可以运行df命令查看是否挂载成功。

  写入文件,开机自动挂载。/etc/fstab     

192.168.1.117:/home/upload   /home/upload    nfs     rw     0 0


linux nfs 共享 linux中nfs的搭建_客户端_02


 (这样,在/mnt目录下创建目录,/home/upload 下也会出现)

  查看后可以使用以下命令卸载: $ sudo umount /home/upload

  注意:使用卸载命令时,先退出挂载的目录,再执行卸载命令,否则会出现设备正忙现象而无法卸载


NFS:


RPC: Remote Procedure Call
    

Linux: 提供rpc服务的程序, Portmap: 111/tcp, 111/udp

RPC: 编程技术,简化分布式应用程序的开发,RPC:C --> RPC C --> RPC S --> S

NFS Client --> NFS Server


Browser --> Server  html格式

RPC: 二进制格式,文本格式(XMLRPC) --> SOAP(Simple Object Access Protocol)

RPC: 编程技术,协议

NFS: Sun 
    NFSv2, NFSv3, NFSv4


NFS: Unix/Linux

Windows




服务器端:nfs-utils

nfs: nfsd(nfs服务), mountd(挂载), quotad(配额)

nfsd: 2049/tcp, 2049/udp
mountd: 端口
quotad: 端口
    半随机的


/etc/exports
/path/to/somedir CLIENT_LIST


    多个客户之间使用空白字符分隔

每个客户端后面必须跟一个小括号,里面定义了此客户访问特性,如访问权限等

172.16.0.0/16(ro,async) 192.16.0.0/24(rw,sync)

showmount -e NFS_SERVER: 查看NFS服务器“导出”的各文件系统
showmount -a NFS_SERVER: 查看NFS服务器所有被挂载的文件系统及其挂载的客户端对应关系列表
showmount -d NFS_SERVER: 显示NFS服务器所有导出的文件系统中被客户端挂载了文件系统列表




exportfs命令:
    -a:跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统;
    -r: 重新导出
    -u: 取消导出
    -v: 显示详细信息



客户端使用mount命令挂载

mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT  /PATH/TO/SOMEWHRERE



文件系统导出属性:

ro:
    rw:
    sync:
    async:
    root_squash: 将root用户映射为来宾账号;
    no_root_squash: 
    all_squash: 
    anonuid, anongid: 指定映射的来宾账号的UID和GID;



让mountd和quotad等进程监听在固定端口,编辑配置文件/etc/sysconfig/nfs



WebServer: LAMP

NFS服务端:/var/www: 共享出去
NFS客户端:挂载NFSERVER:/var/www至本地的/var/www