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服务自身的端口
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) |