NFS攻略 - Linux文件服务器搭建与使用实例
本文链接:http://codingstandards.iyunv.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
或者并作一条执行
chown -R nfsnobody: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服务是否都已经启动,如下所示:
[iyunv@new55 ~]# chkconfig --list portmap
portmap 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[iyunv@new55 ~]# chkconfig --list nfs
nfs 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[iyunv@new55 ~]#
Q:怎么确认某个目录已经被分享?
A:使用exportfs可以看到共享目录列表,exportfs -v可以看到更详细的信息。
[iyunv@new55 ~]# exportfs
/vmsnfs <world>
[iyunv@new55 ~]# exportfs -v
/vmsnfs <world>(rw,async,wdelay,root_squash,no_subtree_check,anonuid=65534,anongid=65534)
[iyunv@new55 ~]# showmount -e
Export list for new55:
/vmsnfs *
[iyunv@new55 ~]#
Q:修改了/etc/exports如何使之生效?
A:有多种方式,如下之一:
exportfs -a
exportfs -r
service nfs restart
Q:如何显示哪些端口用来提供rpc服务?
A:rpcinfo -p 或者 rpcinfo -p localhost
在 NFS服务没有启动时
[iyunv@new55 ~]# rpcinfo -p
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 984 status
100024 1 tcp 987 status
启动 NFS服务之后
[iyunv@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服务器的机器,而此时并未启动。
[iyunv@new55 ~]# showmount -a
All mount points on new55:
192.168.6.113:/vmsnfs
192.168.6.179:/vmsnfs
192.168.6.17:/vmsnfs
[iyunv@new55 ~]# showmount -d
Directories on new55:
/vmsnfs
[iyunv@new55 ~]#
Q:怎么从别的机器看nfs服务端共享了哪些目录?
A:使用showmount -e <ip_or_host>就可以看到nfs服务器上共享的目录情况。
[iyunv@sunrise17 ~]# showmount -e 192.168.6.55
Export list for 192.168.6.55:
/vmsnfs *
[iyunv@sunrise17 ~]#
Q:在Linux配置了防火墙的情况下怎么启用NFS服务?
A:有待研究,欢迎高手指点。我使用的RHEL5.5上默认的防火墙设置如下:
[iyunv@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
[iyunv@new55 ~]#
点击下面的链接查看本文其他部分内容:
1 NFS概述及实例
2 Linux下NFS服务端的设置
3 Linux下NFS客户端的设置
4 Windows下NFS客户端的安装及设置
待续。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com