NFS配置使用

摘要:
打开指定的端口号2.4。启动NFS服务3。NFS客户端安装和配置3.1。客户端安装3.2。客户端配置3.3。测试验证3.4。其他4./etc/exports参数描述5。更多参考文献1。服务器环境概述:您可以在客户端的NFS服务器上直接操作此共享目录中的文件。
NFS配置使用

目录

一、概述

服务器环境:CentOS7
NFS服务器ip:192.168.1.100
客户端ip:192.168.1.101

期望:在NFS服务器上共享一个目录,在客户端上可以直接操作NFS服务器上的这个共享目录下的文件。

--
部署NFS服务所需用到的软件
nfs-utils:NFS服务的全程序,包括rpc.nfsd、rpc.mountd这两个daemons和相关文档说明,以及执行命令文件等。
rpcbind:Centos.x下面RPC的主程序。NFS可视为一个rpc程序,在互动任何一个RPC程序之前,需要做好端口和功能的对应映射工作,这个映射工作就是由RPCBIND服务来完成的。因此,在提供NFS服务之前必须先启动RPCBIND服务。

二、NFS服务器端安装和配置

2.1.服务端安装

yum install -y rpcbind nfs-utils

2.2.服务端配置

mkdir -p /data/nfs
chown -R nfsnobody.nfsnobody /data/nfs
echo "/data/nfs 192.168.1.101(rw,sync)">/etc/exports

2.3.防火墙安全配置

2.3.1.方案一、关闭防火墙或对内网所有端口开放

#关闭防火墙-firewalld方式配置
systemctl stop firewalld  #停止firewall
systemctl disable firewalld #禁止firewall开机启动

#关闭防火墙-iptables方式配置
systemctl stop iptables  #停止iptables
systemctl disable iptables #禁止iptables开机启动


#指定ip开放所有端口-firewall方式配置
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.101" accept'
firewall-cmd --reload

#指定ip开放所有端口-iptables方式配置
iptables -A INPUT -s 192.168.1.101 -p all -j ACCEPT
service iptables save

2.3.2.方案二、防火墙不关闭,开放指定端口号

由于rpc和nfs除了使用111和2049端口号外,还会部分端口号是动态的,故需要先配置为静态端口
编辑/etc/sysconfig/nfs,末尾增加如下内容
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004

#firewall方式配置开放端口111,2049,30001,30002,30003,30004
firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp --add-port=30001/tcp --add-port=30001/udp --add-port=30002/tcp --add-port=30002/udp --add-port=30003/tcp --add-port=30003/udp --add-port=30004/tcp --add-port=30004/udp --permanent
firewall-cmd --reload

#iptables方式配置开放端口111,2049,30001,30002,30003,30004
iptables -I INPUT -s 192.168.1.101 -p tcp -m multiport --dports 111,2049,30001,30002,30003,30004 -m comment --comment "NFS服务" -j ACCEPT
service iptables save
systemctl restart iptables.service

2.4.启动NFS服务

systemctl start rpcbind #启动rpcbind
systemctl enable rpcbind #配置rpcbind开机启动

systemctl start nfs-server #启动nfs
systemctl enable nfs-server #配置nfs开机启动


rpcinfo -p localhost #查看注册端口情况
showmount -e localhost #查看自己共享的服务

三、NFS客户端安装和配置

3.1.客户端安装

yum install -y rpcbind nfs-utils
systemctl stop rpcbind
systemctl enable rpcbind

3.2.客户端配置

#客户端查看服务器共享目录
showmount -e 192.168.1.100

#挂载目录
mkdir -p /data/uploads
mount -t nfs 192.168.1.100:/data/nfs /data/uploads

#查看挂载情况
df -h

#配置开机自动挂载
echo "mount -t nfs 192.168.1.100:/data/nfs /data/uploads" >>/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

3.3.测试验证

#测试验证
客户端 echo 'hello'> /data/uploads/hello.txt
服务端查看 ls /data/nfs/

3.4.其他

#解除挂载:
umount /data/uploads

四、/etc/exports参数说明

/data/nfs 192.168.1.101(rw,sync)

的意思是把共享目录/data/nfs共享给192.168.1.101这个客户端ip,只允许192.168.1.101这个主机有访问权限,后面括号里的内容是权限参数,其中:

rw 表示设置目录可读写。
sync 表示数据会同步写入到内存和硬盘中,相反 async 表示数据会先暂存于内存中,而非直接写入到硬盘中。

如果想让另外一台主机也可以挂载这个目录,那么直接在后面追加即可,比如:
/data/nfs 192.168.1.101(rw,sync) 192.168.1.102(rw,sync)

多个目录可以每行配置一个,如果想让这个网段的主机都可以访问,
假如此时子网掩码是255.255.255.0,网关是192.168.1.0,那么ip那里可以写成192.168.1.0/24表示允许地址段的所有主机访问
/data/nfs 192.168.1.0/24(rw,sync)
也可以这种格式配置
/data/nfs 192.168.1.*(rw,sync)

客户端常用的指定方式
指定ip地址的主机:192.168.1.101
指定子网中的所有主机:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主机:david.bsmart.cn
指定域中的所有主机:*.bsmart.cn
所有主机:*
访问权限选项

设置输出目录只读:ro
设置输出目录读写:rw
用户映射选项
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody);
no_all_squash:与all_squash取反(默认设置);
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置),即如果访问NFS Server共享目录的用户是root,则它的权限将压缩成匿名用户,同时它的UID和GID通常会变成nfsnobody账号身份。;
no_root_squash:与rootsquash取反,访问NFS Server共享目录的用户如果是root的话,它对该共享目录具有root权限,这个配置原本是为无盘客户端准备的。谨慎使用;
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服务器也不检查其父目录的权限,这样可以提高效率;

五、更多参考资料

免责声明:文章转载自《NFS配置使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一句话木马:ASP篇[转]chrome浏览器中 F12 功能的简单介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java Web学习总结(27)——JavaEE中Web服务器、Web容器、Application服务器区别及联系

在JavaEE 开发Web中,我们经常会听到Web服务器(Web Server)、Web容器(Web Container)、应用服务器(Application Server),等容易混淆不好理解名词。本文介绍对三者的理解,以及区别与联系,如果有不正确的地方还请指正。 由上图可以看到一个标准的http处理流程: 首先通过Web Server 接受Http...

.deb文件打包

最近因项目需要,需要把文件夹打包为.deb格式的包,幸亏一位朋友帮忙指导了我一个晚上,才得以完成,这里再次对他表示感谢。 整理打包流程如下: 请先参考此博客内容,了解deb文件打包 如何制作Deb包和相应的软件仓库,其实这个很简单。这里推荐使用dpkg来进行deb包的创建、编辑和制作。 首先了解一下deb包的文件结构: deb 软件包里面的结构:它具有D...

JAVA安装

1.      下载 访问oracle官方网站,下载java运行时环境1.6.33,地址: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#sjre-7u79-oth-JPR   选择 Accept Li...

安卓构建内核(转载待查)

构建内核  来源: https://source.android.com/setup/build/building-kernels#downloading 本页详细介绍了为 Android 设备构建自定义内核的流程。以下说明会逐步指导您如何选择正确的源代码,构建内核,以及将结果嵌入到根据 Android 开源项目 (AOSP) 构建的系统映像中。 您可以...

Docker云端部署篇

视频地址 新建 docker/nginx.conf server{ lister 80; location /{ root /usr/share/ngin/html; index index.html; } } 新建 docker/Dockerfile FROM...

ftp的主动模式(port)与被动模式(PASV) (转)

FTP是仅基于TCP的服务,不支持UDP。与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。  (一)主动FTP           主动方式的FTP是这样的:客户端从一个任意的非特权端口...