Chinaunix首页 | 论坛 | 博客
  • 博客访问: 185039
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 552
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-14 14:02
文章分类
文章存档

2015年(1)

2014年(24)

2013年(8)

我的朋友

分类: LINUX

2014-09-28 14:24:33

     NFS是Network File System的简写,即网络文件系统. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。NFS服务是C/S架构的服务。
     首先安装NFS服务
1.在安装nfs之前有一个重要的服务必须已经安装在centos5.5中叫做portmap,但是在6.x以后的版本中被称作为rpcbind,系统默认已经安装了这个服务。
[root@localhost ~]# rpm -q portmap

         portmap-4.0-65.2.2.1
如果没有安装,可以直接使用yum install postmap* -y安装即可 
 2.安装NFS服务:系统默认也是安装了这个服务的
[root@localhost ~]# rpm -q nfs-utils

nfs-utils-1.0.9-24.el5
如果没有安装,yum install nfs-utils -y
3.启动服务
     这里我们要注意一下启动顺序,首先要启动portmap服务,然后才能启动nfs服务。因为nfs启动过程以后会到portmap这里注册,得到一些nfs所需要的服务的一些端口(比如rpc.nfsd、rpc.mountd、rpc.lockd、rcp.statd等等)。
    service portmap restart 启动portmap服务
*service rpcbind restart (在centos6.x中使用该命令)
   portmap-4.0-65.2.2.1
[root@localhost ~]# service portmap restart

停止 portmap: [确定]                                                                  
启动 portmap: [确定]                                                                  

[root@localhost ~]# service nfslock restart

停止 NFS 锁定:     [确定]                                                             
停止 NFS statd:    [确定]                                                             
启动 NFS statd:    [确定]                                                                             
[root@localhost ~]# service nfs restart

关闭 NFS mountd:        [确定]      
关闭 NFS 守护进程:      [确定]                                                        
关闭 NFS 服务:          [确定]   
启动 NFS 服务:          [确定]  
启动 NFS 守护进程:      [确定]    
启动 NFS mountd:        [确定]                                                                            
 ok,所有服务都已经启动了。
 4.分配固定端口
   由于portmap(rpcbind)是随机来分配端口号的,这对于开启防火墙的服务器来说很难管理,所以我们需要给nfs的各个服务设置一些固定的端口号,这里我们需要修改/etc/sysconfig/nfs这个文件,这里修改几个主要的端口即可
     LOCKD_TCPPORT=4000

     LOCKD_UDPPORT=4000

     MOUNTD_PORT=4001

     STATD_PORT=4002
 好了,修改完这些端口就可以了
 5.添加iptables条目
iptables -I INPUT 1 -p tcp --dport 4000 -j ACCEPT

    iptables -I INPUT 1 -p tcp --dport 4001 -j ACCEPT

    iptables -I INPUT 1 -p tcp --dport 4002 -j ACCEPT

    iptables -I INPUT 1 -p udp --dport 4000 -j ACCEPT

    iptables -I INPUT 1 -p udp --dport 4001 -j ACCEPT

    iptables -I INPUT 1 -p udp --dport 4002 -j ACCEPT

    iptables -I INPUT 1 -p tcp --dport 111 -j ACCEPT     #rpc服务的端口

    iptables -I INPUT 1 -p udp --dport 111 -j ACCEPT     #rpc服务的端口

    iptables -I INPUT 1 -p tcp --dport 2049 -j ACCEPT    #NFS服务自身的端口
service iptables save
  6.重启portmap服务,查看所分配的端口
[root@localhost ~]# service portmap restart

    停止 portmap: [确定]                                                                                        

    启动 portmap:    [确定]                                                                                        

    
   
[root@localhost ~]# rpcinfo -p localhost     #查看rpc分配给本机的端口号

             程序 版本 协议     端口

        100000        2     tcp        111    portmapper

        100000        2     udp        111    portmapper

        100024        1     udp     4002    status

        100024        1     tcp     4002    status

        100003        2     udp     2049    nfs

        100003        3     udp     2049    nfs

        100003        4     udp     2049    nfs

        100021        1     udp     4000    nlockmgr

        100021        3     udp     4000    nlockmgr

        100021        4     udp     4000    nlockmgr

        100021        1     tcp     4000    nlockmgr

        100021        3     tcp     4000    nlockmgr

        100021        4     tcp     4000    nlockmgr

        100003        2     tcp     2049    nfs

        100003        3     tcp     2049    nfs

        100003        4     tcp     2049    nfs

        100005        1     udp     4001    mountd

        100005        1     tcp     4001    mountd

        100005        2     udp     4001    mountd

        100005        2     tcp     4001    mountd

        100005        3     udp     4001    mountd

        100005        3     tcp     4001    mountd
 好了,这里我们所更改的端口也都按着我们的意愿分配好了。
  7.NFS配置
  nfs的主要配置文件是/etc/exports
  /share    192.168.1.0/24(rw,sync)
共享目录    可以访问的主机范围(读写,同步)
  以上是一条很简单的共享条目,具体的复杂一些的设置,大家可以google,百度一下。主要是在()内进行一些设置,当然也有允许访问的主机的范围,这里提一点,如果只允许某个主机访问的话,这里掩码要写成32,即192.168.1.211/32 ,这样写才被认作是单独的主机,如果掩码仍然为/24,nfs认为它是一个网段。
  8.客户端连接
   首先看一下,要访问的主机共享的是哪个目录
[root@client ~]# showmount -e 192.168.1.230

     Export list for 192.168.1.230:

     /share 192.168.1.0/24
   接下来,将共享目录挂载到本地
[root@client ~]# mount 192.168.1.230:/share /mnt
  ok,然后cd到/mnt下,你就可以访问1.230共享的nfs了。
[root@client mnt]# touch 123

    [root@client mnt]# ls

     123    
   
本文出自 “风之别鹤” 博客,请务必保留此出处http://addam.blog.51cto.com/5041993/1189435


补充:
一、/etc/export文件说明
这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。关于第三部分,简单介绍一下:
rw:读写
ro:只读

sync :同步模式,内存中数据时时写入磁盘;

async :不同步,把内存中数据定期写入磁盘中;

no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;

root_squash:和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;

all_squash:不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;

anonuid/anongid :要和root_squash 以及all_squash一同使用,用于指定使用NFS的用户限定后的uid和gid,前提是本机的/etc/passwd中存在这个uid和gid。


二、使用exportfs命令,当改变/etc/exports配置文件后,不用重启nfs服务直接用这个exportfs即可。
阅读(2360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~