nfs远程共享存储
一.原理
Network File System 网络文件系统,NFS 和其他文件系统一样,是在 Linux 内核中实现的,因此 NFS 很难做到与 Windows 兼容。NFS 共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用。是Unix系统之间共享文件的一种协议,NFS 文件系统仅支持基于 IP 的用户访问控制,NFS 的客户端主要为Linux。
文件系统级别共享(是NAS存储) ————- 已经做好了格式化,可以直接用。 速度慢比如:nfs,samba。
NFS:一般作为Linux主机之间共享
SAMBA:一般作为Linux和Windows主机之间的共享
二.RPC和NFS之间如何通信
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向RPC去注册这些端口。RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
三.实战
NFS-server操作<br />[root@nfs-server ~]# yum -y install rpcbind #安装rpc协议的包<br />[root@nfs-server ~]# yum -y install nfs-utils #安装nfs服务,提供文件系统<br />启动服务<br />[root@nfs-server ~]# systemctl start nfs<br />[root@nfs-server ~]# systemctl start rpcbind<br />[root@nfs-server ~]# mkdir /nfs-dir #创建存储目录<br />[root@nfs-server ~]# echo "nfs-test" >> /nfs-dir/index.html #制作test文件<br />[root@nfs-server ~]# vim /etc/exports #编辑共享文件<br />/nfs-dir 192.168.246.0/24(rw,no_root_squash,sync)
参数
可选参数注释:
ro:只读
rw:读写
:表示共享给所有网段。
sync:所有数据在请求时写入共享
root_squash: 对于使用分享目录的使用者如果是root用户,那么这个使用者的权限将被压缩成为匿名使用者,只读权限。
no_root_squash:使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限。
web1 客户端操作
[root@web1 ~]# yum -y install rpcbind
[root@web1 ~]# yum -y install nfs-utils
[root@web1 ~]# mkdir /qf #创建挂载点
[root@web1 ~]# mount -t nfs 192.168.246.160:/nfs-dir /qf #挂载
[root@web1 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 1.1G 16G 7% /
tmpfs tmpfs 98M 0 98M 0% /run/user/0
192.168.246.160:/nfs-dir nfs4 17G 1.4G 16G 8% /qf
[root@web1 ~]# ls /qf
index.html
*[root@web1 ~]# umount /qf #取消挂载
制作开机挂载
[root@web1 ~]# vim /etc/fstab
192.168.246.160:/nfs-dir /qf nfs defaults 0 0
[root@web1 ~]# mount -a
Ftp及Iftp
Ftp 介绍
文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。 FTP 基于TCP协议生成一个虚拟的连接,用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。
FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
FTP基础
软件包: vsftpd
FTP端口: 控制端口 command 21/tcp
配置文件: /etc/vsftpd/vsftpd.conf
FTP Server
作用:提供文件共享服务,实现上传下载
端口:
21号,建立tcp连接 默认端口
20号:传输数据
ftp主动模式
原理:ftp主动模式:客户端开启一个端口N(>1023)向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
客户端:1024 —>21: 服务端 建立连接
客户端:1025<—>20: 服务端 传输数据
21端口建立连接
20端口传输数据
ftp被动模式
ftp被动模式:客户端同时开启两个端口(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
1客户端
1024 1025
1024——21
1025——1027
2客户端
1024 1025
1024——21
1025——1028
Vsftp 服务器简介
非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用(1000用户)等。
vsftpd配置
FTP Server(服务端)
实验环境—准备两台机器
关闭防火墙和selinux
[root@ftp-server ~]# yum install -y vsftpd
[root@ftp-server ~]# systemctl start vsftpd
FTP默认共享目录:/var/ftp
[root@ftp-server ~]# touch /var/ftp/pub/test.txt #创建文件到共享目录
[root@ftp-server ftp]# chown ftp.ftp pub/ -R #修改根目录的属主与属组
编辑配置文件
[root@ftp-server ~]# vi /etc/vsftpd/vsftpd.conf ——找到29行将下面的注释取消
34 anon_other_write_enable=YES
anon_umask=000 #匿名用户上传下载目录权限掩码
[root@ftp-server ~]# systemctl restart vsftpd #重启服务
FTP Clinet(客户端)
关闭防火墙和selinux
[root@client ~]# yum -y install lftp #安装客户端
[root@client ~]# touch upload.txt #创建测试文件
[root@client ~]# mkdir /test/ #创建测试目录
[root@client ~]# touch /test/test1.txt #在测试目录下面创建测试文件
[root@client ~]# lftp 192.168.246.160 #服务端ip
ftp配置本地用户登录
创建 zhangsan、lisi 密码都设置为 “123456”
[root@ftp-server ~]# useradd zhangsan
[root@ftp-server ~]# useradd lisi
[root@ftp-server ~]# echo ‘123456’ | passwd —stdin zhangsan #设置密码
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully。
配置本地用户ftp配置文件
[root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf —-添加注释并修改
anonymous_enable=NO #将允许匿名登录关闭
#anon_umask=022 #匿名用户所上传文件的权限掩码
#anon_upload_enable=YES #允许匿名用户上传文件
#anon_mkdir_write_enable=YES #允许匿名用户创建目录
#anon_other_write_enable=YES #是否允许匿名用户有其他写入权(改名,删除,覆盖)
新添加
local_root=/home/zhangsan # 设置本地用户的FTP根目录,一般为用户的家目录
local_max_rate=0 # 限制最大传输速率(字节/秒)0为无限制
