如果想要在window和linux之间共享文件,那么用samba。如果仅仅想在Unix like系统之间共享文件,那么可以用NFS。

这篇文章分为两个部分,第一部分只是简单的用:照着写的步骤一步步来就可以实现nfs共享了,时间紧迫的可以只看这一部分;第二部分是比较详细的介绍了一些配置,有点干货。

我用的是centos 6.6(Final) X86_64操作系统。服务器IP:192.168.128.140 ;客户端IP:192.168.128.136

先配置个最简单的server和client能够让nfs跑起来。

  • server端配置(nfs依赖一个叫rpc的服务。我用的是centos 6.6,所以用rpcbind,其他版本的linux可能有其他的程序提供rpc服务)
  1. 安装rpcbind和nfs-utils :    yum install rpcbind nfs-utils
  2. 修改/etc/exports文件。(有时这个文件不存在,那就自己创建一个),添加一条   /tmp 192.168.128.136(rw,no_root_squash) 。意思是允许把 /tmp 这个文件夹分享给 192.168.128.136这个客户端,并且客户端具有read和write权限,并且如果客户端是root登录的话,那他在/tmp下创建的文件的所有者也是root。具体的解释这里就不说了。反正只要把 /tmp 192.168.128.136(rw,no_root_squash) 复制到/etc/exports文件里就行了。
     (注意/etc/exports是文件,不是文件夹)
  3. 启动 rpc 和nfs ,依次运行下面的三条绿色的命令    
 [root@www ~]# /etc/init.d/rpcbind start
# 如果 rpcbind 本來就已經在執行了,那就不需要啟動啊! [root@www ~]# /etc/init.d/nfs start
# 有時候某些 distributions 可能會出現如下的警告訊息:
exportfs: /etc/exports []: No 'sync' or 'async' option specified
for export "192.168.100.10:/home/test".
Assuming default behaviour ('sync').
# 上面的警告訊息僅是在告知因為我們沒有指定 sync 或 async 的參數,
# 則 NFS 將預設會使用 sync 的資訊而已。你可以不理他,也可以加入 /etc/exports。 [root@www ~]# /etc/init.d/nfslock start

这样服务器就好了。还有如果不出现意外的话,服务器端防火墙一定会阻止客户端的连接。所以为了简单直接关了防火墙吧。(开放端口最后讲)

  • client端配置
  1. 和server端第一步一样,安装rpcbind和nfs-utils:    yum install rpcbind nfs-utils
  2. 启动 rpc 和nfs ,依次运行下面的两条绿色的命令
      [root@clientlinux ~]# /etc/init.d/rpcbind start
    [root@clientlinux ~]# /etc/init.d/nfslock start
  3. 把服务器的文件夹mount到本地
  [root@clientlinux ~]# mkdir -p /home/nfs/public
[root@clientlinux ~]# mount -t nfs 192.168.128.140:/temp /home/nfs/public #意思是把远程的/temp文件夹mount到本地的/home/nfs/public文件夹

另外如果不记得服务器共享了哪些文件夹,可以用命令 showmount -e 服务器端IP      来查询。

好了,在客户端 cd /homt/nfs/public 你就会发现你进入的其实是服务器端的/tmp文件夹。你在里面touch一个文件在返回服务器端的/tmp文件夹看看。

上面的配置已经可以运行nfs了。下面对于有些东西详细说一下。觉得内容繁杂的并且只是想下用着的可以不看。

1. /etc/exports配置文件。看下面的例子:

 /tmp   192.168.100.0/(ro)   localhost(rw)   *.ev.ncku.edu.tw(ro,sync)
/tmp1 *(rw,no_root_squash)
/tmp2 192.168.100.123(rw)

意思是服务器有三个文件夹/tmp, /tmp1,/tmp2是共享的,不过他们共享的对象不一样。猜一猜也知道共享给了谁^_^。那个谁有几种书写方式:

  • 指定ip地址的主机:192.168.0.200
  • 指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
  • 指定域名的主机:david.bsmart.cn
  • 指定域中的所有主机:*.bsmart.cn
  • 所有主机:*

至于小括号里面的内容,表示要赋予权限,看下表:

参数值 内容说明
rw
ro
该目录分享的权限是可读写 (read-write) 或唯读 (read-only),但最终能不能读写,还是与档案系统的 rwx
及身份有关。
sync
async
sync 代表资料会同步写入到记忆体与硬碟中,async
则代表资料会先暂存于记忆体当中,而非直接写入硬碟!
no_root_squash
root_squash
客户端使用 NFS 档案系统的帐号若为
root 时,服务器端该如何判断这个帐号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody,
如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的档案系统,那么这里就得要开
no_root_squash 才行!
all_squash 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名使用者,通常也就是
nobody(nfsnobody) 啦!
anonuid
anongid
anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名使用者的 UID
设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
anonuid 指的是 UID 而 anongid 则是群组的 GID 萝。

以上是一些常见的设置,跟多的可以用 man exports 命令去查看。

2. 关于客户端连接服务器端用户的问题。(假设客户端是用tomcat用户登录的,那他连接服务器并在共享文件夹里新创建了一个文件,那么这个文件所有者是谁呢?)

  I. 客户端连接时候,对普通用户的检查

    a. 如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户;

    b. 如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户;

    c. 如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody;

  II. 客户端连接的时候,对root的检查

    a. 如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root;

    b. 如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户;

    c. 如果没有明确指定,此时root用户被压缩为nfsnobody;

    d. 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组;

3.

nfs(Network FileSystem)的简单配置的更多相关文章

  1. Linux nfs下载安装与简单配置

    1.什么是NFS? 全称 network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制. 2.为什么要用共享存储? 前端所有的应用服务器接收到用户上传的图片.文件.视频 ...

  2. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  3. Linux下NFS服务器的搭建与配置(转载)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  4. Linux下NFS服务器的搭建与配置(转)

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  5. NFS服务器的安装与配置

    由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...

  6. Linux NFS服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了Linux NFS服务器的安装与配置方法(图文详解),需要的朋友可以参考下(http://xb.xcjl0834.com) 一.NFS服务简介 NFS 是Network File S ...

  7. Linux NFS服务器的安装与配置详解

    一.NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可 ...

  8. mrtg监控网络流量简单配置

    Mrtg服务器搭建(监控网络流量) [日期:2012-07-03] 来源:Linux社区  作者:split_two [字体:大 中 小]   [实验环境] 监控机:Red Hat linux 5.3 ...

  9. <转载> FreeNAS的安装和简单配置 http://freenas.cn/?p=342

    前些日子在公司搭了一个模拟生产环境的平台.由于是测试环境,资源有限只能使用虚拟机实现,所以存储这块就想到了使用FreeNAS.很早以前玩儿过几次,当时是生产环境需要上存储设备,经过对比还是选择的更可靠 ...

随机推荐

  1. 3.30课·········Marquee标签

    页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...

  2. <linux硬件及硬盘分区>关于硬盘的规划和使用细节

    ps:期末考试 终于结束了,这下我也终于有时间开始继续经营我的博客.这个学期上的一些课真的非常有用,感觉很多课程细地讲都可以写成非常精致的技术博文,比如流水线技术,数据库的一些技术,大学里的考试考的内 ...

  3. BEM —— 源自Yandex的CSS 命名方法论

    原文链接: https://segmentfault.com/a/1190000000391762 人们问我最多的问题之一是在CSS类名中--和__是什么意思?它们的出现是源于BEM和Nicolas ...

  4. Hibernate技术

    Hibernate中3个重要的类: 配置类(configuration) 负责管理Hibernate的配置信息,包含数据库连接URL.数据库用户.数据库密麻麻.数据库驱动等. 会话工厂类(Sessio ...

  5. 英语发音规则---oo

    英语发音规则---oo 一.总结 一句话总结: 1.重读音节词尾的字母组合oo发音素[u:]的音? too [tu:] adv.太;也 zoo [zu:] n.动物园 room [ru:m] n.房间 ...

  6. GridView设置多个DatakeyNames

    1.aspx页面GridView直接绑定DataKeyNames aspx设置: <asp:GridView ID="grvGrid" runat="server& ...

  7. 分享知识-快乐自己:Java常用API总结

    1):java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileReader FileR ...

  8. Oracle忘记用户名密码

    一.oracle 11g登录服务开启 成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写 ...

  9. stl_iterator.h

    stl_iterator.h // Filename: stl_iterator.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...

  10. mysql编码

    Mysql中文乱码问题完美解决方案 修改查看MYSQL字符集(charset) MySQL 乱码之我见 10分钟学会理解和解决MySQL乱码问题 /etc/mysql/my.cnf /etc/init ...