linux之NFS和SAMBA

1.NFS应用场景

	NFS(Network File System网络文件系统),场景中最少包含两台服务器。应用场景中通常是存储。

2.nfs为什么需要RPC?

因为NFS支持的功能很多,不同功能会使用不同程序来启动,
	因此,NFS对应的功能所对应的端口无法固定。
	端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。
	NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,
	RPC使用固定端口111来监听来自NFS客户端的请求,并将正确的NFS服务端口信息返回给客户端,
	这样客户端与服务端就可以进行数据传输了。

3.NFS的工作流程

1、由程序在NFS客户端发起存取文件的请求,
		客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出
		文件存取功能的请求。
2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
3、客户端获取正确的端口,并与NFS daemon联机存取数据。
4、存取数据成功后,返回前端访问程序,完成一次存取操作。
	所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。

4.安装NFS

服务端配置:

	1 关闭防火墙
		//停止防火墙
		systemctl stop firewalld.service
		//关闭防火墙
		systemctl disable firewalld.service
	
	2 安装NFS,rpcbind
		yum install -y  nfs-utils rpcbind
		rpm -qa |grep nfs
		rpm -qa |grep rpc
		

	3 启动rpcbind服务
		systemctl restart rpcbind.service
		systemctl status rpcbind.service
		
	4 配置nfs配置文件
		1 创建一个文件夹
			mkdir data
			ll
			
		2 编辑nfs的配置文件
			vim /etc/exports
			
			编写内容:
			/root/data	客户端地址/24(rw,sync,no_root_squash)
			/root/date  192.168.163.111/24(rw,sync,no_root_squash)
			systemctl start nfs.service
			systemctl status nfs.service
			
			参数:
			•ro:目录只读
			•rw:目录读写
			•sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
			•async:将数据先保存在内存缓冲区中,必要时才写入磁盘
			•all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
			•no_all_squash:与all_squash取反(默认设置)
			•root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
			•no_root_squash:与rootsquash取反
			•anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
			•anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

		3 启动nfs服务
			systemctl start nfs.service

客户端配置::

	1 关闭防火墙
		//停止防火墙
		systemctl stop firewalld.service
		//关闭防火墙
		systemctl disable firewalld.service
		//临时关闭
		vim /etc/selinux/config
		图一
		setenforce 0

	2 安装NFS,rpcbind
		yum install -y  nfs-utils rpcbind
	
	3 启动rpcbind服务
		systemctl start rpcbind.service
		systemctl status rpcbind.service

    4 启动NFS服务
		systemctl start nfs.service
		systemctl status nfs.service
	

	5 建立同步文件夹
		mkdir nfstest
	
	6 开始执行挂载
		mount -t nfs 服务端地址:/data nfstest
		mount -t nfs 192.168.110:/data /root/nfstest

		ps: 卸载挂载
			umount -t nfs 服务端地址:/data /root/nfstest

注意事项:

服务器端:
		1、先启动rpcbind,再启动nfs服务
		2、如果配置文件发生变化可以使用exportfs -rv重新加载配置无需重启服务。
		3、查看rpc服务器是否启动成功rpcinfo -p
		4、查看共享目录是否存在showmount -e localhost	
		5、如果开iptables防火墙的话可以使用rpcinfo -p命令查看都需要允许哪些端口。

rpcinfo -p
showmiunt -e localhost
netstat -nltp | grep rpc
setenforce 0
chmod 777 /root/data	
systemctl restart rpcbind.service
systemctl restart nfs.service
ll /root/

	客户端:
		错误1,:Stale NFS file handle的解决方法
			1、首先用umount卸载当前目录,如果卸载不了使用umount -f /root/nfstest强制卸载,
				然后再重新挂载即可。
		错误2:touch: cannot touch ‘test2’: Permission denied nfs
			1、这个是提醒你客户端挂载的nfs服务器的目录没有权限,
				你在nfs客户端给权限没用,要不就给nfs服务器目录777权限,
				要不就配置文件里面如上加上no_root_squash参数。

rpcinfo -p
showmount -e 192.168.163.111
netstat -nltp | grep rpc
mount -t nfs 192.168.110:/data /root/nfstest
setenforce 0	
chmod 777 /root/nfstest		
mount -t nfs 192.168.110:/data /root/nfstest
systemctl restart rpcbind.service
systemctl restart nfs.service
mount -t nfs 192.168.110:/root/data /root/nfstest

图一:
在这里插入图片描述

5.SAMBA

简介:

Linux和Windows系统之间的文件传输,使用FTP,相对较安全,但是有时还是会出现一些问题,
	比如上传文件时,文件名莫名出现乱码,文件大小改变等问题。
	相比较来说,使用Samba作为文件共享,就省事简洁多了。
	Samba服务器通信协议(Server Messages Block)就是是为了解决局域网内的文件或打印机
	等资源的共享服务问题,让多个主机之间共享文件变成越来越简单。

5.1安装SAMBA

    1 机器是否安装SAMBA
		rpm -qa|grep samba
	
	2 安装SAMBA
		yum install -y samba
	
	3 关闭selinux和防火墙
	3.1 关闭SElinux
		//临时关闭
		setenforce 0 
		//永久关闭selinux
		vim /etc/selinux/config 
		SELINUX=disabled
	
	3.2 关闭防火墙
		//停止防火墙
		systemctl stop firewalld.service
		//关闭防火墙
		systemctl disable firewalld.service

	4 配置Samba配置文件
		
		1 原文件备份
			cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
		
		2 编辑文件
			vim /etc/samba/smb.conf

		3 追加内容
			//这个是共享文件夹标识,表示登录samba打开时显示的文件夹名称。
			//配置了多少个共享文件夹标识,登录samba时就会显示多少文件夹。                                           
			[durant]
			//comment是对该共享的描述,可以是任意字符串
			comment = this is the info   
			//共享的路径
			path= /home/durant      
			//是否可写入
			writable = yes    
			//是否公开
			public = no        
		
		4 设置为不予许登入系统,且用户的家目录为 /home/durant(相当于虚拟账号)的durant账号。
			useradd -d /home/durant -s /sbin/nologin durant
		
		5 将durant添加为samba用户
			 pdbedit -a -u durant

		6 启动Samba服务
			systemctl start smb.service //启动服务
			systemctl enable smb.service //设置为开机启动项
			systemctl restart smb.service //重新启动
			systemctl status smb.service //查看状态

		7 使用Windws进行连接
			
			1.”Win+E键"打开,右键“此电脑”选择“映射网络驱动器”

			2. \\服务器IP地址\共享文件夹名称(durant)
			3. pdbedit -L

			3.无读取权限解决办法
                               1 编辑文件
					vim /etc/sysconfig/selinux
				2 修改内容
					SELINUX=permissive

在这里插入图片描述

5.2pdbedit 命令说明

    pdbedit 命令用于管理Samba服务的帐户信息数据库,格式为:"pdbedit [选项] 帐户"
	第一次把用户信息写入到数据库时需要使用-a参数,以后修改用户密码、
	删除用户等等操作就不再需要了。
 
	pdbedit -L :查看samba用户
	pdbedit -a -u user:添加samba用户
	pdbedit -r -u user:修改samba用户信息
	pdbedit -x -u user:删除samba用户
 
	samba服务数据库的密码也可以用 smbpasswd 命令 操作
	smbpasswd -a user:添加一个samba用户
	smbpasswd -d user:禁用一个samba用户
	smbpasswd -e user:恢复一个samba用户
	smbpasswd -x user:删除一个samba用户
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值