NFS服务器搭建与配置 Linux教程



--每台服务器都执行

-安装NFS工具

yum install -y nfs-utils

--Master服务器执行

# 暴露挂载配置

echo "/data/share  *(insecure,rw,sync,no_root_squash)" > /etc/exports

# 创建挂载目录

mkdir -p /data/share

# 应用rpcbind

systemctl enable rpcbind

# 应用NFS服务器

systemctl enable nfs-server

# 启动rpcbind

systemctl start rpcbind

# 启动NFS服务器

systemctl start nfs-server

# 激活上述配置

exportfs -r

# 检查NFS

exportfs

--Worker服务器执行

# 使用Master的内网ip

showmount -e 192.168.1.101

mkdir -p /data/file

mount -t nfs 192.168.1.101:/data/share /data/file

--卸载

umount 192.168.1.101:/data/share



-查看安装是否安装

rpm -qa |grep nfs-utils

rpm -qa |grep rpcbind

yum remove -y nfs-utils-2.3.3-59.el8.x86_64

yum remove -y rpcbind-1.2.5-10.el8.x86_64


# 服务端安装NFS服务

yum install -y  nfs-utils           #安装nfs服务

yum install -y  rpcbind            #安装rpc服务


systemctl status rpcbind.service

systemctl status nfs-utils.service


systemctl start rpcbind.service

systemctl start nfs.service


-先查看是否开机自启

systemctl list-unit-files |grep rpcbind

systemctl list-unit-files|grep nfs.service

-设置开机自启

systemctl enable rpcbind. service

systemctl enable nfs. service


systemctl enable rpcbind

systemctl enable nfs-server

systemctl enable nfs-lock

systemctl enable nfs-idmap


systemctl disable 


systemctl start rpcbind

systemctl start nfs-server

systemctl start nfs-lock

systemctl start nfs-idmap


# 创建public共享目录

mkdir  -p /data/file   

chmod  -R 777  /data/file 


echo "/data/file  192.168.0.*(rw,sync,no_root_squash)" >> /etc/exports


vi /etc/exports

/data/file   *(insecure,rw,async,no_root_squash) 

/data/file 192.168.245.0/24(rw,sync)
/protected 192.168.245.0/24(rw)


systemctl reload nfs     #重新加载NFS服务,使配置文件生效


其中:/public 是服务器端共享的目录 

      192.168.245.0/24共享目录的客户端ip地址 

      (rw,sync) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。

      也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。


exportfs -r                           #让配置文件生效 


#参数详解

ro #只读共享

rw #读写共享

sync #同步写操作

async #异步写操作

wdelay #延迟写操作

root_squash #屏蔽远程root权限

no_root_squash #不屏蔽远程root权限

all_squash #屏蔽所有远程用户的权限

no_subtree_check #此选项可防止子树检查


# 配置文件说明

格式: 共享目录的路径 允许访问的NFS客户端(共享权限参数)

如上,共享目录为/public , 允许访问的客户端为192.168.245.0/24网络用户,权限为只读。

请注意,NFS客户端地址与权限之间没有空格。

NFS输出保护需要用到kerberos加密(none,sys,krb5,krb5i,krb5p),格式sec=XXX

none:以匿名身份访问,如果要允许写操作,要映射到nfsnobody用户,同时布尔值开关要打开,setsebool nfsd_anon_write 1

sys:文件的访问是基于标准的文件访问,如果没有指定,默认就是sys, 信任任何发送过来用户名

krb5:客户端必须提供标识,客户端的表示也必须是krb5,基于域环境的认证

krb5i:在krb5的基础上做了加密的操作,对用户的密码做了加密,但是传输的数据没有加密

krb5p:所有的数据都加密


# 用于配置NFS服务程序配置文件的参数

参数 作用

ro 只读

rw 读写

root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

sync 同时将数据写入到内存与硬盘中,保证不丢失数据

async 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据


# NFS客户端挂载配置

yum -y install showmount


-使用showmount命令查看nfs服务器共享信息。输出格式为“共享的目录名称 允许使用客户端地址”

showmount -e 192.168.245.128      


showmount命令的用法;

参数作用
-e显示NFS服务器的共享列表
-a显示本机挂载的文件资源的情况NFS资源的情况
-v显示版本号

# 在客户端创建目录,并挂载共享目录

mkdir -p /data/file


---客户端挂载mount操作

mount -t  nfs   119.3.157.97:/data/file  /data/file


vim /etc/fstab    # 在该文件中挂载,使系统每次启动时都能自动挂载

119.3.157.97:/data/file  /data/file       nfs    defaults 0 0
192.168.245.128:/protected /mnt/data     nfs    defaults  0 1

mount -a           # 让文件/etc/fstab生效

df -Th                # 检查


---卸载

umount 119.3.157.97:/data/file


mount -h 验证客户端是否安装成功


#在Window上挂载NFS

第一步:在控制面板–>添加程序和功能–>添加NFS组件。

NFS服务, NFS客户端, 管理工具

在此电脑,映射驱动器中添加nfs地址,和要共享的文件夹。

\\ip\

第三步:如果权限有问题,打开注册表:regedit, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default 下新建两个OWORD(64)位值,添加值AnonymousGid,值默认为0,AnonymousUid,值默认为0。



# NFS Iptables放行服务端口


---启动NFS会开启如下端口:

1)portmapper 端口:111 udp/tcp;

2)nfs/nfs_acl 端口:2049 udp/tcp;

3)mountd 端口:"32768--65535" udp/tcp

4)nlockmgr 端口:"32768--65535" udp/tcp

系统 RPC服务在 nfs服务启动时默认会给 mountd 和 nlockmgr 动态选取一个随机端口来进行通讯。


---查看NFS启动后的端口

rpcinfo -p localhost


--设置固定端口

vim /etc/sysconfig/nfs 

-在最后添加

RQUOTAD_PORT=4001

LOCKD_TCPPORT=4002

LOCKD_UDPPORT=4002

MOUNTD_PORT=4003

STATD_PORT=4004


---重启服务

systemctl daemon-reload

-注意先启动rpc

service rpcbind restart

service nfs restart



---设置防火墙

-增加需要开放的端口:111、2049、4001-4004

vim /etc/sysconfig/iptables

-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A INPUT -p udp -m udp --dport 111 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
-A INPUT -p udp -m udp --dport 2049 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4001:4004 -j ACCEPT
-A INPUT -p udp -m udp --dport 4001:4004 -j ACCEPT


-重启防火墙

service iptables restart

service iptables save


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回