NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。

1、设置主机服务器

(1)安装NFS服务器

  root@ubuntu:~# apt-get update

  root@ubuntu:~# apt install nfs-kernel-server

(2)创建导出目录

  与客户端系统共享的目录称为导出目录。

  可以根据自己的选择来确定导出目录的路径及命名。

  root@ubuntu:~# mkdir -p /home/rabbit/NFS_SHARE

  删除文件夹的限制权限

  root@ubuntu:~# chown nobody:nogroup /home/rabbit/NFS_SHARE

  root@ubuntu:~# chmod 777 /home/rabbit/NFS_SHARE

  现在,客户端系统上的所有组的所有用户都可以访问导出目录。

(3)通过NFS导出文件为客户端分配服务器访问权限

  创建出导出目录后,需要为客户端提供访问主机服务器的权限。

  此权限通过位于系统的 /etc/exports 文件定义。

  root@ubuntu:~# vim /etc/exports

  • 单个客户端
  • /home/rabbit/NFS_SHARE clientIP(rw,sync,no_subtree_check)

  • 多个客户端(按IP)
  • /home/rabbit/NFS_SHARE clientIP_1(rw,sync,no_subtree_check)

    /home/rabbit/NFS_SHARE clientIP_2(rw,sync,no_subtree_check)
  • 多个客户端(整个子网)
  • /home/rabbit/NFS_SHARE 192.168.8.0/24(rw,sync,no_subtree_check)

    rw: 读写操作
    sync:
    no_subtree_check: 阻止子树检查

(4)导出共享目录

  在主机系统中完成上述配置后,可以通过以下命令将共享目录导出:

  root@ubuntu:~# exportfs -a

  为了使所有配置生效,重启NFS服务器:

  root@ubuntu:~# systemctl restart nfs-kernel-server

(5)为客户端打开防火墙

  ufw allow from [clientIP or clientSubnetIP] to any port nfs

  使用以下命令,访问客户端计算机的整个子网:

  root@ubuntu:~# ufw allow from 192.168.8.0/24 to any port nfs

  root@ubuntu:~# ufw status

2、设置客户端计算机

(1)安装 NFS Common

  更新系统的存储库索引和Internet的索引:

  root@ubuntu:~# apt-get update

  root@ubuntu:~# apt-get install nfs-common

(2)为NFS主机的共享文件夹创建安装点

  root@ubuntu:~# mkdir -p /home/rabbit/NFS_CLIENT

(3)在客户机上挂载共享目录

  mount serverIP:/shareFolder_server /home/rabbit/mountFolder_client

  root@ubuntu:~# mount 192.168.8.245:/home/rabbit/NFS_SHARE /home/rabbit/NFS_CLIENT

(4)测试连接

  在NFS主机服务器的导出目录中创建或保存文件。

  现在,打开客户端计算机上的 NFS_CLIENT 文件夹,可以在此文件夹中查看共享和访问的同一文件。

3、总结

  在 Ubuntu 系统上设置 NFS 服务器 - 客户端 环境已完成。

  学习了如何配置NFS服务器和客户端,以便可以共享文件夹,然后在没有任何防火墙或权限相关鼓掌的情况下顺利访问文件夹。

  现在,可以使用 NFS 协议轻松地将内容从一个 Ubuntu 系统共享到另一个系统。

Ubuntu 18.04 LTS上安装NFS服务器和客户端的更多相关文章

  1. 10分钟学会在Ubuntu 18.04 LTS上安装NFS服务器和客户端

    https://www.linuxidc.com/Linux/2018-11/155331.htm

  2. 如何在Ubuntu 18.04 LTS上安装和配置MongoDB

    MongoDB是一款非关系型数据库,提供高性能,高可用性和自动扩展企业数据库. MongoDB是一个非关系型数据库,因此您不能使用SQL(结构化查询语言)插入和检索数据,也不会将数据存储在MySQL或 ...

  3. 在Ubuntu 18.04系统上安装Systemback的方法(抄)

    在Ubuntu 18.04系统上安装Systemback的方法 2018-12-26 21:39:05作者:林莉稿源:云网牛站 本文介绍如何在Ubuntu 18.04或者Ubuntu 18.10系统上 ...

  4. Ubuntu 18.04 Linux上安装Etherpad,基于Web的实时协作编辑器

    介绍 Etherpad是一个开源的,基于Web的实时协作编辑器(http://www.0834nanke.com) 它允许多个人使用他们的Web浏览器同时编辑文档. 它还提供了一些很酷的功能,如富文本 ...

  5. Ubuntu 18.04 Server上安装LAMP

    由于要进行渗透测试,所以这两天就在搭LAMP的环境(过程及其痛苦) 这里分享一些我遇到的问题. 首先介绍一下我的使用环境  VM虚拟机,ubuntu 与主机NAT连接 由于之前一直使用的是kali(默 ...

  6. unbuntu 18.04 LTS 版 安装Samba服务器

      首先需要注意的是,此时服务器的版本是乌班图18.04 LTS Server ,安装配置Samba服务器 . 首先来对当前的软件进行更新. 1 sudo apt-get upgrade 2 sudo ...

  7. 在Ubuntu 18.04系统上安装Pydio Cells详细图文教程

    前言   基于云的协作工具Pydio cell提供了一系列灵活的特性,包括应用内消息传递.文件共享和版本控制.下面逐步介绍安装过程. Pydio cell最初是一个简单的基于云的文件共享系统,但经过升 ...

  8. 在 Ubuntu 16.04 LTS 上安装 Python 3.6.0

    原文连接:https://segmentfault.com/a/1190000007912666 最近 Python 3 发布了新版本 Python 3.6.0,好像又加入了不少黑魔法!- 由于暂时不 ...

  9. 在 Ubuntu 18.04 /centos7上安装 Python 3.7

    扩展源安装 sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:deadsn ...

随机推荐

  1. JS 接口定义及实现的例子

    //定义一个函数,目的是将参数中的第二个函数所有属性放到第一个参数中,目的是将接口中所有方法放到实现类中 Object.extend=function(destination,source){ for ...

  2. 使用springcloud开发测试问题总结

    使用springcloud开发测试 如下描述的问题,没有指明是linux部署的,都是在windows开发环境上部署验证发现的. Issue1配置客户端不使用配置中心 问题描述: 配置客户端使用配置中心 ...

  3. java多线程与线程并发五:多个线程访问共享对象和数据的方式

    本节的内容主要是对前面几节提到的线程间共享数据的方式做一个总结. 线程之间共享数据有以下几种方式: 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象. 2.如果每个线程执行的代码不同 ...

  4. java面试题-Java集合相关

    1. ArrayList 和 Vector 的区别 ArrayList和Vector底层实现原理都是一样得,都是使用数组方式存储数据 Vector是线程安全的,但是性能比ArrayList要低. Ar ...

  5. Look into Bitmap images

    What's a Bitmap image? I'm not going to explain the differences between raster and vector images, no ...

  6. ASP.NET Core 3.0 gRPC 身份认证和授权

    一.开头聊骚 本文算是对于 ASP.NET Core 3.0 gRPC 研究性学习的最后一篇了,以后在实际使用中,可能会发一些经验之文.本文主要讲 ASP.NET Core 本身的认证授权和gRPC接 ...

  7. pat 1120 Friend Numbers(20 分)

    1120 Friend Numbers(20 分) Two integers are called "friend numbers" if they share the same ...

  8. hdu 2554 最短路 (dijkstra)

    最短路Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  9. js对象的sessionStorage,判断对象相等,判断是否包含某属性

    一,storage storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储 因此需要借JSON进行类型转化来存储: let obj = { name:'Jim' } sessio ...

  10. 生成Alpine LXC容器的根文件系统

    一个Alpine LXC容器的文件系统内容包括以下内容 根文件系统 应用程序,库文件以及配置文件 根文件系统主要包含alpine linux最小系统所需要的组件.下面主要讲一下制作根文件系统的方法. ...