NFS服务器端安装 1、安装nfs服务端程序 [iyunv@nfs ~]# yum install rpcbind nfs-utils [iyunv@nfs ~]# rpm -qa | grep -E "nfs-utils|rpcbind" [iyunv@nfs ~]# mkdir /home/data [iyunv@nfs ~]# chmod -R 755 /home/data 2、编辑配置文件/etc/exports,设置客户端访问权限。 [iyunv@nfs ~]# vi /etc/exports /home/data 192.168.3.0/24(rw) #只允许192.168.3.0网段读写 3、启动rpcbind和nfs服务 [iyunv@nfs ~]# chkconfig rpcbind on [iyunv@nfs ~]#chkconfig nfs on [iyunv@nfs ~]#service rpcbind start [iyunv@nfs ~]#service nfs start 4、创建一些测试资源 [iyunv@nfs data]# touch text [iyunv@nfs data]# touch text.tar.gz
linux下面NFSclient安装 1、客户端安装rpcbind [iyunv@nfsclient ~]# yum install rpcbind nfs-utils [iyunv@nfsclient ~]# service rpcbind start [iyunv@nfsclient ~]# showmount -e 192.168.3.103 #查询服务器端提供的资源 Export list for 192.168.3.103: /home/data 192.168.3.0/24 2、创建本地挂载点,并挂载。 [iyunv@nfsclient ~]# mkdir /mnt/data [iyunv@nfsclient ~]# mount 192.168.3.103:/home/data /mnt/data #挂载服务器/home/data资源到地/mnt/data 3、实现开机挂载/etc/fstab
[iyunv@nfsclient data]# umount -lf /mnt/data #为了实验开机挂载,先取消挂载 [iyunv@nfsclient data]# vi /etc/fstab # 进入/etc/fstab添加以下配置 192.168.3.103:/home/data /mnt/data nfs defaults 0 0 [iyunv@nfsclient data]# reboot #从启看下是否开机后自动挂载 [iyunv@nfsclient ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root ext4 6926264 1294084 5280336 20% 192.168.3.103:/home/data nfs 6926272 1402528 5171872 22% /mnt/data 4、测试挂载后的权限 [iyunv@nfsclient ~]# cd /mnt/data #进入挂载后的目录,新建文件试下权限 [iyunv@nfsclient data]# mkdir test mkdir: cannot create directory `test': Permission denied 试下在服务器端设置文件权限为777 [iyunv@nfs ~]# chmod -R 777 /home/data/ [iyunv@nfsclient data]# mkdir test [iyunv@nfsclient data]# ll drwxr-xr-x 2 nfsnobody nfsnobody 4096 Apr 26 20:55 test 可以创建文件,但通过root访问nfs服务器,默认root会由root_squash的设定压缩成nfsnobody,成为匿名使用名。 5、测试创建用户去挂载,以及使用root用户不压缩挂载。 先在服务器端新建一个www用户,uid和gid都为800 [iyunv@nfs ~]# useradd -u 800 www [iyunv@nfs ~]# id www uid=800(www) gid=800(www) groups=800(www) [iyunv@nfs ~]# setfacl -R -m u:800:rwx /home/data/ #只有使用者身份是www才可读写 [iyunv@nfs ~]# getfacl /home/data #查看一下权限 getfacl: Removing leading '/' from absolute path names # file: home/data # owner: root # group: root user::rwx user:www:rwx group::rwx mask::rwx other::rwx 在客户端机器上创建一个与服务器端一样的用户,并且uid和gid要与服务器相同。 [iyunv@nfsclient ~]# useradd -u 800 www [iyunv@nfsclient ~]# su – www #切换到用户www测试。 [www@nfsclient ~]$ cd /mnt/data [www@nfsclient data]$ mkdir 123 [www@nfsclient data]$ ll total 12 drwxrwxr-x 2 www www 4096 Apr 26 21:24 123 #用户和组都为www 6、测试root用户不压缩时挂载 先在服务器端修改nfs配置文件/etc/exports [iyunv@nfshome]# vi /etc/exports /home/data192.168.3.0/24(rw,no_root_squash) #增加no_root_squash不压缩root [iyunv@nfs home]# service rpcbind restart [iyunv@nfshome]# service nfs restart
在客户端机器上测试验证 [iyunv@nfsclientdata]# mkdir 123 [iyunv@nfsclientdata]# ll drwxr-xr-x 2 root root 4096 Apr 26 21:47 123 #用户和组为root
7、如果服务器使用防火墙,客户端就无法访问,但除了固定的port 111、2049外,其它不固定的端口是由rpc.mountd,rpc,rquotad等服务所开启,所以iptables很难设定规则, rpc 服务主要有 mountd, rquotad, nlockmgr 三个,Centos 6.X提供一个固定特定NFS服务端口的配置文件,如下: 在服务器端设置 [iyunv@nfs ~]# vi /etc/sysconfig/nfs RQUOTAD_PORT=1001 LOCKD_TCPPORT=30001 LOCKD_UDPPORT=30001 MOUNTD_PORT=1002
添加十个端口到防火墙规则里,并保存 [iyunv@nfs ~]#iptables -I INPUT -p tcp --dport 111 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p tcp --dport 2049 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p tcp --dport 1001 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p tcp --dport 1002 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p tcp --dport 30001 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p udp --dport 111 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p udp --dport 2049 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p udp --dport 1001 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p udp --dport 1002 -j ACCEPT [iyunv@nfs ~]#iptables -I INPUT -p udp --dport 30001 -j ACCEPT [iyunv@nfs ~]# service iptables save
8、客户端测试是否挂载成功 [iyunv@nfsclient ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on 192.168.3.103:/home/data nfs 6926272 1406016 5168416 22% /mnt/data
Windows下面配置挂载 通过WIN7下的NFS功能,可以让win7共享Linux下面的磁盘分区或者目录数据,这个功能原理只能通过samba或者ftp来实现,并且配置复杂,而现在通过在win7下开启NFS功能,只需一分钟时间即可完成配置,简单方便。
1:首先是在linux下设置nfs数据共享
[iyunv@localhost ~]# more /etc/exports
/app 192.168.12.0(rw,no_root_squash)
然后执行:
[iyunv@localhost ~]# exportfs -av
exporting 192.168.12.0:/app 2:在win7下开启nfs功能,如图:
3:接着开始在win7进行挂载操作,如下图:
4:修改win7对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即可。此时就能在win7下对nfs文件系统进行读写操作了,跟本地磁盘一样。 查看mount属性,如下:
mount命令在win7下的具体用法如下:
如果要去掉nfs共享,只需只需卸载命令即可,umount用法如下:
Mac电脑上面挂载方法: 在终端中使用 showmount -e IP\Domain
然后使用命令挂载即可 $ sudo mount -t nfs 192.168.100.222:/var/www /private/nfs
|