NFS服务器

作者: 运维猫 | 来源:发表于2019-08-26 21:21 被阅读0次

    NFS服务端概述:

    NFS,是Network File System的简写,即网络文件系统。网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

    模式:C/S 模式

    端口:

    RHEL7是以NFSv4作为默认版本,NFSv4使用TCP协议(端口号是2049)和NFS服务器建立连接

    安装nfs

    [root@docker-01 ~]# yum -y install rpcbind nfs-utils

    配置文件位置

    [root@docker-01 ~]# ls /etc/exports

    /etc/exports

    启动NFS服务

    先查看2049端口是否开放:

    [root@docker-01 ~]# netstat -antpu | grep 2049

    [root@docker-01 ~]# systemctl start rpcbind

    [root@docker-01 ~]# systemctl start nfs-server.service

    再次查看端口监听状态

    [root@docker-01 ~]# netstat -antpu | grep 2049

    tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -                   

    udp        0      0 0.0.0.0:2049            0.0.0.0:*                           -  

    配置开机自动启动

    [root@docker-01 ~]# systemctl enable nfs-server.service

    服务的使用方法(看下机器名字,客户端挂载)

    showmount -e NFS服务器IP

    例:

    [root@docker-02 opt]# showmount -e 172.17.120.50

    Export list for 172.17.120.50:

    挂载(发现挂载不上报错)

    [root@docker-02 opt]# mount 172.17.120.50:/tmp /opt

    mount.nfs: access denied by server while mounting 172.17.120.50:/tmp

    修改配置文件,实战举例

    [root@docker-01 tmp]# vim /etc/exports

    /tmp  *(rw)

    注意: * 表示对所有网段开放权限

    也可以指定特定的网段

    下面是一些NFS共享的常用参数: 

     ro                    只读访问 

     rw                   读写访问 

     sync               资料同步写入到内存与硬盘当中

     async             资料会先暂存于内存当中,而非直接写入硬盘 

     secure             NFS通过1024以下的安全TCP/IP端口发送 

     insecure          NFS通过1024以上的端口发送 

     wdelay            如果多个用户要写入NFS目录,则归组写入(默认) 

     no_wdelay      如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 

     Hide                在NFS共享目录中不共享其子目录 

     no_hide           共享NFS目录的子目录 

     subtree_check   如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 

     no_subtree_check   和上面相对,不检查父目录权限 

     all_squash               共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 

     no_all_squash         保留共享文件的UID和GID(默认) 

     root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认) 

     no_root_squash        root用户具有根目录的完全管理访问权限 

    重启服务

    [root@docker-01 tmp]# exportfs -rv  ##重新读取配置文件,不中断服务.

    exporting *:/tmp

    客户端查看:

    [root@docker-02 opt]# showmount -e 172.17.120.50

    Export list for 172.17.120.50:

    /tmp *

    挂载共享

    [root@docker-02 opt]# mount -t nfs 172.17.120.50:/media/ /opt/

    [root@docker-02 opt]# df -Th

    文件系统                类型      容量  已用  可用 已用% 挂载点

    /dev/mapper/centos-root xfs       198G  1.4G  197G    1% /

    devtmpfs                devtmpfs  4.8G     0  4.8G    0% /dev

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /dev/shm

    tmpfs                   tmpfs     4.9G  8.5M  4.8G    1% /run

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /sys/fs/cgroup

    /dev/vda1               xfs       397M  133M  264M   34% /boot

    tmpfs                   tmpfs     984M     0  984M    0% /run/user/0

    172.17.120.50:/tmp      nfs4      198G  1.4G  197G    1% /opt

    开机自动挂载:

    编辑 

    [root@docker-02 opt]# vim /etc/fstab

    在文件最后添加自动挂载的信息:

    /dev/mapper/centos-root /    xfs    defaults        0 0

    UUID=79285dbe-478c-4de0-93e7-ee906f1133cc/boot   xfs    defaults    0 0

    /dev/mapper/centos-swap swap       swap    defaults        0 0

    172.17.120.50:/tmp /opt nfsdefaults0 0

    验证写入权限

    [root@docker-02 opt]# umount /opt/

    [root@docker-02 opt]# ls

    yunweimao

    [root@docker-02 opt]# df -Th

    文件系统                类型      容量  已用  可用 已用% 挂载点

    /dev/mapper/centos-root xfs       198G  1.4G  197G    1% /

    devtmpfs                devtmpfs  4.8G     0  4.8G    0% /dev

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /dev/shm

    tmpfs                   tmpfs     4.9G  8.5M  4.8G    1% /run

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /sys/fs/cgroup

    /dev/vda1               xfs       397M  133M  264M   34% /boot

    tmpfs                   tmpfs     984M     0  984M    0% /run/user/0

    [root@docker-02 opt]# mount -a

    [root@docker-02 opt]# df -Th

    文件系统                类型      容量  已用  可用 已用% 挂载点

    /dev/mapper/centos-root xfs       198G  1.4G  197G    1% /

    devtmpfs                devtmpfs  4.8G     0  4.8G    0% /dev

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /dev/shm

    tmpfs                   tmpfs     4.9G  8.5M  4.8G    1% /run

    tmpfs                   tmpfs     4.9G     0  4.9G    0% /sys/fs/cgroup

    /dev/vda1               xfs       397M  133M  264M   34% /boot

    tmpfs                   tmpfs     984M     0  984M    0% /run/user/0

    172.17.120.50:/tmp      nfs4      198G  1.4G  197G    1% /opt

    [root@docker-02 opt]# touch huqi

    [root@docker-02 opt]# ls

    huqi  yunweimao

    如果创建文件夹报错

    [root@docker-02 opt]# touch huqi

    touch: 无法创建"/huqi": 权限不够

    解决方法:

    设置访问权限一般包含2部分

    1)服务本身权限

    2)目录访问权限

    nfs默认使用nfsnobody用户

    [root@docker-01 tmp]# grep nfs /etc/passwd

    rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin

    nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

    修改权限

    [root@docker-01 tmp]# chmod 777 -R /tmp

    [root@docker-01 tmp]# chown nfsnobody.nfsnobody -R /tmp

    再次验证写入权限

    [root@docker-02 opt]# touch yunweicat

    [root@docker-02 opt]# ll !$

    ll yunweicat

    -rw-r--r--. 1 root root 0 8月  18 15:21 yunweicat

    关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。

    相关文章

      网友评论

        本文标题:NFS服务器

        本文链接:https://www.haomeiwen.com/subject/pnhjectx.html