?潭水无风?

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

NFS(Network File System)即网络文件系统,NFS允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

NFS体系至少有两个部分组成:1.一台NFS服务器;2.若干客户机。

虚拟系统:Ubuntu 16.04 LTS

方法和步骤:

1.安装NFS服务

$ sudo apt-get install nfs-kernel-server nfs-common  # 或su 使用root用户权限

 

2.创建共享文件夹(共享文件目录为已存在情况下,请忽略此步骤)

1 $ sudo mkdir /sharedfile # 创建你要共享的目录(共享文件夹,因为我在根目录创建sharedfile目录,所以需要使用root权限)
2 $ sudo chmod 777 /sharedfile # 我将该目录权限全部开放(根据个人需求配置权限)
3 $ ls -l / # 查看sharedfile共享目录和权限

 

3.修改配置文件中挂载目录和权限

$ sudo vi /etc/exports  #服务器的设定都是在/etc/exports文件,用户把需要共享的文件系统直接编辑到/etc/exports文件中

(1) rw:可读写权限

(2)  ro:只读权限

(3) no_root_squash:但登陆NFS主机使用共享目录的使用者是root时,其权限将被转换成为匿名使用者,通常它的UID与GID都非变成nobody身份。

(4) root_squash:如果登陆NFS主机使用共享目录的使用者是root,那么对于这个共享目录来说,它具有root权限。

(5) all_squash:忽略登陆NFS使用者的身份,其身份都会被转换为匿名使用者,通常即nobody。

(6) anonuid:通常为nobody,也可以自行设定这个UID的值,UID必须存在于/etc/passwd中。

(7) anongid:同anonuid,但是变为Group ID。

(8) sync:同步写入资料到内存与硬盘中。

(9) async:资料会先暂存于内存中,而非直接写入硬盘。

(10) subtree_check(默认):若输出目录是一个子目录,则NFS服务器将检查其父目录权限。

(11) no_subtree_check:即便输出目录是一个子目录,NFS服务器不检查其父目录的权限,此选项打开非有轻度的安全问题,但会提高效率,增加可靠性。

 

4.重启NFS服务

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

 

5.测试NFS

(1) 在共享目录新建文件(目的为了识别共享目录)

1 $ cd /sharedfile
2 $ ls
3 $ mkdir 01 02 03 04 05 06 07 08 09 #在本机其他目录或其他主机目录下观测到01~09等目录为共享成功(随意创建的文件就好,只要你能识别)

(2) 本机测试NFS

  • 查看本机IP和端口
$ ifconfig
  • 将配置的共享目录挂载到/mnt/cdrom目录下
sudo mount -o nolock 192.168.1.8:/sharedfile /mnt/cdrom
  • 查看/mnt/cdrom目录下
ls /mnt/cdrom

 

(3) 其他主机测试NFS

  • 查看客户端和服务器的网络时候连通
$ ping 192.168.1.8
  • 查看服务端的共享目录
showmount -e 192.168.1.8
  • 将该目录挂载到本地计算机
$ sudo mount 192.168.1.8:/sharedfile /mnt 
  • 访问本地路径
$ ls /mnt
  • 卸载(非必要)
$ sudo umount /mnt

 

6.NFS相关命令

(1) exportfs

不重启nfs服务应用更新,相关选项如下:

-a 全部挂载或卸载 /etc/exports中的内容

-r 重新读取/etc/exports中的信息,并同步更新/etc/exports、/var/lib/nfs/xtab

-u 卸载单一目录(和-a一起使用为卸载所有/etc/exports文件中的目录)

-v 在export的时候,将详细的信息输出到屏幕上。

 

(2) nfsstat

查看NFS的运行状态

 

(3) rpcinfo

查看rpc服务注册情况。

相关选项:

-p 显示所有的端口与程序信息。

示例:

rpcinfo -p localhost #列出本机的RPC注册状况。

 

(4) showmount

查询NFS共享目录信息,相关选项如下:

-a 显示已经于客户端连接上的目录信息

-e IP或者hostname 显示此IP地址分享出来的目录

示例:

showmount -e localhost #查询本机NFS共享目录
showmount -a localhost #查询本机共享目录连接情况

posted on 2018-10-02 11:17  万物拾光  阅读(238)  评论(0)    收藏  举报