安装 rpcbind 和 nfs-utils

 yum install rpcbind
yum install nfs-utils

设置共享目录

[root@bogon ~]# vim /etc/exports       #修改/etc/exports文件,输出共享目录
添加一行, 例如
/mnt/share *(rw,sync,no_root_squash)

/mnt/share    192.168.1.0/24(ro,async) 192.168.0.0/24(rw,sync) [root@localhost ~]# more /etc/exports
/home/tomcat/archive/        192.168.1.0/24(ro,async)

/etc/exports文件内容格式:

<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

a. 输出目录:
输出目录是指NFS系统中需要共享给客户机使用的目录; b. 客户端:
客户端是指网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式
指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/ 192.168.0.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:* c. 选项:
选项用来设置输出目录的访问权限、用户映射等。NFS主要有3类选项: 访问权限
设置输出目录只读:ro
设置输出目录读写:rw 用户映射
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx); 其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

启动NFS服务器
为了使NFS服务器能正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind一定要先于nfs启动。
# service rpcbind start
# service nfs start

查询NFS服务器状态
# service rpcbind status
# service nfs status

停止NFS服务器
要停止NFS运行时,需要先停止nfs服务再停止rpcbind服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止portmap服务
# service nfs stop
# service rpcbind stop

客户端
客户端也需要安装rpcbind 和 nfs-utils, 也需要启动这两个服务
查看可用的nfs服务:

[root@bogon ~]# showmount -e 10.10.14.52
Export list for 10.10.14.52:
/mnt/share *

挂载对应的nfs目录到本地, 挂载前要检查此目录是否存在

mount -t nfs 10.10.14.52:/mnt/share /mnt

取消挂载(对应的本地路径)

umount /mnt

固定nfs服务端口以便设置防火墙

vi /etc/sysconfig/nfs
# uncomment the following options
RQUOTAD_PORT=875
LOCKD_TCPPORT=
LOCKD_UDPPORT=
MOUNTD_PORT=
STATD_PORT=662
# then stop nfs, stop prcbind, start rpcbind, start nfs
# use "lsof -nPi" to check the listening ports

iptables中需要开放的端口

-A INPUT -m state --state NEW -m tcp -p tcp --dport  -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport -j ACCEPT

问题解决

1. Centos5.x 客户端

安装的组件和Centos6.x不一样

~]#yum install rpcbind
~]#yum install portmap
~]#yum install nfs-utils
~]#service portmap start
~]#service nfs start
~]#showmount -e 192.168.1.20
~]#cd /mnt/
~]#mkdir nfshare
~]#mount -t nfs 192.168.1.20:/home/tomcat/archive /mnt/nfshare
~]#ll /mnt/nfshare/

2. 出现 access denied by server 错误

在Centos6.5上安装的nfs服务, 在Centos5.8上挂载正常, 但是在另一台Centos6.5上挂载出现 access denied by server.

nfs客户端:

[root@localhost ~]# showmount -e 192.168.1.20
Export list for 192.168.1.20:
/home/tomcat/archive 192.168.1.0/
[root@localhost ~]# mount -t nfs 192.168.1.20:/home/tomcat/archive /mnt/nfshare
mount.nfs: access denied by server while mounting 192.168.1.20:/home/tomcat/archive

nfs服务端:

[root@localhost ~]# more /etc/exports
/home/tomcat/archive/ 192.168.1.0/(ro,async)

经过测试, 如果在后面加入 no_root_squash 参数, (ro,async,no_root_squash) 后, 就不会再出现 access denied by server 错误, 但是这个选项是不推荐使用的.

后来发现在nfs客户端使用这个命令能正常挂载

mount -o v3 192.168.1.20:/home/tomcat/archive /mnt/nfshare

这个 -o v3 表明使用的是 nfs version 3, 使用以下命令可以查看nfs version

[root@localhost ~]# mount -v
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=,mode=)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.1.20:/home/tomcat/archive on /mnt/nfshare type nfs (rw,v3,addr=192.168.1.20)
[root@localhost ~]# nfsstat -m
/mnt/nfshare from 192.168.1.20:/home/tomcat/archive
Flags: rw,relatime,vers=,rsize=,wsize=,namlen=,hard,proto=tcp,timeo=,retrans=,sec=sys,mountaddr=192.168.1.20,mountvers=,mountport=,mountproto=udp,local_lock=none,addr=192.168.1.20

设置启动自动加载, 编辑 /etc/fstab, 例子

[root@iZ2578hac3vZ ~]# more /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug ::
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(), findfs(), mount() and/or blkid() for more info
#
UUID=94e4e384-0ace-437f-bc96-057dd64f42ee / ext4 defaults,barrier=
tmpfs /dev/shm tmpfs defaults
devpts /dev/pts devpts gid=,mode=
sysfs /sys sysfs defaults
proc /proc proc defaults
192.168.1.2:/archive/nfshare /mnt/nfshare nfs ro

同时要确保 rpcbind, nfs, netfs 这3个服务是开机自启动的

chkconfig nfs on
chkconfig netfs on
chkconfig --list

Centos6.5 设置nfs的更多相关文章

  1. Centos6.5 设置Tomcat8 service服务实现自启动和服务管理

    Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...

  2. CentOS6.9下NFS配置说明(转载)

    NFS是Network File System的缩写,即网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端可以通过挂载(mount)的方式将NFS ...

  3. CentOS6.9下NFS配置说明

    NFS是Network File System的缩写,即网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS客户端可以通过挂载(mount)的方式将NFS ...

  4. CentOS5.x、CentOS6.x 使用NFS及mount实现两台服务器间目录共享

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : portmap:实现RPC(协议 ...

  5. VMware10 安装centos6.7 设置NAT模式

    最近刚开始学Linux运维.我看的书是<跟阿铭学Linux>,视频教程里面使用NAT模式手动分配IP可以成功ping通网关,但是我照着视频一步一步操作却一直不成功,不知道是什么原因,昨天弄 ...

  6. VirtualBox4.3.12 Centos6.5-i386 设置共享文件夹

    新在虚拟机下安装个CentOS6.5,准备设置个与win7的共享文件夹,遇到一个问题,搞了好几天呢 现在先说一下: 首先,在虚拟机下安装好CentOS这里不说了 然后启动,点击安装增强功能 如下图: ...

  7. 自己通过centos6.5配置NFS 成功后的笔记,希望对需要的人有点点帮助吧!

         环境介绍:            服务器:centos  172.16.250.170            客户端:centos  172.16.250.172     先用rpm -qa ...

  8. VMware安装Centos6.8设置ip无法远程连接问题

    今天使用VMware安装Centos6.8minimal版本再设置ip地址的时候遇到了一些麻烦,就是无法ping通Centos操作系统的配置的ip从而无法用Xshell远程连接上. 如何配置请看下面的 ...

  9. iTOP-6818开发板设置NFS共享目录的实现

    NFS 共享目录的制作过程.主要分为两个步骤:1.搭建 NFS 服务器2.配置内核. NFS 是 Network FileSystem 的缩写,是由 SUN 公司研制的 UNIX 表示层协议(pres ...

随机推荐

  1. Android.mk相关知识

    Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.要掌握jni,就必须熟练掌握Andr ...

  2. iOS关于启动页自定义特殊处理

    平常开发中对于启动页可能会有一些特别的要求,比如在启动页加动画或加一些按键可以响应事件等,最近项目中要在启动页增加版本号,因为版本号是不断的改变,所以要动态实现把它加到启动页上:在XCode上面配置的 ...

  3. Xcode cannot launch because the device is locked.

    When you plug in your iPhone, it will ask you to trust the computer. If you already trust and unlock ...

  4. 【代码笔记】iOS-多张图片合成一张

    代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...

  5. 如何开启win7端口的图文教程

    Windows 7/Vista/XP/2003等系统中的远程终端服务是一项功能非常强大的服务,下面来教教大家如何开启端口:打开“控制面板”中的“Windows防火墙”,点击左侧的“高级设置” 右击“入 ...

  6. DevExpress ASPxSplitter ClientSideEvents-PaneExpanded 时间用法

    在webform中的devexpress aspxsplitter中套用了jquery-easyui的 tabs id=tt <div id="tt" class=" ...

  7. Java字符串中常见的10个问题

    下面是Java中10个最常见的关于字符串的问题. 怎样比较字符串?使用==还是equals() 简单的说,“==”用于判断引用是否相等,equals()用于判断值是否相等.除非你要比较两个字符串是否是 ...

  8. java获取当前星期几

    //获取当前星期几Calendar calendar;calendar = Calendar.getInstance();System.out.println(calendar);System.out ...

  9. Tomcat指定特定JDK版本

    我们知道在Linux服务器上,可以安装多个版本的JDK,那么当有多个JDK时,是否可以为Tomcat这类应用程序指定对应的JDK版本呢?答案是可以,指定tomcat使用特定的JDK版本.今天正好碰到这 ...

  10. Iterator(迭代器)的使用

    迭代对于我们搞Java的来说绝对不陌生.我们常常使用JDK提供的迭代接口进行Java集合的迭代. Iterator iterator = list.iterator(); while(iterator ...