一、环境介绍:
服务器: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>
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiYWan5yculWYt9GZfV2Z1h2Xvd2bs9CXzV2Zh1WavwVbvNmLz5Wah12bkV2Z1hmLjlGdhR3cvw1LcpDc0RHaiojIsJye.gif)
保存退出;
使配置生效:
<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">>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>