-----------------------------------
一、前言
二、环境
三、案例
四、配置
1.服务器端
2.客户端
五、测试
-----------------------------------
一、前言
NFS,是Network File System的简写,即网络文件系统,最初是由Sun公司发展而来。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
二、环境
1.系统:CentOS6.4 32位 两台
2.IP:
服务器端:192.168.2.100/24
客户机端:192.168.2.10/24
3.软件包:
rpcbind RPC主程序,NFS其实可以被视为一个RPC服务,而要启动任何一个RPC服务之前,我们都需要做好port的对应 (mapping) 的工作才行,这个工作其实就是『 rpcbind 』这个服务所负责的!也就是说,在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行! (在 CentOS 5.x 以前这个软件称为 portmap,在 CentOS 6.x 之后才称为 rpcbind 的!)
nfs-utils NFS主程序,就是提供rpc.nfsd及rpc.mountd这两个NFS daemons与其他相关documents与说明文件、执行文件等的软件。
4./etc/exports配置文件权限参数
三、案例
1.假设服务器的IP为192.168.2.100。
2./tmp共享为可读写,并且不限制用户身份的方式,共享给192.168.2.0/24网段的所有计算机。
3./home/nfs共享的属性为只读,可提供除了网段内的工作站外,向Internet亦提供数据内容。
4./home/upload作为192.168.2.0/24这个网段的数据上传目录,其中,/home/upload的用户及所属组为nfs-upload这个名字,它的UID与GID均为210。
5./home/andy这个目录仅共享给192.168.2.10这台主机,以供该主机上面andy这个用户使用,也就是说,andy在192.168.2.10及192.168.2.100上均有账号,且账号均为andy。
四、配置
1).服务器端
# yum install rpcbind //安装rpcbind和nfs-utils # yum install nfs-utils # vim /etc/exports //编辑共享清单 1 /tmp 192.168.2.0/24(rw,no_root_squash) 2 /home/nfs 192.168.2.0/24(ro) *(ro,all_squash) 3 /home/upload 192.168.2.0/24(rw,all_squash,anonuid=210,anongid=210) 4 /home/andy 192.168.2.10(rw) # ll -d /tmp //查看及编辑共享文件的权限设置 drwxrwxrwt. 7 root root 4096 Apr 25 04:13 /tmp # mkdir /home/nfs # chmod 755 -R /home/nfs # groupadd -g 210 nfs-upload # useradd -g 210 -u 210 -M nfs-upload # mkdir /home/upload # chown -R nfs-upload.nfs-upload /home/upload # useradd andy # passwd andy # ll -d /home/andy/ drwx------. 4 andy andy 4096 Apr 25 04:58 /home/andy/ # service rpcbind start //启动RPC服务 Starting rpcbind: [ OK ] # service nfs start //启动nfs服务 Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS mountd: [ OK ] Starting NFS daemon: [ OK ] # exportfs -rv //查看共享清单 exporting 192.168.2.10:/home/andy exporting 192.168.2.0/24:/home/upload exporting 192.168.2.0/24:/home/nfs exporting 192.168.2.0/24:/tmp # netstat -tupln |grep -E '(rpc|nfs)' //查看nfs端口 tcp 0 0 0.0.0.0:875 0.0.0.0:* LISTEN 6806/rpc.rquotad tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 6728/rpcbind tcp 0 0 0.0.0.0:40729 0.0.0.0:* LISTEN 6810/rpc.mountd tcp 0 0 0.0.0.0:41626 0.0.0.0:* LISTEN 6810/rpc.mountd tcp 0 0 0.0.0.0:34053 0.0.0.0:* LISTEN 6810/rpc.mountd tcp 0 0 :::41004 :::* LISTEN 6810/rpc.mountd tcp 0 0 :::111 :::* LISTEN 6728/rpcbind tcp 0 0 :::41475 :::* LISTEN 6810/rpc.mountd tcp 0 0 :::58726 :::* LISTEN 6810/rpc.mountd udp 0 0 0.0.0.0:42382 0.0.0.0:* 6810/rpc.mountd udp 0 0 0.0.0.0:967 0.0.0.0:* 6728/rpcbind udp 0 0 0.0.0.0:58584 0.0.0.0:* 6810/rpc.mountd udp 0 0 0.0.0.0:50782 0.0.0.0:* 6810/rpc.mountd udp 0 0 0.0.0.0:875 0.0.0.0:* 6806/rpc.rquotad udp 0 0 0.0.0.0:111 0.0.0.0:* 6728/rpcbind udp 0 0 :::967 :::* 6728/rpcbind udp 0 0 :::111 :::* 6728/rpcbind udp 0 0 :::39664 :::* 6810/rpc.mountd udp 0 0 :::54531 :::* 6810/rpc.mountd udp 0 0 :::35844 :::* 6810/rpc.mountd # rpcinfo -p //查看rpc服务注册状况 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 50782 mountd 100005 1 tcp 41626 mountd 100005 2 udp 42382 mountd 100005 2 tcp 40729 mountd 100005 3 udp 58584 mountd 100005 3 tcp 34053 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 59247 nlockmgr 100021 3 udp 59247 nlockmgr 100021 4 udp 59247 nlockmgr 100021 1 tcp 40639 nlockmgr 100021 3 tcp 40639 nlockmgr 100021 4 tcp 40639 nlockmgr # hostname nuo.com //修改主机名,尽量重启才生效 # vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=nuo.com
2).客户端
# yum install rpcbind //安装rpcbind和nfs-utils # yum install nfs-utils //仅使用nfs的工具命令,不启动服务 # service rpcbind start //启动RPC服务 # vim /etc/hosts //添加hosts文件 192.168.2.100 nuo.com # ping nuo.com //需ping通 PING nuo.com (192.168.2.100) 56(84) bytes of data. 64 bytes from nuo.com (192.168.2.100): icmp_seq=1 ttl=64 time=0.943 ms # showmount -e nuo.com //查看远程服务器共享清单 Export list for nuo.com: /home/andy 192.168.2.10 /home/upload 192.168.2.0/24 /home/nfs (everyone) /tmp 192.168.2.0/24 # cd /mnt # mkdir tmp nfs upload andy //创建挂载点 # mount -t nfs nuo.com:/tmp /mnt/tmp //手动挂载 # mount -t nfs nuo.com:/home/nfs /mnt/nfs # mount -t nfs nuo.com:/home/upload /mnt/upload # mount -t nfs nuo.com:/home/andy /mnt/andy # mount //查看挂载 nuo.com:/tmp on /mnt/tmp type nfs (rw,vers=4,addr=192.168.2.100,clientaddr=192.168.2.10) nuo.com:/home/nfs on /mnt/nfs type nfs (rw,vers=4,addr=192.168.2.100,clientaddr=192.168.2.10) nuo.com:/home/upload on /mnt/upload type nfs (rw,vers=4,addr=192.168.2.100,clientaddr=192.168.2.10) nuo.com:/home/andy on /mnt/andy type nfs (rw,vers=4,addr=192.168.2.100,clientaddr=192.168.2.10) # vim /etc/fstab //自动挂载 nuo.com:/tmp /mnt/tmp nfs defaults 0 0 nuo.com:/home/nfs /mnt/nfs nfs defaults 0 0 nuo.com:/home/upload /mnt/upload nfs defaults 0 0 nuo.com:/home/andy /mnt/andy nfs defaults 0 0 # mount -a
五、测试
客户端(192.168.2.10,root身份登录)
# cd /mnt/tmp/ # touch 1.txt # cd /mnt/nfs/ # touch 2.txt //只读权限 touch: cannot touch `2.txt': Read-only file system # cd /mnt/upload/ # touch 3.txt # useradd andy //创建andy用户 # passwd andy # su - andy $ cd /mnt/andy/ $ touch 4.txt
如果出现无法进入andy目录,如下,要检查服务器端和客户端的andy的uid是否相同,只有必须相同才能进入andy目录。
$ cd /mnt/andy/ -bash: cd: /mnt/andy/: Permission denied # grep andy /etc/passwd //在服务器端和客户端执行,uid都是502. andy:x:502:502::/home/andy:/bin/bash