NFS攻略 - Linux下NFS服务端的设置_Linux_操作系统_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 操作系统 > Linux > NFS攻略 - Linux下NFS服务端的设置

NFS攻略 - Linux下NFS服务端的设置

 2010/11/20 11:19:22  codingstandards  http://codingstandards.javaeye.com  我要评论(0)
  • 摘要:NFS攻略-Linux文件服务器搭建与使用实例本文链接:http://codingstandards.javaeye.com/blog/816376(转载请注明出处)本文内容包括:1NFS概述2Linux下NFS服务端的设置3Linux下NFS客户端的设置4Windows下NFS客户端的安装及设置2Linux下NFS服务端的设置2.1在Linux下配置NFS共享目录下面以实例来讲述如何在Linux下配置NFS服务器,假定我们需要共享的目录是/vmsnfs。如果这个目录还不存在,那么就先创建它
  • 标签:NFS攻略 NFS设置

NFS攻略?-?Linux文件服务器搭建与使用实例

本文链接:http://codingstandards.javaeye.com/blog/816376 ? (转载请注明出处)

?

本文内容包括:

1?NFS概述

2?Linux下NFS服务端的设置

3?Linux下NFS客户端的设置

4?Windows下NFS客户端的安装及设置

?

2?Linux NFS 服务端的设置

?

2.1?在Linux下配置NFS共享目录

?

下面以实例来讲述如何在Linux下配置NFS服务器,假定我们需要共享的目录是/vmsnfs。

?

如果这个目录还不存在,那么就先创建它;否则,跳过此步。

mkdir?/vmsnfs

?

将该目录中所有文件和子目录的属主和组更改为nfsnobody。

chown?-R?nfsnobody?/vmsnfs

chgrp?-R?nfsnobody?/vmsnfs

注:如果以后直接在服务器上的共享目录创建文件或目录,要记得将属主和组设置为nfsnobody。否则客户端在访问时会出现“Permission?denied”。

?

在/etc/exports文件中添加所需要共享的目录及参数,比如

/vmsnfs?*(rw,async)

这里的意思是说,需要共享/vmsnfs这个目录,对所有客户端(*)都是可读写的(rw),并且是异步方式来访问。 因为不设置其他参数, 客户端创建文件或目录时默认的属主和组就是nfsnobody,即使客户端使用的账号是root。这也就是上面为什么要更改文件或目录的属主和组为nfsnobody的原因。

?

让共享目录生效

(重新)启动nfs服务

service?portmap?start

service?nfs?restart

或者

exportfs?-a

?

检查防火墙设置

如果开启了防火墙,那么就要检查一下与nfs有关的端口是否允许访问。

目前我尝试了一些方法,都没法在开启防火墙的情况下正常使用nfs,所以干脆把防火墙关掉了。

chkconfig?iptables?off

service?iptables?stop

有这方面经验的大虾请帮忙补充一下解决办法。

?

如果要永久的共享此目录,最好将相关的服务设置为开机自动启动。

chkconfig portmap on

chkconfig nfs on

?

至此,在Linux下配置NFS服务端的任务就完成了。

?

2.2?在Linux下配置NFS的其它问题

?

Q:能限定共享目录客户端的网段和读写权限吗?

A:可以。比如:可以设置有些网段或机器是只读的,有些是可读写的。如下所示:

/vmsnfs ?192.168.0.0/24(rw,async)?192.168.1.0/255.255.255.0(ro,sync)

/vmsnfs ??192.168.0.0/24(rw)????*(ro)

/vmsnfs??192.168.6.179(rw)?192.168.6.17(ro)

如果想了解更多NFS配置参数,请参考NFS相关资料【1】。

?

Q:怎么确认nfs共享服务已经在运行了?

A:使用chkconfig命令查看portmap和nfs服务是否都已经启动,如下所示:

[root@new55?~]#? chkconfig?--list?portmap

portmap?????????0:关闭??1:关闭??2:启用??3:启用??4:启用??5:启用??6:关闭

[root@new55?~]#? chkconfig?--list?nfs

nfs?????????????0:关闭??1:关闭??2:启用??3:启用??4:启用??5:启用??6:关闭

[root@new55?~]#?

?

Q:怎么确认某个目录已经被分享?

A:使用exportfs可以看到共享目录列表,exportfs?-v可以看到更详细的信息。

[root@new55?~]#? exportfs

/vmsnfs?????????<world>

[root@new55?~]#? exportfs?-v

/vmsnfs?????????<world>(rw,async,wdelay,root_squash,no_subtree_check,anonuid=65534,anongid=65534)

[root@new55?~]#? showmount?-e

Export?list?for?new55:

/vmsnfs?*

[root@new55?~]#?

?

Q:修改了/etc/exports如何使之生效?

A:有多种方式,如下之一:

exportfs -a

exportfs -r

service nfs restart

?

Q:如何显示哪些端口用来提供rpc服务?

A:rpcinfo?-p 或者 rpcinfo?-p?localhost

NFS服务没有启动时

[root@new55?~]#?rpcinfo?-p

???程序?版本?协议???端口

????100000????2???tcp????111??portmapper

????100000????2???udp????111??portmapper

????100024????1???udp????984??status

????100024????1???tcp????987??status

启动 NFS服务之后

[root@new55?~]#?rpcinfo?-p

???程序?版本?协议???端口

????100000????2???tcp????111??portmapper

????100000????2???udp????111??portmapper

????100024????1???udp????984??status

????100024????1???tcp????987??status

????100011????1???udp???1006??rquotad

????100011????2???udp???1006??rquotad

????100011????1???tcp???1009??rquotad

????100011????2???tcp???1009??rquotad

????100003????2???udp???2049??nfs

????100003????3???udp???2049??nfs

????100003????4???udp???2049??nfs

????100021????1???udp??34440??nlockmgr

????100021????3???udp??34440??nlockmgr

????100021????4???udp??34440??nlockmgr

????100003????2???tcp???2049??nfs

????100003????3???tcp???2049??nfs

????100003????4???tcp???2049??nfs

????100021????1???tcp??37635??nlockmgr

????100021????3???tcp??37635??nlockmgr

????100021????4???tcp??37635??nlockmgr

????100005????1???udp????609??mountd

????100005????1???tcp????612??mountd

????100005????2???udp????609??mountd

????100005????2???tcp????612??mountd

????100005????3???udp????609??mountd

????100005????3???tcp????612??mountd

?

Q:怎么看哪些客户端正在用共享目录?

A: 使用showmount?-a查看被客户端挂载过的详细信息,showmount?-d查看被客户端挂载过的共享目录。在showmount手册页中可以 看到showmount?-a看到的信息是不可靠的,像下面列出192.168.6.113就只是曾经访问nfs服务器的机器,而此时并未启动。

[root@new55?~]#?showmount?-a

All?mount?points?on?new55:

192.168.6.113:/vmsnfs

192.168.6.179:/vmsnfs

192.168.6.17:/vmsnfs

[root@new55?~]#?showmount?-d

Directories?on?new55:

/vmsnfs

[root@new55?~]#?

?

Q:怎么从别的机器看nfs服务端共享了哪些目录?

A:使用showmount -e <ip_or_host>就可以看到nfs服务器上共享的目录情况。

[root@sunrise17?~]#?showmount?-e?192.168.6.55

Export?list?for?192.168.6.55:

/vmsnfs?*

[root@sunrise17?~]#?

?

Q:在Linux配置了防火墙的情况怎么启用NFS服务?

A:有待研究,欢迎高手指点。我使用的RHEL5.5上默认的防火墙设置如下:

[root@new55?~]#?iptables-save

#?Generated?by?iptables-save?v1.3.5?on?Thu?Nov?18?09:44:44?2010

*filter

:INPUT?ACCEPT?[0:0]

:FORWARD?ACCEPT?[0:0]

:OUTPUT?ACCEPT?[900:105354]

:RH-Firewall-1-INPUT?-?[0:0]

-A?INPUT?-j?RH-Firewall-1-INPUT?

-A?FORWARD?-j?RH-Firewall-1-INPUT?

-A?RH-Firewall-1-INPUT?-i?lo?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?icmp?-m?icmp?--icmp-type?any?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?esp?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?ah?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-d?224.0.0.251?-p?udp?-m?udp?--dport?5353?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?udp?-m?udp?--dport?631?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?tcp?-m?tcp?--dport?631?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-m?state?--state?RELATED,ESTABLISHED?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?tcp?-m?state?--state?NEW?-m?tcp?--dport?22?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?tcp?-m?state?--state?NEW?-m?tcp?--dport?80?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-p?tcp?-m?state?--state?NEW?-m?tcp?--dport?443?-j?ACCEPT?

-A?RH-Firewall-1-INPUT?-j?REJECT?--reject-with?icmp-host-prohibited?

COMMIT

#?Completed?on?Thu?Nov?18?09:44:44?2010

[root@new55?~]#?

?

?

点击下面的链接查看本文其他部分内容:

1?NFS概述

2?Linux下NFS服务端的设置

3?Linux下NFS客户端的设置

4?Windows下NFS客户端的安装及设置

?

待续。

发表评论
用户名: 匿名