nfs文件共享

目的:公司现在有两台服务器,做了负载均衡,但是只有一台存放了一些网站图片和文件,每次访问到其中一台的时候就会出现图片找不到的情况,所以准备用nfs来解决这个问题

一 nfs服务端操作:

1 安装nfs-utils 和rpcbind 两个软件包 (rpcbind是用来通信的)


2 编辑/etc/exports 这个文件(默认是空的)在里面添加

/tmp 192.168.1.1(rw,sync)  ( 共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。)

3 启动/etc/init.d/rpcbind  和/etc/init.d/nfs 这两个服务

二 客户端验证:

验证,在客户端输入showmount -e 192.168.1.100(服务器ip)回车如果看到共享的目录就成功了

最后挂载这个目录到你的客户端  mount -t nfs 192.168.1.100:/tmp /mnt

如果你在挂载的这个目录里无法新建东西就更改权限就行了(注意在nfs服务器上面修改/tmp目录的权限即可)

这就完成了整个操作,但是在实际环境中服务器上面开启了iptables,而且不能关闭,所以造成了nfs一直不能通信。

###################################################################################

解决办法:(只在服务端操作即可)

注意:如果你的主机开启了防火墙同时又想使用nfs,则必须在防火墙上面开启如下端口

其中 rpcbind  nfs 服务端口是固定的分别是 111 2049

另外 rquotad nlockmgr mountd 服务端口是随机的。由于端口是随机的,这导致防火墙无法设置。

这时需要配置/etc/sysconfig/nfs 使 rquotad nlockmgr mountd 的端口固定。

找到以下几项,将前面的#号去掉。

RQUOTAD_PORT=875
LOCKD_TCPPORT=32803 
LOCKD_UDPPORT=32769
MOUNTD_PORT=892

service nfs restart

[root@bk /]# rpcinfo -p

 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
    100024    1   udp  53713  status
    100024    1   tcp  47753  status
    100011    1   udp    875  rquotad
    100011    2   udp    875  rquotad
    100011    1   tcp    875  rquotad
    100011    2   tcp    875  rquotad
    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  32769  nlockmgr
    100021    3   udp  32769  nlockmgr
    100021    4   udp  32769  nlockmgr
    100021    1   tcp  32803  nlockmgr
    100021    3   tcp  32803  nlockmgr
    100021    4   tcp  32803  nlockmgr
    100005    1   udp    892  mountd
    100005    1   tcp    892  mountd
    100005    2   udp    892  mountd
    100005    2   tcp    892  mountd
    100005    3   udp    892  mountd

    100005    3   tcp    892  mountd

添加防火墙规则,在服务端上面的/etc/sysconfig/iptables里面加入下面这些:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 875 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 875 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 892 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 892 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2049 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 32803 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 32803 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 32769 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 32769 -j ACCEPT



最后验证 在客户端输入showmount -e 192.168.1.100(服务器ip)回车如果看到共享的目录就成功了


你可能感兴趣的:(iptables,nfs)