Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33202
  • 博文数量: 17
  • 博客积分: 735
  • 博客等级: 军士长
  • 技术积分: 145
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-25 18:52
文章分类
文章存档

2011年(1)

2010年(16)

我的朋友
最近访客

分类: LINUX

2010-02-19 21:01:36

               NFS服务配置及使用

实验环境:Red Halt Enetprist Linux 5(服务器)

实验要求:在IP地址为172.19.12.3的主机上发布共享目录/temp,允许所有人可以读取该目录下的文件,其中IP地址为172.19.12.6的主机可以读写该目录

1、检查是否安装nfs-utilsportmap(这个两个服务时启动nfs所必须得程序)

命令:

[root@localhost ~]#rpm –q nfs-utils

[root@localhost ~]#rpm –q portmap

2、启动NFSportmap程序:

启动portmap的命令如下:

[root@localhost ~]# service portmap start

启动NFS服务的两条等效命令如下:

[root@localhost ~]# /etc/init.d/nfs start

[root@localhost ~]# service nfs start

同样,对于停止NFS的两条等效命令:

[root@localhost ~]# /etc/init.d/nfs stop

[root@localhost ~]# service nfs stop

重启NFS服务的等效命令:

[root@localhost ~]# /etc/init.d/nfs restart

[root@localhost ~]# service nfs restart

3、检查主机和NFS服务器的网络连通性

查看主机的IP地址:

[root@localhost ~]# ifconfig

本主机的IP地址是:172.19.12.5

查看NFS服务器的IP地址:

[root@localhost ~]# ifconfig

NFS服务器的IP地址是:172.19.12.3

检查主机是否能与服务器连同:

在主机的终端输入下面命令:

[root@localhost ~]# ping 172.19.12.3

ping后面的IP地址是你的NFS服务器的IP地址。

Ctrl+C结束测试

测试结果显示主机能与NFS服务器连同。

4、在NFS服务器的根目录下面创建共享的目录与文件

创建共享目录:

[root@localhost ~]# mkdir /temp

进入/temp并创建一个目录和文件:

[root@localhost ~]# cd /temp

[root@localhost ~]# mkdir testfile

[root@localhost ~]#touch zijuan0810

5、在NFS服务器上编辑/etc/exports文件

/etc目录中exports文件是一个空文件,我们必须编写它。如果/etc没有这个文件,那你就自己创建这个文件。其中,文件的内容就是我们服务器要共享的目录,格式如下:

<共享的目录> 空格[客服机定义1(参数)]空格 [客服机定义2(参数)]····

注意:这里的空格非常重要,这是格式的要求,如果没有空格,则文件将不能被读取。

本例中的exports文件内容如下:

/temp *(ro) 172.19.12.6(rw)

6、在NFS服务器上重启NFS服务和portmap,并查看我们共享的目录:

[root@localhost ~]# service portmap restart

[root@localhost ~]# service nfs restart

7、在主机上查看NFS服务器的共享目录,并挂载:

[root@localhost ~]# showmount –e 172.19.12.3

[root@localhost ~]# mkdir /nfs

[root@localhost ~]# mount –t nfs 172.19.12.3:/temp /nfs

(注意:IP地址冒号后面的是服务器共享的目录的绝对路径,空格后面的是我们要挂载的绝对路径。这里是我/nfs,是我们刚刚在根目录下面创建的一个目录。)

这里我们用df命令查看了我们挂载的目录。

这里我们的NFS服务器就算成功了,若要卸载/nfs目录:

[root@localhost ~]# umount /nfs

注意1:这里可能有点朋友开了防火墙,在主机向服务器请求显示共享的目录的时候,即使用命令:

root@localhost ~]# showmount –e 172.19.12.3

时,会被拒绝,显示:

mount clntudp_create: rpc: port mapper failure - rpc: unable to receive

问题在防火墙,对应的服务为iptables,对于安全的网络就不用防火墙了,service iptables stop停止就行了,
如果一定要使用iptables的话,应该怎么设置呢?

使用 iptables 限制大范围联机:
假设我们的 NFS 主要是针对内部网络开放而已,而对于外部网络只有对学术网络开放,亦即是 140.0.0.0/8 ,那么您可以使用这样的语法:

iptables -A INPUT -i eth0 -p TCP -s 192.168.0.0/24 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p UDP -s 192.168.0.0/24 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p TCP -s 140.0.0.0/8    --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p UDP -s 140.0.0.0/8    --dport 111 -j ACCEPT

这样大致上就可以让 192.168.0.0/24 这个 C Class 的网域与 140.0.0.0/8 这个 A Class 的网域到您的主机里面来,而其它的联机就视您的原本的 iptables 的状态而定!

 

注意2

挂载时,串口可能会提示:
RPC: failed to contact portmap (errno -5).
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
lockd_up: makesock failed, error=-5
portmap: server localhost not responding, timed out
RPC: failed to contact portmap (errno -5).
 原因:nfs mount 默认选项包括文件锁,依赖于portmap提供的动态端口分配功能
 简单的解决方法:kill 文件锁!mount -o nolock

[root@localhost ~]# mount –t nfs -o nolock 172.19.12.3:/temp /nfs
 运行没有报错,但是

[root@localhost ~]# cd /nfs
 /nfs/: bad directory
 估计是权限的问题,修改nfs server上配置文件/etc/exports
 /temp      172.19.12.3(rw,all_squash,anonuid=500,anongid=500,sync) 10.0.0.162(rw,sync) 10.0.0.6(rw,sync) //将用户权限压缩为hary

或者直接在NFSF服务器上,修改共享目录的权限,将其权限开到最大:

[root@localhost ~]# chmod -R 777 /temp

问题就解决了!

至于第二个要求就很简单了,只要用命令:

[root@localhost ~]# ifconfig eth0 172.19.12.6

将主机的IP该了,后面的步骤就和上面的一样,这里就不重复了。

搞定了!!!!

 

阅读(655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~