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

时间:2022-04-04 23:09:32

     环境介绍:

           服务器:centos  172.16.250.170

           客户端:centos  172.16.250.172

    先用rpm -qa命令查看所需安装包(nfs-utilsrpcbind)是否已经安装:

  [root@localhost/]# rpm -qa | grep "rpcbind" rpcbind-0.2.0-11.el6.x86_64

  [root@ localhost /]# rpm -qa | grep "nfs"

  nfs-utils-1.2.3-39.el6.x86_64 nfs4-acl-tools-0.3.3-6.el6.x86_64 nfs-utils-lib-1.1.5-6.el6.x86_64

  如果没有以上的信息执行下面的语句(注意客户机和服务机都需要执行):

 [root@ localhost /]# yum -y install nfs-utils rpcbind

 服务器端配置:

1. 在服务器上创建NFS共享目录:mkdir /usr/local/test

2. 设置共享目录的读写权限: chmod 666 /usr/local/test

3. 编辑export文件:  vi /etc/exports

 在文本exports 里面输入下面内容

/usr/local/test/172.16.250.172(insecure,rw,no_root_squash,no_all_squash,sync)

 注意地址和参数表之间没有空格。如果下面设置的mountd端口大于1024,需要在参数表里加入参数:insecure

配置生效:

[root@local /]# exportfs  -r

注:配置文件说明:

/usr/local/test/ 为共享的目录,使用绝对路径。

172.16.250.172(rw,no_root_squash,no_all_squash,sync) 为客户端的地址及权限,地址可以是一个网段(如:172.16.250.0/24),一个IP地址或者是一个域名,域名支持通配符,如:*.hpce.cn,地址与权限中间没有空格。

权限说明:

rwread-write,可读写;

roread-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squashNFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squashNFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobodynfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,通常是nobodynfsnobody,可以在此处自行设定;

anongid:匿名用户的GID值。

5. 启动服务rpcbindnfs服务:

[root@ localhost /]#service rpcbind  start

[root@ localhost /]#service nfs  start

服务器端防火墙设置(NFS 开启防墙配置):

修改/etc/services文件:

配置rpcnfsdrquotadmountd使用的端口。配置之前先检查一下是否已经配置过了,已经配过的就不用配置了。没有配置的,要分配一个在此文件中未被使用的端口号。我的机器默认配置了:rpcnfsdrquotad

mountd: 没有配置。手工加上:

mountd          48620/tcp               #rpc.mountd

mountd          48620/udp               #rpc.mountd

如果mountd占用端口大于 1024,在文件 /etc/exports里需要加入参数insecure。如:172.16.250.172(insecure,rw,async,root_squash,no_all_squash)

重启NFS服务:

service nfs restart

在防火墙配置文件里开放上面配置的端口:

打开文件:vim /etc/sysconfig/iptables

加入粗体字部分的内容:

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

#rpc

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

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

#nfsd

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

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

#rquotad

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

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

#mountd

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

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

-A INPUT -j REJECT --reject-with icmp-host-prohibited

客户端挂载:

 

创建挂载目录: mkdir /usr/local/test

查看服务器抛出的共享目录信息:

[root@localhost/]#showmount -e 172.16.250.170

出现以下信息说明配置正确

Export list for 172.16.250.170:

/usr/local/test 172.16.250.172

如果显示:rpc mount export: RPC: Unable to receive; errno = No route to host,则需要在服务端关闭防火墙。

为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议:

mount -t nfs 172.16.250.170:/usr/local/test  /usr/local/test  -o proto=tcp -o nolock

检查挂载是否成功:

[root@localhost ~]# mount

/dev/sda2 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

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)

vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

172.16.250.170:/usr/local/test on /usr/local/test type nfs (rw,proto=tcp,nolock,vers=4,addr=172.16.250.170,clientaddr=172.16.250.172)

出现上面信息说明挂载成功后即可访问共享的NFS文件系统了。

4、测试:

客户端生成一个文件:

[root@localhost ~]# cd /usr/local/test/

[root@ localhost test]# echo "hello nfs test">>test

[root@ localhost test]# ll

total 4

-rw-r--r-- 1 root root 15 Apr  9 13:24 test

[root@ localhost test]#

服务端检查:

[root@centos2 /]# cd /usr/local/test/

[root@centos2 test]# ll

total 4

-rw-r--r-- 1 root root 15 Apr  9 13:24 test

[root@centos2 test]#