您的位置:首页 > 运维架构 > Linux

linux开启防火墙挂载nfs

2015-12-14 13:54 549 查看
一、配置nfs需要安装的软件包:

   nfs-utils-lib-1.0.8-7.9.el5

   nfs-utils-1.0.9-60.el5

   nfs-utils-lib-devel-1.0.8-7.9.el5

   portmap-4.0-65.2.2.1(或者是CentOS6.X之后的rpcbind-0.2.0-11.el6.x86_64都可以)

   (安装的时候可以用yum库来安装,会智能安装所需的依赖包)

二、配置nfs共享文件:

1、开启portmap服务:service portmap start;

2、修改配置文件/etc/sysconfig/nfs:删除MOUNTD_PORT=892前面的#号,也可以修改成其余没有被占用的端口号

3、添加需要的共享文件/etc/exports:

    例如:/first  *(rw,sync,no_root_squash)
    

    vim /etc/exports

    在exports文件中添加
    /sharedisk    192.168.0.0/24(rw,no_root_squash,async) *(ro)

    /testdisk *(ro)

第一行表示所有192.168.0.0网段的都可以以root身份读写该目录下的文件,其他用户或者主机只有读的权限。

第二行则表示任意主机或者用户都只有的读取的权限

   

(修改完这个文件后可以立即更新到系统内核,一种方式是重启服务,但是还可以通过执行这个命令来实现:exportfs -arv)

     #表示将/sharedisk这个目录共享给192.168.0.*这些客户机,括号中的参数设置意义为:

     ro                          该主机对该共享目录有只读权限

     rw                         该主机对该共享目录有读写权限

     root_squash         客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

     no_root_squash   客户机用root访问该共享文件夹时,不映射root用户

     all_squash            客户机上的任何用户访问该共享目录时都映射成匿名用户

     anonuid                将客户机上的用户映射成指定的本地用户ID的用户

     anongid                将客户机上的用户映射成属于指定的本地用户组ID

     sync                      资料同步写入到内存与硬盘中

     async                    资料会先暂存于内存中,而非直接写入硬盘

     insecure                允许从这台机器过来的非授权访问

4、启动portmap(CentOS5.X之前)或者rpcbind(CentOS 6.X之后)

5、启动nfs服务:service nfs start;

6、命令查看nfs使用的端口:netstat -nultp

    portmap(111端口),nfs(2049端口),nfs挂载端口(892端口),其中111和892是tcp,udp都用。

7、添加防火墙策略(记得先查看默认策略):

    iptables -I INPUT -p tcp -m multiport --dports 111,892,2049 -j ACCEPT

    iptables -I INPUT -p udp -m multiport --dports 111,892 -j ACCEPT

    (当然,防火墙出口也需要添加这些策略)

三、客户端挂在nfs共享:

1、查看服务器共享目录:showmount -e 服务器ip;

2、挂载服务器共享目录:mount -t nfs server-ip:/first 本地目录

四、相关问题以及解决方案:

1、NFS服务启动失败:

Starting NFS quotas: Cannot register service: RPC: Unable to receive; errno = Connection refused

rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).[FAILED]

   解决方法:没有启动portmap,将portmap启动即可。

2、客户端showmount报错:

    mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive

    解决方法:没有打开配置文件中的892端口或者是防火墙禁止了tcp协议的892端口,修改配置文件,启用892端口并且防火墙允许tcp端口892通过。

3、可以showmount看到共享,可是mount的时候报错:

    mount: mount to NFS server 'server-ip' failed: timed out (retrying).

    解决方法:没有将892或者111端口的udp协议允许。添加iptables策略允许相应端口通过。

4、可以showmount看到共享,可是mount的时候报错:

    mount: mount to NFS server 'server-ip' failed: System Error: Connection refused.

    解决方法:没有允许tcp协议2094或者111端口通过,添加iptables策略允许响应端口通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息