文件共享___NFS服务

说明:
在Linux系统中提供了两种设置文件共享的方法:NFS和Samba。利用NFS服务实现的文件共享只能用于Linux系统之间,而利用Samba服务则可以实现Windows和Linux系统之间的互访。NFS(网络文件系统),采用客户机/服务器工作模式,在NFS服务器上将某个目录设置为共享目录,然后在客户端可以将这个目录挂载到本地使用
一、启动NFS服务

[root@justin ~]# rpm -qa|grep nfs
nfs-utils-lib-1.1.5-4.el6.i686
nfs4-acl-tools-0.3.3-6.el6.i686
nfs-utils-1.2.3-26.el6.i686
#CentOS系统默认安装了nfs,未安装使用“yum install nfs-utils”命令安装nfs服务
[root@justin ~]# service nfs status
rpc.svcgssd is stopped
rpc.mountd is stopped
nfsd is stopped
rpc.rquotad is stopped
[root@justin ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[root@justin ~]# chkconfig --level 345  nfs on
[root@justin ~]# chkconfig --list|grep nfs
nfs             0:off   1:off   2:off   3:on    4:on    5:on    6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@justin ~]#


二、配置nfs

NFS服务的配置文件是/etc/exports,可以设置NFS的共享目录、访问权限和允许访问的主机等参数,在默认情况下,这个文件是个空文件,没有配置任何共享目录,这是基于安全性的考虑,即使系统启动NFS服务也不会共享任何资源。

[root@justin ~]# mkdir /nfs  ;NFS共享文件夹
[root@justin ~]# touch /nfs/nfs.txt  ;NFS共享文件
[root@justin ~]# vim /etc/exports
#/nfs 10.15.72.0/24(ro,sync)
/nfs 10.15.72.0/255.255.255.0(ro,sync,c,no_subtree_check,anonuid=501,anongid=501)
[root@justin ~]# /etc/init.d/nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
[root@justin ~]#


/nfs 指定要共享的目录

10.15.72.0/24 允许访问共享的网段,如果允许所有客户端访问,可以用通配符“*”

ro     客户端访问共享目录时的权限,ro表示只读,rw表示可读可写
sync    设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

no_subtree_check 不检查目录权限,提高目录读取速率

anonuid anongid 共享目录所有者、组ID


三、测试NFS

在NFS服务端测试共享,命令:showmount 参数: -e  显示指定的NFS服务器上所有输出的共享目录

[root@justin ~]# showmount -e 10.15.72.166
Export list for 10.15.72.166:
/nfs 10.15.72.0/255.255.255.0
[root@justin ~]#


四、客户端访问NFS共享

1.关闭服务端的SELINUX

[root@justin ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
#SELINUXTYPE=targeted


2.防火墙中开启相应端口

[root@justin ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#portmap或者rpcbind(CentOS 6.x)使用:tcp/udp 111
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
#nfs使用:tcp/udp 2049
-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
#rquotad使用:tcp/udp 875
-A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT
#mountd使用:  TCP/UDP 892
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
#nlockmgr使用:TCP/32803端口  UDP/32769端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT
#status使用:  TCP/UDP 1001-1004共四个端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1001 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1002 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1002 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1003 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1003 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1004 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 1004 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


3.在客户端查看NFS服务器共享信息

使用showmount查看信息客户端也需要安装NFS服务

[root@justin ~]# showmount -e 10.15.72.166
Export list for 10.15.72.166:
/nfs 10.15.72.0/255.255.255.0
[root@justin ~]# mkdir /nfs
[root@justin ~]# mount 10.15.72.166:/nfs /nfs
[root@justin ~]# cd /nfs && ll
total 0
-rw-r--r-- 1 root root 0 Sep  2 14:02 nfs.txt
[root@justin nfs]# vim /etc/fstab  ;文末添加以下
10.15.72.166:/nfs       /nfs                    nfs     defaults        0 0

通过以上挂载后就可以使用NFS共享内容,如果被挂在可以通过autofs服务来访问共享信息

[root@justin ~]# cd /net/
[root@justin net]# ll
total 0
[root@justin net]# cd 10.15.72.166
[root@justin 10.15.72.166]# ls
nfs
[root@justin 10.15.72.166]# ll nfs
total 0
-rw-r--r-- 1 root root 0 Sep  2 14:02 nfs.txt


autofs 自动挂载服务,

如果它检测到用户正试图访问一个尚未挂载的文件系统,它就会自动检测该文件系统,如果存在,那么autofs会自动将其挂载。另一方面,如果它检测到某个已挂载的文件系统在一段时间内没有被使用(默认是5分钟),那么autofs会自动将其卸载。所以autofs特别适合于挂载使用光盘、优盘这类移动存储设备,以及像NFS这类共享目录。

[root@justin 10.15.72.166]# rpm -qa|grep autofs ;yum install autofs
autofs-5.0.5-54.el6.i686
[root@justin 10.15.72.166]# /etc/init.d/autofs status
automount (pid  1650) is running...
[root@justin 10.15.72.166]# vim /etc/auto.master
/misc   /etc/auto.misc  #自动挂载在/etc/auto.misc这个配置文件中具体定义的
/net    -hosts #专用于自动挂载远程主机上的NFS共享目录,只要进入该挂载点,执行“cd IP”或“cd 计算机名”,就可以自动挂载远程主机上的NFS共享目录
/server  /etc/auto.server #自己添加的,挂载点配置文件的名称都统一为auto,扩展名则应与挂载点名称相同



你可能感兴趣的:(nfs)