NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
以下是NFS最显而易见的好处:
1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
实验环境: 一:服务器和客户机都要安装nfs 和 rpcbind软件包: yum -y install nfs-utils rpcbind 二:在服务端创建需要共享的文件并添加权限 mkdir /usr/local/xcb chmod 666 /usr/local/xcb 三:编辑export文件 vim /etc/exports /usr/local/xcb 192.168.103.106(rw,sync,no_root_squash,no_all_squash) 设置共享的目录,哪些可以访问的客户端ip,也可以设置一个网段(192.168.103.0/24) 权限说明: rw: 可读可写 ro: 只读 sync: 数据同步写入内存和硬盘,也可以使用async,此时数据会先暂存于内存中,而不立即写入硬盘。 no_root_squash: NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。
exportfs -f 使配置生效
四:启动服务 service nfs start service rpcbind start 注意:在访问的时候需要关闭防火墙,或者在防火墙里面开启需要的端口
修改/etc/service,添加以下内容(端口号必须在1024以下,且未被使用) # Local services mountd 1011/tcp #rpc.mountd mountd 1011/udp #rpc.mountd rquotad 1012/tcp #rpc.rquotad rquotad 1012/udp #rpc.rquotad
在防火墙里开通如下端口vim /etc/sysconfig/iptables #rpc -A INPUT -m state --state NEW -m tcp -p tcp --dport 121 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 121 -j ACCEPT #nfsd -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT #rquotad -A INPUT -m state --state NEW -m tcp -p tcp --dport 1012 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 1012 -j ACCEPT #mountd -A INPUT -m state --state NEW -m tcp -p tcp --dport 1011 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 1011 -j ACCEPT 五:客户端挂载 showmount -e 192.168.103.106 查看服务器共享的目录 nfs默认使用的是udp协议,为了提高nfs的稳定性,如下使用tcp协议挂载 mount -t nfs 192.168.103.106:/usr/local/xcb /usr/local/xcb -o proto=tcp -o nolock 挂载成功后,即可访问共享的nfs文件系统 六:卸载已挂载的nfs umount /usr/local/xcb
windwos挂载linux主机NFS 启动windos NFS客户端服务: 1. 打开控制面板->程序->打开或关闭windows功能->NFS客户端 勾选NFS客户端,即开启windows NFS客户端服务. 2.win+R->cmd mount 192.168.1.10:/xcb X: 成功挂载,打开我的点脑,你即可在你网络位置看到 X:盘了 解释: mount,是指令 192.168.1.10你的linux主机IP /xcb 你的共享目录 X:你挂载的网络文件盘--注意,可能会与你的其他盘冲突,你可以随意更改 3.取消挂载: 直接在 我的电脑 里面鼠标点击取消映射网络驱动器 X: 或者: win+R->cmd 输入: umount X: (umount -a 取消所有网络驱动器)
1.问题:
Win7 NFS客户端访问Linux NFS服务问题Win7 NFS客户端使用mount命令挂载NFS服务之后,
文件系统对Win7只读,无法写入文件,无法新建文件夹,
解决:
使用mount命令可以查看到如下状态:
可以看到UID=-2由于在存储设备上共享出来的NFS文件系统归属于root权限,并且无法修改
该所属用户,而Windows通过UID=-2的用户去写,肯定写不进去。
解决办法:是让Win7在挂载NFS的时候将UID和GID改成0即可:打开注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default,增加两项:AnonymousUid,AnonymousGid
重新启动计算机,重新mount
2.问题:
F:\SVN\DataEngineHAT\Robot\ENMC>mount \\192.168.103.106\xcb z:
网络错误 - 53 有关详细信息,请键入“NET HELPMSG 53”。 解决方法:配置文件是否配置正确,nfs服务是否正确开启,防火墙是否关闭
=============================================================================
linux访问linux下的NFS服务器
#showmount -e 192.168.103.106 (192.168.103.106—》linux的nfs服务器ip)
#mount 192.168.103.106:/xcb /var/NFS
|