当前位置: > Linux服务器 >

LINUX笨鸟先飞服务配置之NFS服务

时间:2014-05-17 11:05来源:linux.it.net.cn 作者:it
先说下linux下的三大网络文件服务:

    NFS:network file servers          (主要应用环境:UNIX、LINUX)

    SAMBA:                                          (适合LINUX、WINDOWS、或者苹果的系统)

    FTP:File Transfer Protocol           (同时适合在局域网和网络环境上使用)

    如果是在纯UNIX或者LINUX系统的环境下建议使用NFS网络文件系统做网络文件共享,如果是在公司内网的系统就不光光是UNIX&LINUX了还有windiws和其他的系统这个情况下最好使用SAMBA网络文件服务,如果是想提供内网和外网提供文件共享建议使用FTP网络文件共享服务

    NFS文件服务

    这个服务必须依赖与远程过程调用这个协议所以这个NFS还必须安装一个软件包:portmap。所以要安装2个软件包nfs-utils&protmap 2个软件包

    同样首先检查一下这两个软件包是否安装

    [root@LinuxServer2 ~]# rpm -qa | grep nfs

    nfs-utils-1.0.9-16.el5

    nfs-utils-lib-1.0.8-7.2

    [root@LinuxServer2 ~]# rpm -qa | grep portmap

    portmap-4.0-65.2.2.1

    Redhat 默认已经安装了这两个软件包,咱们直接配置就可以

    注:不管那个文件系统他们都有一个共同点就是:服务端如何去共享  客户端如何去访问

    #nfs 网络文件系统配置文件是在:/etc/exports 直接编辑即可,当我们编辑这个文件的时候就相当于配置这个NFS文件共享的过程

    为了更方便咱们做实验首先建立一个文件夹作为共享文件夹:

    [root@LinuxServer2 ~]# mkdir /share  建立文件夹,并创建几个文件防止用户访问时看不到文件一位是共享问题

    [root@LinuxServer2 /]# cd /share/

    [root@LinuxServer2 share]# touch test1.txt

    [root@LinuxServer2 share]# touch test2.jpg

    检查一下NFS和exportmap 服务是否正在启动,如果没有启动,启动并设置为开机启动

    -----------------------------------------------------------------------------------------------------------------------------------

    [root@LinuxServer2 share]# service nfs status

    rpc.mountd is stopped

    nfsd is stopped

    rpc.rquotad is stopped

    [root@LinuxServer2 share]# service nfs start

    Starting NFS services:                                     [  OK  ]

    Starting NFS quotas:                                       [  OK  ]

    Starting NFS daemon:                                       [  OK  ]

    Starting NFS mountd:                                       [  OK  ]

    [root@LinuxServer2 share]# chkconfig nfs on

    [root@LinuxServer2 share]# chkconfig nfs --list

    nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off

    [root@LinuxServer2 share]#

    ———————————————————————————————————————

    [root@LinuxServer2 share]# service portmap status

    portmap (pid 2430) is running…

    [root@LinuxServer2 share]# chkconfig portmap --list

    portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off

    [root@LinuxServer2 share]#

    --------------------------------------------------------------------------------------------------------------------------------------

    OK 测试环境准备好了直接编辑NFS配置文件

    咱们做这几个实验

    1、允许任何人读取

    /share                          *(ro)     -------------->/share 共享的文件夹这个需要输入绝对路径         *代表任何人(ro)read only 只读

    直接保存就可以,然后重新启动一下nfs服务

    然后在客户端的计算机上首先查看一下:NFS文件服务器是否共享

    可以通过命令:

    [root@luotianshuai ~]# showmount -e 192.168.1.101

    Export list for 192.168.1.101:

    /share *

    OK 可以看到NFS文件服务器已经共享了一个文件夹/share 并且权限是Everyone

    客户端怎么访问呢?挂载外置设备大家应该都会,对就是使用mount这个命令来把/share 这个共享文件夹挂载到客户端即可

    首先咱们建立一个挂载点(共享文件夹的挂载点)

    [root@luotianshuai tmp]# mkdir share

    [root@luotianshuai tmp]# ls

    7245b70b  mapping-root  share

    直接挂载即可

    [root@luotianshuai tmp]# mount 192.168.1.101:/share /tmp/share/

    查看挂载

    [root@luotianshuai tmp]# mount

    /dev/sda2 on / type ext3 (rw)

    proc on /proc type proc (rw)

    sysfs on /sys type sysfs (rw)

    devpts on /dev/pts type devpts (rw,gid=5,mode=620)

    /dev/sda1 on /boot type ext3 (rw)

    tmpfs on /dev/shm type tmpfs (rw)

    /dev/sda3 on /home type ext3 (rw)

    none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

    /dev/hdc on /media type iso9660 (ro)

    192.168.1.101:/share on /tmp/share type nfs (rw,addr=192.168.1.101)

    [root@luotianshuai tmp]#

    当我们访问本地的/tmp/share 的时候就是访问网络上的文件

    [root@luotianshuai tmp]# cd /tmp/share/

    [root@luotianshuai share]# ls

    test1.txt  test2.jpg

    [root@luotianshuai share]#

 测试一下,我们复制下文件

    [root@luotianshuai share]# cp /tmp/share/test1.txt /

    [root@luotianshuai share]# ls /

    bin   dev  home  lost+found  misc  net  proc  sbin     share  sys        tmp  var

    boot  etc  lib   media       mnt   opt  root  selinux  srv    test1.txt  usr

    没有问题,我们尝试把文件复制到/tmp/share 下看看是否可以

    anaconda-ks.cfg  install.log  install.log.syslog  test.sh

    [root@luotianshuai ~]# cp test.sh /tmp/share/

    cp: cannot create regular file `/tmp/share/test.sh': Read-only file system   会提示这个文件是只读的!!!!

    [root@luotianshuai ~]#

    如何卸载:和卸载外置设备和文件是一样的umount 挂载点即可

    2、共享允许写入

    为了区分和上一个实验新建立一个文件夹

    注意一点:在windows下需要设置共享权限和文件取现所以我们在给客户端访问的时候需要给客户端文件的写入权限!!!!这里windows和linux是一样的

    首先更改文件的权限:chmod 777 /sharerw

    [root@LinuxServer2 /]# chmod 777 sharerw

    drwxrwxrwx   2 root root  4096 Nov 25 12:09 sharerw

    然后修改NFS配置文件

    [root@LinuxServer2 ~]# vim /etc/exports

    /share                          *(ro)

    /sharerw                        *(rw)  -------read/write

    更改完成之后保存并重启NFS服务

    然后在客户端访问查看一下是否共享成功

    [root@luotianshuai ~]# showmount -e 192.168.1.101

    Export list for 192.168.1.101:

    /share   *

    /sharerw *

    [root@luotianshuai ~]#

    OK  没有问题挂载,同样和上一个实验首先创建一个挂载点并访问

    [root@luotianshuai ~]# mkdir -p /tmp/sharerw

    [root@luotianshuai ~]# mount 192.168.1.101:/sharerw /tmp/sharerw

    然后通过输入mount 来查看是否挂载成功

    192.168.1.101:/sharerw on /tmp/sharerw type nfs (rw,addr=192.168.1.101)  OK 挂载成功

    测试删除里面创建和删除文件

    [root@luotianshuai ~]# cd /tmp/sharerw/

    [root@luotianshuai sharerw]# mkdir test

    [root@luotianshuai sharerw]# ls

    test

    可以创建,删除试试

    [root@luotianshuai sharerw]# rm -rf test/

    [root@luotianshuai sharerw]# ls

    [root@luotianshuai sharerw]#

    OK 删除也没有问题,实验成功

    3、为特定主机做共享

    例如我指向让192.168.1.123 这个IP地址能访问特停的共享怎么做?

    为了省事情我就直接使用share 这个共享文件夹来举例子

    直接修改配置文件:

    [root@LinuxServer2 ~]# vim /etc/exports

    /share                          192.168.1.123(ro)      这里只有192.168.1.123可以去只读这个文件

    /sharerw                        *(rw)

    重启nfs服务

    比如有有一个客户端是192.168.1.121 我尝试去挂载访问这个共享文件夹

    [root@luotianshuai ~]# ifconfig

    eth0      Link encap:Ethernet  HWaddr 00:0C:29:DB:EE:7A

    inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0

    首先查看一下NFS是否有共享文件:

    [root@luotianshuai ~]# showmount -e 192.168.1.101

    Export list for 192.168.1.101:

    /sharerw *

    /share   192.168.1.123       这里看一下只允许是192.168.1.123这个客户端访问

    [root@luotianshuai ~]#

    我在192.168.1.121这个客户端尝试一下挂载

    [root@luotianshuai ~]# mount 192.168.1.101:/share /tmp/share

    mount: 192.168.1.101:/share failed, reason given by server: Permission denied 访问被拒绝了

    那我在使用192.168.1.123这个客户端访问

    [root@luotianshuai ~]# ifconfig

    eth0      Link encap:Ethernet  HWaddr 00:0C:29:DB:EE:7A

    inet addr:192.168.1.123  Bcast:192.168.1.255  Mask:255.255.255.0

    查看挂载,然后尝试挂载

    [root@luotianshuai ~]# showmount -e 192.168.1.101

    Export list for 192.168.1.101:

    /sharerw *

    /share   192.168.1.123

    [root@luotianshuai ~]# mount 192.168.1.101:/share /tmp/share

    挂载成功:192.168.1.101:/share on /tmp/share type nfs (rw,addr=192.168.1.101)

    如果我想给多个用户并不是所有的用户可以访问,并允许有制度权限访问NFS服务器下的共享文件/share 怎么设置?

    直接修改配置文件如下:

    [root@LinuxServer2 ~]# cat /etc/exports

    /share                          192.168.1.123(ro) 192.168.1.133(ro) 192.168.1.222(ro)   按照这个格式书写即可

    NFS 完成!

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容