本文介绍如何在Ubuntu下开启NFS文件系统,从而挂载网络上其他机器的文件系统。

  NFS, Network File System, 即网络文件系统,通常NFS有提供者和使用者,提供者export自己的目录,使用者将提供者共享(export)的目录挂载到自己的机器上,我们将提供者视为服务端,使用者视为客户端,但是在NFS中,这个C-S关系实质上是不固定的。

  一、服务器端

  1.安装nfs-kernel-server,将会自动安装nfs-common和rpcbind等依赖

$ sudo apt-get install nfs-kernel-server

  2.配置/etc/exports文件,该文件在nes-kernel-server安装前不存在,文件中的内容设置了允许发现服务端共享目录的客户端主机以及拥有的访问权限,其字段的格式如下:

  格式:  share_dir    client_host(permission1,permission2,...,permissionN)

  参数:

  (1)share_dir

  共享目录,必须是目录的绝对路径,若为文件,则在挂载时会出错。若目录名含有空格等字符,须用双引号标注。

  (2)client_host

  可以是单个主机(指定网络IP),也可以是网络段,支持通配符*和?

  (3)permission

  ro: 只读(read-only)

  rw:读和写(read-write)

  root_squash:压缩root用户。当客户端以root挂载时,则NFS服务器将root视为匿名用户服务(nfsnobody)。

  no_root_squash:不压缩root用户。当客户端以root挂载时,则NFS服务器将其为共享目录的root用户,不安全。

  sync:同步写磁盘

  async:异步写磁盘。

示例:

$ vim /etc/exports
--------Add Content Below--------
/.../EXPORT_DIR HOST1(rw,sync,no_subtree_check) HOST2(ro,sync,no_subtree_check)
/.../EXPORT_DIR    ×(ro,sync,no_subtree_check)

  上面的例子中,EXPORT_DIR是要共享到网络上的目录。

  后面的HOST1和HOST2是允许访问的客户端主机,客户端主机之间使用空格隔开。如果允许网络上的所有客户端主机发现服务器“出口”的目录,就使用星号取代主机名。

  每一个客户端主机后的括号内是访问控制策略,包括读写权限(ro,只读;rw,读写等等),访问权限之间使用逗号分隔。

  3.重启nfs服务

$ sudo /etc/init.d/nfs-kernel-server restart

  也可以检查nfs服务器是否正常监听,通过下面的命令找到对应的监听端口

$ netstat -tl | grep nfs

二、客户端挂载服务端NFS

  1.查看目标服务器共享的目录

$ sudo apt-get install nfs-kernel-server  #客户端同样也要安装nfs软件包
$ showmount -e SERVER_HOST

  -e 选项列出服务端的export list, 其中SERVER_HOST是目标服务器的主机地址,该命令将会显示这个服务器共享的目录列表。如果不指定SERVER_HOST,将会列出本机共享的目录(export list)。

  2.查看自己已经挂载了哪些目录

$ showmount -a

  将会看到目前已挂载的服务器以及相应的共享目录。

  3.创建挂载点

  如果发现有服务器共享的目录需要挂载但还没有挂载,可以为其创建一个挂载点:

$ mkdir /mnt/MOUNT_DIR

  其中的MOUNT_DIR是任意指定的名称。

  4.挂载共享目录

  在服务器已经共享的前提下,使用客户端可以挂载共享目录

$ mount SERVER_HOST:EXPORT_DIR /mnt/CLIENT_DIR

  其中,SERVER_HOST是服务器地址,目录与服务器主机使用冒号分隔,EXPORT_DIR必须与exports文件中的完全相同,这个可以通过前面的showmount命令查看。最后的参数就是我们将服务器的目录挂载到本地的挂载点,即第三布中创建的目录。

  5.卸载已挂载的目录

  如果使用完了服务器的共享目录,应该将其卸载,使用umount命令与卸载普通文件系统操作相同。

$ umount /mnt/MOUNT_DIR

(实用)Ubuntu 开启NFS服务的更多相关文章

  1. ubuntu 开启 ftp 服务 | mingming-killer

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  2. ubuntu开启SSH服务远程登录

    http://blog.csdn.net/jackghq/article/details/54974141 ubuntu开启SSH服务远程登录

  3. 【转】ubuntu 12.04下如何开启 NFS 服务 & 设置

    在嵌入式Linux开发中,利用NFS服务从开发板访问Linux主机是个高效&方便的调试方法,在程序调试过程中可以避免多次下载程序到开发板.但这需要在Linux主机上首先开通NFS服务. 以ub ...

  4. 让ubuntu开启ssh服务以及让vi/vim正常使用方向键与退格键

    VIM 修复方法: 安装vim full版本,在full版本下键盘正常,安装好后同样使用vi命令.ubuntu预装的是vim tiny版本,而需要的是vim full版本.执行下面的语句安装vim f ...

  5. Ubuntu开启NFS,挂载根目录

    1.安装NFS server Ubuntu初始状态是没有NFS server的,首先要安装NFS server: $ sudo apt-get install nfs-kernel-server (安 ...

  6. Linux下开启nfs服务

    1.什么是NFS(Network FileSystem) NFS 就是 Network FileSystem 的缩写,最早之前是由 Sun 所发展出来的.他最大的功能就是可以透过网络,让不同的机器.不 ...

  7. 如何在ubuntu开启ssh服务-使 SecureCRT远程登录

    不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service  sshd  restart  之类 ...

  8. Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝

    本文所用系统为 Ubuntu 18.04   什么是SSH?     简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...

  9. centos配置nfs服务详细步骤(centos开启nfs服务)

    一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操 ...

随机推荐

  1. 李洪强iOS经典面试题

    李洪强iOS经典面试题 1. struct和class的区别 swift中,class是引用类型,struct是值类型.值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个"指 ...

  2. 李洪强和你一起学习前端之(9)规避脱标,CSS可见性,滑动门案例

    1  复习昨天知识 1.1 浮动  特点: >浮动的元素不占位置(脱标) >可以将行内元素转化为行内块元素 >块级元素在一行上显示 >设置了浮动的元素,影响其后面的元素   作 ...

  3. 自定义 Django的User Model,扩展 AbstractUser类注意事项

    本篇主要讨论一下User Model的使用技巧. 注意, 由于Django 1.5之后user model带来了很大的变化, 本篇内容只针对django 1.5之后的版本. 1. 确定 User Mo ...

  4. 【转】Mysql千万级数据表结构修改

    当需要对表进行ddl操作如加索引.增删列时,数据量小时直接在线修改表结构影响不大当表达到百万.千万数据就不能直接在线修改表结构 下面是具体的过程:1.备份数据select * from ih_orde ...

  5. 【神经网络】Reducing the Dimensionality of Data with Neural Networks

    这篇paper来做什么的? 用神经网络来降维.之前降维用的方法是主成分分析法PCA,找到数据集中最大方差方向.(附:降维有助于分类.可视化.交流和高维信号的存储) 这篇paper提出了一种非线性的PC ...

  6. GBDT 迭代决策树

    GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决 ...

  7. ParseUrl

    #!/usr/bin/python # coding:utf-8 import re import urlparse # 解析url def ParseUrl(url): if not re.sear ...

  8. java中定义enum示例

    /** * Enumeration for the message delivery mode. Can be persistent or * non persistent. Use the meth ...

  9. 基于opencv+Dlib的面部合成(Face Morph)

    引自:http://blog.csdn.net/wangxing233/article/details/51549880 零.前言 前段时间看到文章[1]和[2],大概了解了面部合成的基本原理.这两天 ...

  10. Knockout开发中文API系列2–创建数据模型和监控属性

    Observables,这个词的翻译来自汤姆大叔,对于部分翻译不是很准确的,欢迎大家留言,以得到更好的翻译. Knockout是建立在以下3个核心功能之上的: 1.    属性监控与依赖跟踪 2.   ...