什么是NFS?
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
 
通过nfs,我们可以实现不同设备下文件的访问。(尤其是跨设备拷贝大型文件的时候)
 
注:通过nfs还能实现从uboot直接读取远程文件系统
 
搭建好了NFS服务器以后,其他的设备就可以通过网络对服务器的nfs进行挂载并访问。
 
NFS的安装与配置
安装
sudo apt-get install nfs-kernel-server -y
增加配置
sudo vim /etc/exports
增加策略,每个策略一行
设定格式如下:
        共享目录 主机名称或者IP(参数1, 参数2)
例如:
/nfs *(rw,sync,no_root_squash)
 
-------------------------------------------------------
/nfs                             :要共享的路径
*                                  :*通配,表示所有网段都可以访问
sync                            :同步写入硬盘
no_root_squash     :nfs客户端共享目录使用者权限
------------------------------------------------------
 
启动
service nfs-kernel-server restart
(启动之前要确保对应的文件夹是存在的,否则会出现'Job for * canceled.')
停止
service nfs-kernel-server stop
查看是否启动
service nfs-kernel-server status
 
或者
 
netstat -a | grep nfs
 
或者
 
nfsstat 
测试
#mkdir /mnt/nfs                     --在/mnt下创建nfs目录
#touch /nfs/nfstest                   --在/nfs目录下创建一个文件nfstest
#mount -t nfs localhost:/nfs /mnt/nfs --将主机/nfs目录挂载到/mnt/nfs下
#ls /mnt/nfs/                         --查看/mnt/nfs/目录下有nfstest文件
#umount /mnt/nfs/                     --测试完后卸载掉
 
NFS的使用
客户端
mount -o nolock,tcp 服务器IP:/配置的共享路径 /映射到本机的路径
 
如:
 
mount -o nolock,tcp 192.168.5.113:/nfs /nfs --将5.113中的/nfs挂载到本地的/nfs
服务器(其实服务器已经包含了客户端)
 
 
 
 
 
 
 
 
 
 
 
NFS的有关参数
刚刚所展示的NFS是简单的实现,其实它还有很多值得注意的地方,“参数”。
NFS的常用目录及常用命
/etc/exports NFS服务的主要配置文件
/usr/sbin/exportfs NFS服务的管理命令
/usr/sbin/showmount 客户端的查看命令
/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab 记录曾经登录过的客户端信息
NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。
/etc/exports文件内容格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)] 
这里的参数有两部分---服务端参数、客户端参数。
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
a. 输出目录:
输出目录是指NFS系统中需要共享给客户机使用的目录;
b. 客户端:
客户端是指网络中可以访问这个NFS输出目录的计算机
客户端常用的指定方式
指定ip地址的主机:192.168.0.200
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:*
c. 选项:
选项用来设置输出目录的访问权限、用户映射等。
NFS主要有3类选项:
访问权限选项
设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置);
no_root_squash:与rootsquash取反;
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);
其它选项
secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置);
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay:检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率(默认设置);
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;
 
 
客户端
先来看服务端在/etc/exports 括号中可以指定的参数:
选项
描述
rw
允许读写权限
ro
只读权限
sync
同步模式(Default),所有数据在写入后可以请求
async
异步模式,数据在写入过程中可以写入
secure
NFS通过1024以下的安全TCP/IP端口发送(Default)
insecure
NFS可以通过所有端口发送
wdelay
如果多个用户要写入NFS目录,则归组写入 (Default)
no_wdelay
如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
subtree_check
如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限 (Default)
no_subtree_check
与subtree_check对应
root_squash
Map requests from uid/gid 0 to the anonymous uid/gid.
no_root_squash
root用户具有根目录的完全管理访问权限。
all_squash
Map all uids and gids to the anonymous user. 对公共目录访问时较有用。
no_all_squash
保留共享文件的UID和GID (Default)
anonuid=UID
指定匿名用户访问时映射机的用户uid
anongid=GID
指定匿名用户访问时映射机的用户gid
常用配置示例如下:
  1. /tmp     *(rw,no_root_squash)
  2. /public 192.168.0.*(rw)   *(ro)
  3. /nfs/test  192.168.0.100(rw)
  4. /home/linux  *.361way.com(rw,all_squash,anonuid=40,anongid=40)
  5. /build buildhost[0-9].local.domain(rw)
  6. /foo 2001:db8:9:e54::/64(rw) 192.0.2.0/24(rw)
客户端mount时的相关参数:
参数
描述
默认值
suid
nosuid
如果挂载点上面有任何 SUID(粘滞位) 的 binary 程序时,
你只要使用 nosuid 就可以取消 SUID 的功能!
suid
rw
ro
如在服务允许写的权限,但为了安全起见,可以挂载时指定仅使用读取权限挂载
rw
dev
nodev
一般只有 /dev 这个目录挂载时才会用到
dev
exec
noexec
是否具有执行 binary file 的权限?
如果掛载的只是资料区 (例如 /home),那么可以选择 noexec
exec
user
nouser
是否允许使用者进行挂载与卸载功能?
如果要保护系統,最好不要提供使用者進行掛载与卸载
nouser
auto
noauto
这个 auto 指的是『mount -a』时,是否自动挂载该挂载点。
如果你不需要这个 partition 随时被挂载,可以设为 noauto。
auto
 
 
上面是 mount 自带的参数,除此之外,nfs 还支持指定以下参数:
参数
参数功能
默认值
fg
bg
这两参数有点类似于进程中的fg、bg,指定fg mount时,会一直等到挂载成功或超时。指定bg时,挂载会在后台进行。
fg
soft
hard
为hard时,当C/S其中一台离线,则RPC 会持续的呼叫,直到对方恢复连线为止。如果是 soft ,那 RPC 会在 time out 后『重复』呼叫,而非『持续』呼叫,
因此系統的延迟会比较不明显。
hard
intr
当使用hard 方式時,若加上 intr 参数, 则当 RPC 持续呼叫中,该次的呼叫是可以被中断的 (interrupted)。
rsize
wsize
读(rsize)和写(wsize)的block块大小 (block size)。 这个设定值可以影响用户端与服务器端传送缓存区的大小。一来说,在LAN网络内,有足够内存时,这个值可以设的大一些。比如 32768 (bytes) ,用于提升数据传送速度。但也不能超过网络能够传送的最大值。
rsize=1024
wsize=1024
 
 
注意事项:
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :在 export 的时候,将详细的信息输出到屏幕上。
具体例子:
[root @test root]# exportfs -rv  (全部重新export一次!)
exporting 192.168.0.100:/home/test
exporting 192.168.0.*:/home/public
exporting *.the9.com:/home/linux
exporting *:/home/public
exporting *:/tmp
reexporting 192.168.0.100:/home/test to kernel
具体例子:
[root @test root]#exportfs -au (全部都卸载了)
[root @test root]# vi /etc/exports
 
/home/soft 192.168.2.11(rw)
[root@localhost init.d]# nfs start
-bash: nfs: command not found
[root@localhost init.d]# ./nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
 

Ubuntu 搭建 配置 nfs服务器的更多相关文章

  1. linux 安装配置NFS服务器

    一.Ubuntu安装配置NFS 1.安装NFS服务器 sudo apt-get install nfs-kernel-server 安装nfs-kernel-server时,apt会自动安装nfs-c ...

  2. [转]Ubuntu下配置NFS服务

    [转]Ubuntu下配置NFS服务  http://blog.163.com/liu8821031%40126/blog/static/111782570200921021253516/ Table ...

  3. 配置NFS服务器

    一.配置NFS服务器 1.安装软件包 [root@wjb10000 ~]# yum -y install nfs-utils.x86_64 2.修改配置文件[root@wjb10000 ~]# vim ...

  4. ubuntu 下配置Web服务器

    ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...

  5. [转载]Ubuntu安装配置 git 服务器和客户端

    原文地址:Ubuntu安装配置 git 服务器和客户端作者:ding404 1.配置前准备 服务器:安装ssh server另外还装了gitosis做git的权限管理 sudo apt-get ins ...

  6. CentOS 7下搭建配置SVN服务器

    CentOS 7下搭建配置SVN服务器 1. 安装 CentOS通过yum安装subversion. $ sudo yum install subversion subversion安装在/bin目录 ...

  7. Ubuntu 14.04安装配置NFS服务器

    (一)安装NFS服务器1.1-安装Ubuntu nfs服务器端: sudo apt-get install nfs-kernel-server 1.2-安装nfs的客户端: sudo apt-get ...

  8. Ubuntu环境下NFS服务器搭建

    看到鸟哥私房菜对NFS的介绍,就想试试玩一下.看起来步骤也很简单. 1.背景名词. NFS(Network File System) 作用:让所有的Unix-like 机器通过网络共享彼此的文件 局限 ...

  9. Ubuntu配置NFS服务器

    NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...

随机推荐

  1. LeetCode 第 153 场周赛

    一.公交站间的距离(LeetCode-5181) 1.1 题目描述 1.2 解题思路 比较简单的一题,顺时针.逆时针两次遍历,就能解决. 1.3 解题代码 class Solution { publi ...

  2. insomnihack CTF 2016-microwave

    目录 程序基本信息 程序漏洞 整体思路 exp脚本 内容参考 程序基本信息 程序防护全开,shellcode修改got表等方法都不太可行,同时pie开启也使程序代码随机化了. 程序漏洞 这是一个发推特 ...

  3. javascript中的contains方法和compareDocumentPosition方法

    IE有许多好用的方法,后来都被其他浏览器抄袭了,比如这个contains方法.如果A元素包含B元素,则返回true,否则false.唯一不支持这个方法的是IE的死对头firefox.不过火狐支持com ...

  4. T-MAX—项目系统设计与数据库设计

    团队作业第四次-项目系统设计与数据库设计 这个作业属于哪个课程 2019秋福大软件工程实践Z班 这个作业要求在哪里 团队作业第四次-项目系统设计与数据库设计 团队名称 T-MAX 这个作业的目标 在开 ...

  5. Redis Desktop Manager的下载及安装

    一.下载Redis Desktop Manager 1. Redis Desktop Manager 的下载路径 (1)https://pan.baidu.com/s/1Jvr9MbgFn4UJh4M ...

  6. Can I prevent the Firefox developer tools network panel from clearing on page reload?

    Can I prevent the Firefox developer tools network panel from clearing on page reload? I couldn't fin ...

  7. 利用XMl标签定义动画

    渐变透明度动画 <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android=&qu ...

  8. SSH工具登录远程指定节点时输入用户名密码方式【我】

    通过堡垒机部署项目, 一种方式:先把补丁传到接入机,然后用CRT等命令行工具登录指定接入机,然后用SCP命令把 补丁传到 生产服务器,比如 scp -P90010 /app/backup/packet ...

  9. 关于PADS的一些概念和实用技巧(一)

    关于PADS的一些概念和实用技巧(一) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 1. 关于part,CAE Decal,PCB Decal Part ...

  10. python不定长参数 *argc,**kargcs(19)

    在 python函数的声明和调用 中我们简单的了解了函数的相关使用,然而在函数传递参数的时候,我们埋下了一个坑,关于不定长参数的传递我们还没有讲,今天这篇文章主要就是讲解这个问题. 一.函数不定长参数 ...