在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,no_root_squash)
* : 代表允许所有的网络段访问,
rw :是可读写权限,
sync
:是资料同步写入内存和硬盘,
no_root_squash: 是 Ubuntu nfs 客户端分享目录使用者的权限,如果客户端使用的是 root 用户,那对于该共享目录而言,该客户端就具有 root 权限。
$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命令查看是否挂载成功。
查看后可以使用以下命令卸载: $ sudo umount /home/upload
注意:使用卸载命令时,先退出挂载的目录,再执行卸载命令,否则会出现设备正忙现象而无法卸载
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