SAMBA 端口139 445
SMB协议,提供网络上不同计算机共享文件,打印机 、
可以让windows和linux通信
server1作为服务端 Centos做实验 192.168.109.134
server2作为客户端 Centos做实验 192.168.109.138
server1:
yum -y install samba samba-client samba-common
setenforce 0
mkdir -p /home/smb/xiaoshouzu
vi /etc/samba/smb.conf
[xiaoshou]
path = /home/smb/xiaoshouzu
public = no
writeable = yes
write list = @xiaoshou01
useradd xiaoshou01 #添加用户
smbpasswd -a xiaoshou01 #设置smb密码 (test123)
chmod 774 /home/smb/xiaoshouzu/
systemctl restart smb
systemctl stop firewalld #关闭防火墙 或者放行139和445端口
chgrp xiaoshou01 /home/smb/xiaoshouzu/ #赋值权限
cd /home/smb/xiaoshouzu/
mkdir wenjianjia
server2:
setenforce 0
yum -y install samba samba-client
smbclient -L //192.168.109.134 -U xiaoshou01
smbclient //192.168.109.134/xiaoshou -U xiaoshou01
如果是windows平台 可以直接在计算机对应的深入框 和ftp效果一样
\\192.168.109.134
nfs (本身并没有用到网络协议 rpcbind是提供面向远程服务的) OSI会话层 111端口
network file system 一般服务端开启TCP 2049端口等待客户端的连接
network file system网络文件系统 主要是在unix和linux上实现的
准备两台服务器 server1 和server2(Linux服务器)
server1 CentOS 192.168.109.134
server2 CentOS 192.168.109.138
server1上 (CentOS主机的操作方式)
yum -y install nfs-utils
systemctl enable nfs
systemctl start nfs
mkdir /data
chmod 755 /data
vi /etc/exports
/data/ 192.168.109.0/24(rw,sync,no_root_squash,no_all_squash)
systemctl restart nfs
showmount -e localhost //查看挂载
systemctl stop firewalld //关闭防火墙
setenforce 0
server2用户处(Centos用户端的操作方式)
yum -y install nfs-utils
systemctl start rpcbind
showmount -e 192.168.109.134
mkdir /data
mount -t nfs 192.168.109.134:/data /data //挂载server1的data目录
cd /data
ls
此时两个linux系统之间这个共享文件也就实现了同步!修改是即时发生同步的
df //查看相应信息
NFS服务简介
什么是NFS?
NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;
NFS一般用来存储共享视频,图片等静态数据。
NFS挂载原理:
图;服务器挂载结构图
如上图示:
当我们在NFS服务器设置好一个共享目录/home/public后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到自己文件系统的某个挂载点,这个挂载点可以自己定义,如上图客户端A与客户端B挂载的目录就不相同。并且挂载好后我们在本地能够看到服务端/home/public的所有数据。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。挂载后,NFS客户端查看磁盘信息命令:#df –h。
既然NFS是通过网络来进行服务器端和客户端之间的数据传输,那么两者之间要传输数据就要有想对应的网络端口,NFS服务器到底使用哪个端口来进行数据传输呢?基本上NFS这个服务器的端口开在2049,但由于文件系统非常复杂。因此NFS还有其他的程序去启动额外的端口,这些额外的用来传输数据的端口是随机选择的,是小于1024的端口;既然是随机的那么客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?这时就需要通过远程过程调用(Remote Procedure Call,RPC)协议来实现了!
RPC与NFS通讯原理
因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能就是指定每个NFS功能所对应的port number,并且通知客户端,记客户端可以连接到正常端口上去。
那么RPC又是如何知道每个NFS功能的端口呢?
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口,RPC就会记录下这些端口,并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那么服务器端的RPC就会将之前记录的NFS端口信息告知客户端。如此客户端就会获取NFS服务器端的端口信息,就会以实际端口进行数据的传输了。
注意:在启动NFS SERVER之前,首先要启动RPC服务(即portmap服务,下同)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行systemctl reload nfs或exportfs –rv即可使修改的/etc/exports生效
NFS客户端和NFS服务器通讯过程:
首先服务器端启动RPC服务,并开启111端口
服务器端启动NFS服务,并向RPC注册端口信息
客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输。