NFS服务器端配置

服务器端配置
1 创建共享目录
# mkdir /home/share
# chown nobody.nogroup /home/share
2 创建或修改/etc/exports 配置文件
这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:
[共享的目录] [主机名或IP(参数,参数)] 
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
下面是一些NFS共享的常用参数:
ro 只读访问 
rw 读写访问 
sync 所有数据在请求时写入共享 
async NFS在写入数据前可以相应请求 
secure NFS通过1024以下的安全TCP/IP端口发送 
insecure NFS通过1024以上的端口发送 
wdelay 如果多个用户要写入NFS目录,则归组写入(默认) 
no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。 
hide 在NFS共享目录中不共享其子目录 
no_hide 共享NFS目录的子目录 
subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认) 
no_subtree_check 和上面相对,不检查父目录权限 
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。 
no_all_squash 保留共享文件的UID和GID(默认) 
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认) 
no_root_squas root用户具有根目录的完全管理访问权限 
anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID 
anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID 
配置文件/etc/exports内容如下:
$ cat /etc/exports
/home/share 192.168.102.15(rw,sync) *(ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。

3 Iptables 防火墙
如果我们的NFS服务器在防火墙后边,则需要在防火强策略中加入如下策略:
-A INPUT -p tcp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --dport 111,2049,4001,32764:32767 -j ACCEPT

=======================================

NFS:Network File System,linux中共享文件的服务。

使用NFS需要启用RPC(remoteprocedure call),RPC可以指定每个NFS功能所对应的端口号,重启RPC后,RPC所管理的所有NFS功能服务都需重新向RPC注册。

设置NFS需要安装nfs-utils和portmap程序,使用rpm –q可以查看是否安装

Nfs-utils提供rpc.nfsd和rpc.mountd两个daemon与其他document说明文件。

rpc.nfsd管理client是否能够登入主机,及对登入者ID的辨别。

rpc.mountd管理NFS文件系统,读取/etc/exports对比client取得相应的权限。

Portmap:端口映射;在启动rpc之前做好端口映射工作。

NFS的配置文件有两个:

/etc/exports:NFS配置文件

/var/lib/nfs/*tab:NFS服务器日志放置路径;etab记录共享出来的目录完整权限设置值;xtab记录曾经连接到此NFS主机的相关客户端数据

两个命令:

/usr/sbin/exportfs:维护NFS共享资源;重新共享/etc/exports变更目录或将NFSserver共享目录卸载或重新共享

/usr/sbin/showmount:在客户端查看NFS服务器共享出来的目录资源

/etc/exports配置文件

首先需要手动编辑/etc/exports配置文件

共享目录必须使用绝对路径,权限部分依照不同的权限共享给不同的主机,括号内是设置权限参数的位置,权限不止一个时,使用,隔开,主机名和括号连在一起。

主机名设置可以使用网段:192.168.1.0/24或完整IP:192.168.1.23也可以使用主机名称,但此主机名称需要存在于/etc/hosts中或使用DNS可以找到,找到IP即可,主机名支持通配符,如*?

/mnt/sda4/share/a      192.168.23.129(rw)

设置共享目录/mnt/sda4/share/a,仅192.168.23.129主机允许访问此共享目录,具有读写权限

/mnt/sda4/share/b      192.168.23.129(rw) *(ro)

设置共享目录/mnt/sda4/share/b,192.168.23.129可以读写该共享目录,其他主机只可以读取该共享目录

/mnt/sda4/share/c       192.168.23.129(no_root_squash)

设置共享目录/mnt/sda4/share/c,仅192.168.23.129可以访问和读写,root登录时拥有root权限

/mnt/sda4/share/d      192.168.23.0/24(rw)

设置共享目录/mnt/sda4/share/d,仅有192.168.23.0/24网段的主机才可访问和读写此目录文件

/mnt/sda4/share/e      *(rw,all_squash,anonuid=500,anongid=500)

设置共享目录/mnt/sda4/share/e,所有主机都允许访问此共享目录,具有读写权限,但他们访问该共享目录时,已将其UID、GID设置成500。NFSserver主机中UID、GID=500的权限已经设置好

权限参数说明如下:

Rw:read-write可读写的权限

Ro:read-only只读权限

no_root_squash:登入NFS主机使用共享目录的用户,如果是用户root,对于此共享目录具有root权限,不建议使用。

root_squash:登入NFS主机使用共享目录的用户,如果是用户root,此用户权限将被压缩为匿名用户,其UID和GID都会被压缩为nobody(nfsnobody)系统账号的身份。

all_squash:不论登入NFS的用户身份为何,其身份都被转换成为匿名用户,即nobody。

Anonuid:anonymous;即nobody,可以自行设定此UID值,但此UID必须存在于/etc/passwd中。

Anongid:同anonuid,变成group ID即可。

Sync:数据同步写入到内存与硬盘中

Async:数据先暂存于内存中,而非直接写入硬盘

权限说明:

1.NFS server和NFS client具有相同的UID和账号

如果NFSserver和NFSclient具有相同共享文件账号和相同UID,客户端登入NFSserver时,就会拥有/etc/exports设置的权限

2.NFS server和NFS client具有不同的账号

如果NFSclient不拥有NFSserver共享文件账号,或NFSclient的账号在NFSserver不存在,是否可以读写共享目录,需要查看NFSserver的权限而定,其身份会变为匿名用户nobody

3.NFS client的身份为root

默认情况下,客户端的root身份会被压缩成匿名用户nobody

启动NFS

启动NFS只需启动portmap和NFS服务即可。如果需要启动数据一致性检查,则需启动nfslock服务。

使用netstat–tnlu可以查看nfs开放了哪些端口。Portmap的端口为111,nfs的端口为2049

[[email protected] share]# rpcinfo -p

程序       版本 协议   端口               服务名称

100000    2   tcp   111        portmapper

100000    2   udp  111        portmapper

100024    1   udp  695        status

100003    2   udp  2049     nfs

100021    1   udp   46017  nlockmgr

………………………………………………

如果rpcinfo–p的数据无法输出,表示注册的数据有问题,重新启动portmap和nfs即可。

client查看Server有提供哪些NFS服务,可以使用showmount

# showmount -e  显示某台主机的/etc/exports所共享的目录数据

# showmount -a  显示当前主机与客户端NFS联机共享状态

# showmount -e

Export list for localhost.localdomain:

/mnt/sda4/share/e *

/mnt/sda4/share/d 192.168.23.0/24

/mnt/sda4/share/c 192.168.23.129

/mnt/sda4/share/b (everyone)

/mnt/sda4/share/a 192.168.23.129

需要扫描某台主机提供的NFS共享目录,使用showmount–e ip(hostname)即可

查看/var/lib/nfs/etab可以查看NFSserver目录权限设置情况

# cat /var/lib/nfs/etab

/mnt/sda4/share/a      192.168.23.129(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)

…………………………………………………………

如果修改/etc/exports文件之后无需重启nfs,只需重新扫瞄一次文件/etc/exports,并且重新将设定加载即可;

Exportfs:

-a:全部挂载(或卸载)/etc/exports 文件内的设置。

-r:重新挂载/etc/exports里的设置,同时同步更新/etc/exports及/var/lib/nfs/xtab的内容。

-u:卸载某一目录。

-v:在export时,将共享的目录显示在屏幕上。

重新挂载/etc/exports的设置:#exportfs–arv

全部卸载/etc/exports的设置:#exportfs–auv

客户端配置:

# mkdir -p /mnt/share/client/b

# mount -t nfs192.168.23.128:/mnt/sda4/share/b /mnt/share/client/b

# df

文件系统                                                             1K-块      已用    可用        已用%   挂载点

/dev/sda2                                                            5952284    3158868  2486176 56%               /

/dev/sda1                                                            101086     11481   84386                    12%      /boot

tmpfs                                                    127720     0          127720    0%        /dev/shm

192.168.23.128:/mnt/sda4/share/b   3905632   73408          3633824   2%       /mnt/share/client/b

设置成开机启动挂载

修改/etc/fstab文件

192.168.23.128:/mnt/sda4/share/e  /mnt/share/client/e  nfs  defaults,rw   0 0

此外可以使用autofs设置客户端需要时自动挂载,不需要时若干分钟后自动卸载,还可在/etc/fstab或客户端手动挂载时设置一些参数,方便客户端使用。

from:http://www.cnblogs.com/cabin/archive/2010/10/26/1861286.html

时间: 2024-10-28 16:28:38

NFS服务器端配置的相关文章

NFS服务器安装配置实现Ubuntu 12.04与ARM开发板文件共享

实现步骤: 1.服务器端:sudo apt-get install portmap 2.服务器端:sudo apt-get install nfs-kernel-server 3.客户端:sudo apt-get install nfs-common 4.服务器端配置:sudo gedit /etc/exports 添加:/home  *(rw,sync,no_root_squash) (共享目录)        (允许IP) (rw权限是可擦写,还有ro只读, sync代表数据会同步写入到内存

NFS服务配置流程及配置参数

NFS服务端配置流程:第一步:检查NFS服务相关软件是否安装rpm -qa|egrep "nfs-utils|rpcbind"如果没有安装,yum安装即可yum install -y nfs-utils rpcbind 第二步:修改NFS默认配置文件vim /etc/exports 01.定义共享目录 02.定于允许使用共享目录的主机或网段地址信息(03.定义共享目录权限信息) /data 172.16.1.0/24(rw,sync,all_squash) 第三步:创建共享目录,并设置

NFS完整配置

NFS介绍(关键字:共享) 1.什么是NFS? (安装软件:nfs-utils.rpcbind)NFS是Network File System的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录,NFS客户端(一般为应用服务器,例如web)可以通过挂载(mount)的方式将NFS服务器端要共享的数据目录挂载到NFS客户端,本地系统中(就是某一个挂载点下).在NFS客户端,可以打开挂载的'共享目录':这就完成NFS的共享任务. 2.相同功能的

Ubuntu 12.04下NFS安装配置图解

转载于:http://www.linuxidc.com/Linux/2013-08/89154.htm 用网线将主机与开发板连接起来,主机开启nfs服务后,就可以像tftp一样传文件到开发板了,有的人会问,不如直接用tftp好了,但是nfs还可以挂载根文件系统啊!我等屌丝先这样比较吧(本文主要是记录安装使用步骤)! 相关阅读: Ubuntu 12.04安装NFS server  http://www.linuxidc.com/Linux/2012-09/70728.htm NFS服务器安装配置实

NFS客户端配置为开机自动挂载报错(二)

NFS客户端配置为开机自动挂载时,系统启动报错. 报错信息类似: mount: mount: mount to NFS server '172.16.1.254' failed: mount: System Error: No route to host. 原因:网络启动后需要对网络内路由表进行"学习".在未完成路由表学习之前启动netfs服务会报错. 解决方法:延后netfs启动时间.(延时时间以实际情况为准,建议30秒) 示例: 修改:/etc/init.d/netfs脚本 在如下

Ubuntu 13.04 & 开发板 ---- NFS服务配置

Ubuntu sudo apt-get install nfs-kernel-server sudo apt-get install rpcbind sudo vim /etc/exports /home/xxx *(rw, sync, no_root_squash) sudo /etc/init.d/nfs-kernel-server restart sudo /etc/init.d/rpcbind restart 开发板 mount -o nolock xxx:/home/xxx /mnt/

Ubuntu 14.04下NFS安装配置

Ubuntu 14.04下NFS安装配置 参考:http://www.linuxidc.com/Linux/2013-08/89154.htm 1.执行命令:sudo apt-get install nfs-kernel-server ; 2.执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹; 3.建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs; 4.在文章的最后一行添加:/home/jacobxu/nf

双apache + php + nfs + mariadb 配置 以discuz做测试

实验目标: 1,两台前端apache和php都挂载nfs文件系统中的php程序. 2,mysql 为单独一台服务器,为php页面程序提供数据库存储 3,静态页面文件都放在nfs服务器上 4,需要dns轮循为两台前端服务器分配访问请求 缺点: 压力都在文件存储服务器上 优点:不用考虑两台web服务器静态页面一致性的问题. 操作大体步骤: 1,两台web服务器:挂载nfs.编译安装apache,添加支持fcgi协议的模块,把php请求都代理到php服务器,站点根目录为挂载的文件.根据实际情况调整进程

Centos6.7下NFS的配置安装

一 NFS集群环境搭建准备 1.1        准备好NFS服务器 二 开始安装NFS 2.1 环境信息确认 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [[email protected] ~]# uname -r 2.6.32-573.el6.x86_64 [[email protected] ~]# uname -m x86_64 2.2 NFS软件列表 查看系统是否安装: [[ema