linux下NFS服务安装与配置

NFS--Network File System :Unix/linux系统间的文件共享,主要用于局域网。

 

可以将NFS服务器共享的目录挂载到本地,然后像访问本地目录一样使用。

 

一.安装NFS服务

1.检测是否安装过

rpm -qa | grep nfs  #NFS服务

 

2.安装

yum install nfs-utils -y     #CentOS6.4

 

3.启动服务

要先保证rpcbind是开启状态,检测是否开启:pstree | grep rpcbind

一般都是开启状态,如未开启,则启动:service rpcbind start

然后再启动nfs:

/etc/rc.d/init.d/NFS start   或者  service nfs status #stop,restart

 

4.检测服务

rpcinfo -p [ip]    #客户端上运行该命令,用于验证NFSServer是否正常

 

5.开放端口

1)修改nfs配置文件:

vi /etc/sysconfig/nfs

#开启如下注释,并设置端口,注意不能与/etc/services中声明的重复

RQUOTAD_PORT=875

LOCKD_TCPPORT=32803

LOCKD_UDPPORT=32804

MOUNTD_PORT=892

STATD_PORT=32805

STATD_OUTGOING_PORT=32806

 

判断是否与/etc/services冲突:

egrep '875|32803|32804|892|32805|32806' /etc/services  #875冲突没有问题

 

2)防火墙设置:

vi /etc/sysconfig/iptables

#nfs

-A INPUT -p tcp -m multiport --dports 111,2049,892,875,32803,32804,32805,32806 -j ACCEPT

-A INPUT -p udp -m multiport --dports 111,2049,892,875,32803,32804,32805,32806 -j ACCEPT

 

重启防火墙:

service iptables restart

 

查看iptables状态:

service iptables status

 

3)重启nfs

service nfs restart

 

4)客户端测试是否可以访问

rpcinfo -p 192.168.247.130

 

 

5)设置NFS服务器的自动启动状态

查看当前状态:chkconfig --list nfs

设置在3,5级别自启动:chkconfig --level 35 nfs on

 

 

二.配置服务

vi /etc/exports  #不存在就创建

格式:共享目录  允许访问主机(权限)

示例:/public                        #允许所有主机访问

 /website  192.168.247.131(ro)  #允许192.168.247.131只读访问/website

 

访问主机:

可以使用完整的 IP 或者是网域,例如 192.168.100.10 或 192.168.100.0/24 ,或192.168.100.0/255.255.255.0 都可以接受!

 

也可以使用主机名称,但这个主机名称必须要在 /etc/hosts 内,或可使用 DNS 找到该名称才行啊!反正重点是可找到 IP 就是了。如果是主机名称的话,那麼他可以支援万用字元,例如 * 或 ? 均可接受。

 

 权限:man exports

 

  1. ro          只读访问  
  2. rw          读写访问  
  3. sync        所有数据在请求时写入共享  
  4. async       NFS在写入数据前可以相应请求  
  5. secure      NFS通过1024以下的安全TCP/IP端口发送  
  6. insecure    NFS通过1024以上的端口发送  
  7. wdelay      如果多个用户要写入NFS目录,则归组写入(默认)  
  8. no_wdelay   如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  
  9. hide        在NFS共享目录中不共享其子目录  
  10. no_hide     共享NFS目录的子目录  
  11. subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)  
  12. no_subtree_check        和上面相对,不检查父目录权限  
  13. all_squash  共享文件的UID和GID映射匿名用户anonymous,适合公用目录。  
  14. no_all_squash           保留共享文件的UID和GID(默认)  
  15. root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)  
  16. no_root_squash          root用户具有根目录的完全管理访问权限  
  17. anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID  
  18. anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID 

 

 网段示例:

 /opt   192.168.133.0/255.255.255.0(rw,no_root_squash,sync) #133.0~133.255

 /nfs/web 192.168.133.0/255.255.255.0(rw,no_root_squash,sync) *(ro) #133.0~133.255可写,其它网段只读

 

 

实战示例:只允许特定的两个IP访问,并且必须使用UID=9999和GID=9999的用户才能访问[这里root用户会自动转换成匿名用户权限,除非配置了no_root_squash]

/nfsdir  192.168.3.111(rw,sync,no_wdelay,anonuid=9999,anongid=9999,no_subtree_check)

/nfsdir  192.168.3.222(rw,sync,no_wdelay,anonuid=9999,anongid=9999,no_subtree_check)

 

所以需要在NFS服务器和客户端上分别创建该用户,这里用户名为nfsuser,组名也为nfsuser:

groupadd nfsuser -g 9999

useradd nfsuser -u 9999 -g 9999

 

之后将共享的目录/nfsdir授予nfsuser管理:

chmod -R 775 /nfsdir    #如果要授权给其它用户或组,可以使用ACL授权

chown -R nfsuser.nfsuser /nfsdir

 

输出共享目录格式:exportfs -rv 

 

三.客户端挂载

1.查看nfs服务器共享的目录列表:

showmount -e 192.168.247.130

 

2.创建挂载点

mkdir /mnt/website

 

3.挂载

mount -t nfs 192.168.247.130:/website /mnt/website

 

4.查看是否挂载成功

df -h

 

5.卸载NFS挂载的共享目录

umount /mnt/website

 

6.开机自动挂载NFS共享

vi /etc/fstab

格式:NFS共享目录               本机挂载点  文件系统  权限  是否检测  检测顺序

      192.168.247.130:/website /mnt/website   nfs      rw      0         0

或者:

vi /etc/rc.d/rc.local #这个是启动系统时最后一个执行的程序

加入:mount -t nfs 192.168.247.130:/website /mnt/website

-t :指定挂载的文件类型,这里是nfs

如要马上生效:命令行/etc/rc.d/rc.local 回车即可

 

 

补充:windows7下挂在linuxNFS

控制面板--程序和功能--打开或关闭windows功能--NFS(勾选客户端,管理工具)

 

CMD:mount \\192.168.247.130\website  z:

 

我的电脑下的网络位置会出现挂载后的nfs盘,访问Z:即可打开。

注:windows7下只允许挂在到未使用的盘符,不能挂在目录

 

windows7挂载后用户只有只读权限,需要进行授权,此时在cmd下执行mount,会看到uid与gid都是-2,

因为windows用户的uid和gid都与nfs服务器要求的9999不一致,所以修改如下:

打开注册表:运行--regedit

 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default,

增加两项:AnonymousUid,AnonymousGid   字符串值:9999 或者 0

 

重新启动计算机,重新mount。

 

系统启动自动挂载:

编写脚本:nfs_autoload.bat

内容:mount -t nfs 192.168.247.130:/website /mnt/website

nfs_autoload.bat拷贝到当前用户的开始菜单--所有程序--启动目录下,我使用Administrator用户,即C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

 

 

 

 

 

你可能感兴趣的:(linux)