1、安装
CENTOS或RHL默认就已安装,若是没有安装的话,经过yum安装便可:
yum install nfs-utils
yum install portmapnode
UBUNTU系统,经过apt-get安装:linux
apt-get install nfs-kernel-server
2、配置
一、配置文件定义ubuntu
NFS的配置文件为 /etc/exports,内容格式以下:
<共享目录> 客户端1(选项) [客户端2(选项) ...]windows
共享目录:NFS共享给客户机的目录。centos
客户端:网络中能够访问此目录的主机。多个客户端以空格分隔。
选项:设置目录的访问权限、用户映射等,多个选项以逗号分隔。bash
例如:服务器
/opt/public 192.168.1.0/24(rw,insecure,sync,all_squash,anonuid= 65534,anongid=65534)网络
二、客户端的指定方式
指定ip地址的主机:192.168.0.100
指定子网中的全部主机:192.168.0.0/24 或 192.168.0.0/255.255.255.0
指定域名的主机:nfs.test.com
指定域中的全部主机:*.test.comapp
全部主机:*async
三、选项说明
ro:共享目录只读;
rw:共享目录可读可写;
all_squash:全部访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):未来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root账号权限;
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口链接服务器;
insecure:容许客户端从大于1024的tcp/ip端口链接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但能够保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操做,若是有则将这些写操做一块儿执行,这样能够提升效率;
no_wdelay:如有写操做则当即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即便输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样能够提升效率;
3、NFS相关命令
一、exportfs
不重启nfs服务应用更新,相关选项以下:
-a 所有挂载或卸载 /etc/exports中的内容
-r 从新读取/etc/exports 中的信息 ,并同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸载单一目录(和-a一块儿使用为卸载全部/etc/exports文件中的目录)
-v 在export的时候,将详细的信息输出到屏幕上。
二、nfsstat
查看NFS的运行状态。
三、rpcinfo
查看rpc服务注册状况。
相关选项:
-p 显示全部的端口与程序信息。
示例:
rpcinfo -p localhost #列出本机的RPC注册情况。
三、showmount
查询nfs共享目录信息,相关选项以下:
-a 显示已经于客户端链接上的目录信息
-e IP或者hostname 显示此IP地址分享出来的目录
示例:
showmount -e localhost #查询本机nfs共享目录状况
showmount -a localhost #查询本机共享目录链接状况
4、linux客户端挂载共享目录
一、临时挂载
经过mount挂载,例如:
mount -t nfs 192.168.1.1:/opt/public /mnt/public
二、启动挂载
将挂载信息写入fstab文件
vi /etc/fstab
192.168.1.1:/opt/public /mnt/public nfs defaults
保存退出
mount -a
三、基于autofs自动挂载
autofs能够在使用到挂载文件系统时自动挂载,当长时间不使用时自动卸载,配置灵活方便。
安装autofs:
centos,rhl:
yum install autofs
ubuntu:
apt-get install autofs
编辑主配置文件/etc/auto.master,在末尾添加需挂载的目录信息。
格式为:本机挂载主目录 对应的加载配置文件名 -挂载参数
挂载参数同mount的挂载参数,多个参数以逗号分隔。此处的挂载参数能够与对应的加载配置文件中定义的参数产生叠加做用。
示例:
vi /etc/auto.master
#本机挂载主目录为/mnt,与之对应的加载配置文件为/etc/auto.nfs
/mnt /etc/auto.nfs
保存退出
编辑加载配置文件,添加须要挂载的文件系统。
格式为:挂载目录 -挂载参数 挂载文件系统
挂载参数同mount的挂载参数,多个参数以逗号分隔。
示例:
vi /etc/auto.nfs
public -rw,bg,soft,rsize=32768,wsize=32768,nosuid,noexec,nodev 192.168.1.1:/opt/public
保存退出
重启autofs
/etc/init.d/autofs restart
5、windows客户端挂载共享目录
一、到M$网站下载SFU3.5,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=274
二、在本地创建group文件,内容以下:
root:x:0:
三、在本地创建passwd文件,内容以下:
root:x:0:0:root:/root:/bin/bash
四、解压并安装SFU,选择定制安装,在 User Name Mapping界面,选择Password and group files,进入下一步分别输入前面创建的passwd和group文件完整路径,点击下一步完成安装。
五、配置SFU
在开始菜单的程序中找到Windows Services for Unix,点击Services for Unix Administration。在设置界面点击User Name Mapping,切换到Map标签页,点击 show group Maps,在windows group name 和unix group name框中分别输入guests和root,而后点击add。而后点击 show User Maps,在windows user name 和unix user name框中分别输入guest和root,而后点击add。最后点击右上角的apply应用设置。
六、确保windows系统中的guest账号可用
运行gpedit.msc
在Computer Configuration->Windowns Settings->Security Settings->Local Policies->User Right Assignment->Deny access to this computer from the network:去掉Guest。 并检查其它相关项是否有容许Guest访问。
在 Computer Configuration->Windowns Settings->Security Settings->Local Policies->Security Options->Network access->Sharing and security model for local accounts:选择经典方式:Classic-Local users authenticate as themselves。
七、经过网上邻居映射网络驱动器、cmd下mount(例如:mount \\192.168.1.100\opt\public z:)或者直接在地址栏输入地址(例如:\\192.168.1.100\opt\public)挂载共享目录。
6、NFS权限设定
一、普通用户
if ( 设置了all_squash ) then
访问用户强制映射为指定nfs匿名用户;
else
if ( NFS server上有同名用户 ) then
访问用户映射为服务器上的同名用户;
else
访问用户映射成nfsnobody;
二、root
if ( 同时设置了no_root_squash和all_squash ) then
访问用户映射为指定nfs匿名用户;
else
if ( 设置了no_root_squash ) then
来访root映射为指定服务器上的root用户;
else
if ( 设置了all_squash ) then
访问用户映射为指定nfs匿名用户;
else
访问用户映射成nfsnobody;
7、mount相关参数
ro 以只读模式加载。
rw 以可读写模式加载。
sync 以同步方式执行文件系统的输入输出动做。
async 以非同步的方式执行文件系统的输入输出动做。
defaults 使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser与async。
atime 每次存取都更新inode的存取时间,默认设置,取消选项为noatime。
noatime 每次存取时不更新inode的存取时间。
dev 可读文件系统上的字符或块设备,取消选项为nodev。
nodev 不读文件系统上的字符或块设备。
exec 可执行二进制文件,取消选项为noexec。
noexec 没法执行二进制文件。
auto 必须在/etc/fstab文件中指定此选项。执行-a参数时,会加载设置为auto的设备,取消选取为noauto。
noauto 没法使用-a参数来加载。
suid 启动set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位,取消选项为nosuid。
nosuid 关闭set-user-identifier(设置用户ID)与set-group-identifer(设置组ID)设置位。
user 普通用户能够执行加载操做。
nouser 普通用户没法执行加载操做,默认设置。
remount 从新加载设备。一般用于改变设备的设置状态。
rsize 读取数据缓冲大小,默认设置1024。
wsize 写入数据缓冲大小,默认设置1024。
fg 之前台形式执行挂载操做,默认设置。在挂载失败时会影响正常操做响应。
bg 之后台形式执行挂载操做。
hard 硬式挂载,默认设置。若是与服务器通信失败,让试图访问它的操做被阻塞,直到服务器恢复为止。
soft 软式挂载。若是服务器通信失败,让试图访问它的操做失败,返回一条出错消息。这项功能对于避免进程“挂”在可有可无的安装操做上来讲很是有用。
retrans=n 指定在以软方式安装的文件系统上,在返回一条出错消息以前重复发出请求的次数。
nointr 不容许用户中断,默认设置。
intr 容许用户中断被阻塞的操做(而且让它们返回一条出错消息)。
timeo=n 设置请求的超时时间(以十分之一秒为单位)。
注:
automounter专用参数
fstype= 用于指定一个文件系统的类型(若是要挂载的文件系统不是NFS的话),mount是不能用的。
8、注意事项
一、NFS服务器关机时要确保NFS没有客户端链接,不然没法正常关机 。能够先强制中止或杀死nfs服务。
二、windows客户端挂载共享目录不支持utf-8编码,所以可能会出现中文乱码。能够经过修改服务器local的默认编码来解决。