天天看点

CentOS 6.5系统下安装和配置NFS服务

一、环境介绍:

  服务器:centos 192.168.1.225

  客户端:centos 192.168.1.226

二、安装:

NFS的安装配置:

centos 5 :

1

<code>yum -y </code><code>install</code> <code>nfs-utils portmap</code>

<code>yum -y </code><code>install</code> <code>nfs-utils rpcbind</code>

三、服务器端配置:

1、创建共享目录:

<code>[root@centos2 /]</code><code># mkdir /usr/local/test</code>

2、NFS文件配置:

2

3

<code>[root@centos2 /]</code><code># vi /etc/exports </code>

<code>#增加一行:</code>

<code>/usr/local/test/</code> <code>192.168.1.226(rw,no_root_squash,no_all_squash,</code><code>sync</code><code>)</code>

CentOS 6.5系统下安装和配置NFS服务

 保存退出;

使配置生效:

<code>[root@centos2 /]</code><code># exportfs -r</code>

注:配置文件说明:

rw:read-write,可读写;

ro:read-only,只读;

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

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

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

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

anongid:匿名用户的GID值。

3、启动:

centos6:

4

5

6

7

8

9

10

<code>[root@centos2 /]</code><code># service rpcbind start</code>

<code>Starting rpcbind:                                          [  OK  ]</code>

<code>[root@centos2 /]</code><code># service nfs start</code>

<code>Starting NFS services:                                     [  OK  ]</code>

<code>Starting NFS quotas:                                       [  OK  ]</code>

<code>Starting NFS mountd:                                       [  OK  ]</code>

<code>Stopping RPC idmapd:                                       [  OK  ]</code>

<code>Starting RPC idmapd:                                       [  OK  ]</code>

<code>Starting NFS daemon:                                       [  OK  ]</code>

<code>[root@centos2 /]</code><code>#</code>

centos 5

<code>[root@centos2 /]</code><code># service portmap start</code>

四、客户端挂载:

1、创建需要挂载的目录:

<code>[root@localhost ~]</code><code># mkdir /usr/local/test</code>

<code>[root@localhost ~]</code><code>#</code>

2、测试挂载:

<code>[root@localhost ~]</code><code># showmount -e 192.168.1.225</code>

<code>Export list </code><code>for</code> <code>192.168.1.225:</code>

<code>/usr/local/test</code> <code>192.168.1.226</code>

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

3、挂载:

11

12

13

<code>[root@localhost ~]</code><code># mount -t nfs 192.168.1.225:/usr/local/test /usr/local/test</code>

<code>[root@localhost ~]</code><code># mount</code>

<code>/dev/mapper/VolGroup-lv_root</code> <code>on / </code><code>type</code> <code>ext4 (rw)</code>

<code>proc on </code><code>/proc</code> <code>type</code> <code>proc (rw)</code>

<code>sysfs on </code><code>/sys</code> <code>type</code> <code>sysfs (rw)</code>

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

<code>tmpfs on </code><code>/dev/shm</code> <code>type</code> <code>tmpfs (rw)</code>

<code>/dev/sda1</code> <code>on </code><code>/boot</code> <code>type</code> <code>ext4 (rw)</code>

<code>none on </code><code>/proc/sys/fs/binfmt_misc</code> <code>type</code> <code>binfmt_misc (rw)</code>

<code>sunrpc on </code><code>/var/lib/nfs/rpc_pipefs</code> <code>type</code> <code>rpc_pipefs (rw)</code>

<code>nfsd on </code><code>/proc/fs/nfsd</code> <code>type</code> <code>nfsd (rw)</code>

<code>192.168.1.225:</code><code>/usr/local/test</code> <code>on </code><code>/usr/local/test</code> <code>type</code> <code>nfs (rw,vers=4,addr=192.168.1.225,clientaddr=192.168.1.226)</code>

如果信息如上显示则挂载成功!

4、测试:

客户端生成一个文件:

<code>[root@centos2 /]</code><code># cd /usr/local/test/</code>

<code>[root@centos2 </code><code>test</code><code>]</code><code># echo "hello nfs test"&gt;&gt;test</code>

<code>[root@centos2 </code><code>test</code><code>]</code><code># ll</code>

<code>total 4</code>

<code>-rw-r--r-- 1 root root 15 Apr  9 13:24 </code><code>test</code>

<code>[root@centos2 </code><code>test</code><code>]</code><code>#</code>

服务端检查:

挂载成功!

五、解除挂载:

<code>[root@localhost ~]</code><code># umount /usr/local/test</code>

如果遇到:umount.nfs: /usr/local/test: device is busy

可能用命令:

<code>[root@localhost /]</code><code># fuser -m -v /usr/local/test</code>

<code>                     </code><code>用户     进程号 权限   命令</code>

<code>/usr/local/test/</code><code>:              root       2798 ..c.. </code><code>bash</code>

<code>                     </code><code>root       2996 ..c.. </code><code>su</code>

<code>[root@localhost /]</code><code># kill -9 2798</code>

<code>[root@localhost /]</code><code># kill -9 2996</code>

<code>[root@localhost /]</code><code># umount /usr/local/test</code>

<code>[root@localhost /]</code><code>#</code>

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

<code># Local services  </code>

<code>    </code><code>mountd 1011</code><code>/tcp</code> <code>#rpc.mountd  </code>

<code>    </code><code>mountd 1011</code><code>/udp</code> <code>#rpc.mountd  </code>

<code>    </code><code>rquotad 1012</code><code>/tcp</code> <code>#rpc.rquotad  </code>

<code>    </code><code>rquotad 1012</code><code>/udp</code> <code>#rpc.rquotad</code>

2、重起Linux NFS服务

<code> </code><code>service nfs restart</code>

3、此时rpc相关端口已经被固定,可以为Linux NFS添加防火墙规则

14

15

<code>    </code><code>#portmap  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p tcp --dport 111 -j ACCEPT  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p udp --dport 111 -j ACCEPT  </code>

<code>    </code><code>#nfsd  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p tcp --dport 2049 -j ACCEPT  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p udp --dport 2049 -j ACCEPT  </code>

<code>    </code><code>#mountd  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p tcp --dport 1011 -j ACCEPT  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p udp --dport 1011 -j ACCEPT  </code>

<code>    </code><code>#rquotad  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p tcp --dport 1012 -j ACCEPT  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p udp --dport 1012 -j ACCEPT  </code>

<code>    </code><code>#rpc.statd  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p tcp --dport 32768 -j ACCEPT  </code>

<code>    </code><code>/sbin/iptables</code> <code>-A INPUT -s 192.168.1.0</code><code>/254</code> <code>-p udp --dport 32768 -j ACCEPT</code>

<code>---TCP方法成功-------------------------------------------</code>

<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT</code>

<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT</code>

<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 1011 -j ACCEPT</code>

<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 1012 -j ACCEPT</code>

<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 32768 -j ACCEPT</code>

客户端在挂载的时候遇到的一个问题如下,可能是网络不太稳定,NFS默认是用UDP协议,换成TCP协议即可:

<code>mount</code> <code>-t nfs 192.168.1.225:</code><code>/usr/local/test</code> <code>/usr/local/test</code>  <code>-o proto=tcp -o nolock</code>

<code> </code>

继续阅读