NFS 相关

(如果按本文操作后,仍不能正常的访问,  请关闭   Selinux     和  

关闭防火墙    )

简介:   

1.      NFS是SUN开发的,用于Unix机器之间的资源共享。目前被广泛应用于Linux系统之间的资源共享

2.      NFS 是系统间进行文件共享的一种网络协议

3.      在NFS 的应用结构中有服务器和客户机两种角色

4.      NFS 客户端通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录

5.      在同一台主机中既可以是NFS 服务器也可以作为NFS客户机。

安装NFS服务器:

1.      rpm -qnfs-utils ——查询是否安装nfs-utils

2.      rpm -ivhnfs-utils-**.rpm       —— 安装软件包

(如果配置好了yum数据源,推荐使用yum install nfs-utils 来安装nfs-utils)

3.      nfs-utils :提供了NFS服务器的启动脚本和管理维护工具

主机中NFS服务配置:

         “exports” 文件用于配置NFS 服务器中输出的共享目录

# cat /etc/exports

/home/share     *(sync,ro,no_root_squash)

分别对应如下:

nfs共享目录名       客户端主机地址     设置选项

 

字段

说明

nfs共享目录名

需要进行输出的NFS共享目录名称

客户端主机地址

能够访问共享目录的主机地址

设置选项

设置共享目录的属性

 

exports文件中“客户端主机地址”字段可以使用多种形式表示主机地址

实例

说明

192.168.152.13

指定IP 地址的主机

nfsclient.test.com

指定域名的主机

192.168.1.0/24

指定网段中的所有主机(192.168.1.1-192.168.1.254)

*.test.com

指定域下的所有主机

*

所有主机(在局域网中最常使用)

 

exports文件中的“配置选项”字段放置在括号对      “( )”     中,多个选项间用逗号分隔

sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项

ro :设置输出的共享目录只读,与rw不能共同使用

rw:设置输出的共享目录可读写,与ro 不能共同使用

no_root_squash:

此参数用来要求服务器允许远程系统以它自己的root特权存取该目录。就是说,如果用户是root,那么他就对这个共享目录有root的权限。很明显,该参数授予了targetboard很大的权利。安全性是首先要考虑的,可以采取一定的保护机制,在下面会讲一下保护机制。如果使用默认的root_squash,targetboard自己的根文件系统可能有很多无法写入,所以运行会受到极大的限制。在安全性有所保障的前提下,推荐使用no_root_squash参数。

起用保护机制

可以通过设定/etc/hosts.deny/etc/hosts.allow文件来限制网络服务的存取权限

***/etc/hosts.deny***

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

 

***/etc/hosts.allow***

portmap:192.168.1.100

lockd:192.168.1.100

mountd:192.168.1.100

rquotad:192.168.1.100

statd:192.168.1.100

同时使用这两个文件就会使得只有ip192.168.1.100的机器使用NFS服务。你的targetboard的ip地址设定为192.168.1.100,这样就可以了。

配置NFS 服务器输出的共享目录

实例:   

输出”/home/share”目录,对所有主机可读,对地址为192.168.1.220的主机可读可写

输出“/home/pub ”目录,对192.168.1.0子网内的所有主机可读

# cat /etc/exports

/home/share     *(sync,ro)      192.168.1.220(sync,rw)

/home/pub       192.168.1.0/24(sync,ro)

NFS 服务器的相关操作

1.      NFS 服务器的启动和停止

service nfs       status

或者         /etc/init.d/nfs status                      —— 查看服务器的状态

service nfs       start                                    ——启动服务器

service nfs       stop                                     ——停止服务器

service nfs       restart                                ——重启服务器

 

2.      利用exportfs 命令修改设置

exportfs –ra            ——使得/etc/exports文件中所有设置生效

exportfs –v              ——查看当前主机中NFS服务器的所有目录输出

 

3.      查看NFS 服务器的共享目录

l  # showmount          -e    192.168.1.131(showmount –e localhost 显示本机的,类同exportfs -v)

 

4.      挂载NFS 服务器中的共享目录

# mount –t       nfs         192.168.1.131:/opt/share/    /mnt/share

‐t 选项指定需要挂载的文件系统类型为nfs

NFS服务器的主机地址

NFS共享目录名称

挂载点目录名称

主机地址与共享目录之间用冒号分隔

 

5.      系统启动时自动挂载NFS 文件系统

 

将NFS 的共享目录挂载信息写入“/etc/fstab”文件,可实现对NFS 共享目录的自动挂载

# tail -1/etc/fstab            ;查看/etc/fstab 文件中最后一行

192.168.1.131:/opt/share /mnt/share   nfs        defaults0 0

NFS服务器地址及共享目录名称 挂载点目录名称文件系统类型 挂载选项

 

6.      显示当前主机挂载的NFS 共享目录

使用mount命令查看

# mount | grep nfs

192.168.1.131:/home/share/ on /mnt type nfs (rw,addr=192.168.1.131)

7.      卸载系统中已挂载的NFS 共享目录

使用umount命令卸载NFS文件系统

# umount /mnt/

 

主机 NFS 服务器设置步骤:

1.      建立共享文件夹

mkdir /home/student/share

2.      设置共享目录

vim /etc/exports加入:

/home/student/share *(sync,rw,no_root_squash)

3.      使设置生效

exportfs -ra

4.      检查共享目录设置是否生效

exportfs  –v

 

客户机 NFS 服务设置步骤:

嵌入式linux内核应该支持NFS客户端。

内核配置时,选择如下:

File system--> Network FileSystems-->

选中NFS System supportProvide NFSvs client support然后保存退出,重新编译内核,将生成的zImage重新下载到target board

 

1.      启动NFS服务:service nfs start

2.      新建挂载点

mkdir /mnt/nfsfolder

3.      挂载共享目录

mount -t nfs localhost:/home/share /mnt/nfsfolder

4.      访问共享目录

cd /mnt/nfsfolder

ls -l

5.      卸载挂载点

cd ../         一定要切出挂载的目录,否则会提示当前目录忙

umount /mnt/nfsfolder

 

常见问题

1.      嵌入式开发中,目标板不能正常挂载主机的共享目录。

尝试使用  -onolock  选项

2.      挂载出错提示:mount.nfs:access denied by server while mounting

考虑主机上用来挂载的目录  是否有足够的权限

修改这两个文件或许相应的权限 /etc/hosts.deny和/etc/hosts.allow

加上红色的部分 /home/cf/rootfs  *(insecure,rw,async,no_root_squash), 允许使用大于1024的端口号 (挂载不成功时,  可以查看日志文件查看什么原因造成的不成功。

cat /var/log/messages | grep mount

 

小结:

 

l  NFS是进行文件共享的网络协议

l  在RHEL系统中NFS服务器程序和管理工具是默认安装的

l  NFS服务器通过exports文件配置共享目录输出和目录的访问权限

l  showmount 命令用于查询显示NFS服务器的相关信息

l  exportfs命令用于对“exports”文件设置的共享目录进行管理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值