目录
一、构建NFS远程共享存储
可以限制使用 共享管理 共享存储空间
通过网络实现 能Ping通 没有防火墙拦截
文件系统级别 共享
大小决定权不在于文件系统而在于分区
用端口确定机器的服务
ip 确认主机
文件系统级别共享(是NAS存储)--------已经做好了格式化,也可以直接用 。速度慢比如:nfs,samba
因为NFS 有很多功能,不同的功能需要使用不同的端口,因此NFS无法固定端口。而RPC会记录NFS端口信息,这样就能够通过RPC实现服务端和客户端的RPC来沟通端口信息
首先当NFS启动后,就会随机的使用一些端口,然后NFS就会向 RPC去注册这些端口。 RPC就会记录下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端
NFS:Network File System 网络文件系统,NFS和其他文件系统 一样,是在Linux内核中实现的,因此 NFS 很难做到 与 Windows兼容 。 NFS共享出的文件系统会被客户端识别为一个文件系统,客户端可以直接挂载并使用,是 Unix系统之间共享文件的一种协议
NFS文件系统仅支持基于IP 的用户访问控制 ,NFS的客户端主要为Linux。
实验环境 准备两台机器
支持多接点同时挂载及并发写入
1.1NFS实战
[root@localhost ~]# yum -y install nfs-utils rpcbind (安装nfs服务提供文件系统 rpc协议的包)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
setenforce: SELinux is disabled
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# mkdir /NFS (创建存储目录)
[root@localhost ~]# vim /etc/exports (编辑共享文件)
/NFS 192.168.229.134(rw,no_root_squash,sync)
[root@localhost ~]# systemctl restart nfs.service (重启服务)
[root@localhost ~]# exportfs -v
/NFS 192.168.229.134(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
参数注释:
只读
读写
表示共享给所有网段
所有数据在请求时写入共享
对于使用分享目录的使用者如果是 用户,那么这个使用者的权限将被压缩成匿名使用者,只读权限
使用分享目录的使用者,如果是 的话,那么对于这个分享的目录来说,他就具有root的权限
以上是服务
客户:
yum -y install rpcbind nfs-utils
[root@localhost ~]# mkdir /C_NFS
[root@localhost ~]# mount -t nfs
[root@localhost ~]# mount -t nfs 192.168.229.131:/NFS /C_NFS
[root@localhost ~]# df -Th
[root@localhost ~]# umount /C_NFS
二、ftp文件传输协议
Ftp 介绍
文件传输协议 (File Transfer Protocol ,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。FTP基于TCP 协议生成一个虚拟的连接,用户可以通过客户端向FTP服务器端上传、下载、删除文件,FTP服务器端可以同时提供给多人共享使用。
FTP服务是Client/Server(简称c/s)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
作用:提供文件共享服务,实现上传下载
端口: 21号,建立连接 默认端口
20号:传输数据
2.1FTP基础
软件包: vsftpd
FTP端口: 控制端口 command 21/tcp
配置文件: /etc/vsftpd/vsftpd.conf
ftp主动模式
ftp主动模式:客户端开启一个端口 N(>1023) 向服务端的21端口,建立连接,同时开启一个N+1,告诉服务端,我监听的是N+1 端口,服务端接到请求之后,用自己的20端口连接到客户端的N+1端口,进行传输
21端口建立连接
20端口传输数据
ftp被动模式:
(1024,1025),一个端口(1024)跟服务端的21端口建立连接,并请求,大哥,我连上了,你再开一个端口呗。服务端接到请求之后,随机会开启一个端口(1027)并告诉客户端我开启的是1027端口,客户端用另一个端口(1025)与服务端的(1027)端口进行连接,传输数据
Vsftp 服务器简介
非常安全的FTP服务进程(Very Secure FTP daemon,Vsftpd),Vsftpd在Unix/Linux发行版中最主流的FTP服务器程序,优点小巧轻快,安全易用、稳定高效、满足企业跨部门、多用户的使用(1000用户)等。
客户端同时开启两个端口 底层协议 TCP 协议 也是 连接协议 针对的都是文件的操作
客户端连接服务端 都是文件 不考虑空间 不需要挂载 建立连接就行
需要共同协作 CS架构 客户端服务端架构
客户端通过自身的工具 来找到服务端的文件
登录时需要账户 存在账号 三种
匿名登录 只用知道ip 使用的账号用户名指定FTP用户
用户登录 登陆的是服务器FTP 的系统中 由ftp指定的文件 需要账号密码
所看到的文件不同
2.2匿名用户整体思路:
准备两台虚拟机,关闭防火墙和Selinux 下载vsftpd 并开启服务
(FTP默认共享目录为/var/ftp)
服务端:在共享目录里创建文件
修改pub目录的属主属组为ftp (因为匿名用户默认登录用户为 ftp)要加-R
编辑配置文件 vi /etc/vsftpd/vsftpd.conf
将29行 允许匿名用户上传文件 的注释取消
允许匿名用户创建目录
允许匿名用户对目录进行操作,为新添加配置(anon_other_write_enable=YES)
34 anon_other_write_enable=YES
重启服务
注:修改完配置之后需要重启服务才能生效
还需要从新从客户端登录,否则修改后的配置看不到效果
重点:改变根目录的属主,如果不改变的话,只能访问,其他权限不能生效。因为我们是以ftp用户的身份访问的,而pub默认的属主属组是root。
客户端:关闭防火墙和selinux
安装lftp (get命令 下载,首先要开启下载功能)
lftp 服务端的IP
切换至pub目录
下载服务端的文件(从哪个目录进就会保存在哪)
也可以创建目录到服务端
客户端上传文件给服务端
put命令 (上传命令,上传之前在服务端进行配置,将上传功能打开)
退出ftp
在客户端创建测试文件 创建测试目录
在测试目录下创建测试文件
lftp 服务端ip
切换至pub 目录 上传测试文件 ls 查看
上传目录以及目录中的子文件 mirror -R /test/ ls 查看
mirror 下载目录
相关命令
#systemctl stop firewalld #systemctl disable firewalld #setenforce 0
#yum install -y vsftpd
#systemctl start vsftpd
#touch /var/ftp/pub/test.txt #创建文件到共享目录server
#systemctl enable vsftpd
#cd /var/ftp/
#ls
pub
#chown ftp.ftp pub/ -R #修改根目录的属主与属组
#vi /etc/vsftpd/vsftpd.conf ----找到29行将下面的注释取消
34 anon_other_write_enable=YES
#systemctl restart vsftpd
#yum -y install lftp #安装客户端
#lftp 192.168.246.160
#ls
lftp 192.168.246.160:/pub> get test.txt #下载
lftp 192.168.246.160:/pub> put /root/upload.txt #上传文件
lftp 192.168.246.160:/pub> mirror -R /test/ #上传目录以及目录中的子文件
具体操作
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# echo 西兰花 > /var/ftp/pub/x.sh
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# ll /var/ftp/
总用量 0
drwxr-xr-x 8 root root 232 8月 15 13:28 pub
[root@localhost ~]# chown ftp.ftp /var/ftp/pub
[root@localhost ~]# ll /var/ftp/
总用量 0
drwxr-xr-x 8 ftp ftp 232 8月 15 13:28 pub
[root@localhost ~]# systemctl restart vsftpd
12 anonymous_enable=YES
29 anon_upload_enable=YES
33 anon_mkdir_write_enable=YES
34 anon_other_write_enable=YES
客户端
[root@localhost ~]# lftp 192.168.229.131
lftp 192.168.229.131:~> ls
drwxr-xr-x 8 0 0 220 Jun 09 2021 pub
lftp 192.168.229.131:/> cd /var/ftp
cd: Access failed: 550 Failed to change directory. (/var/ftp)
lftp 192.168.229.131:/> get /root/a.sh
get: Access failed: 550 Failed to open file. (/root/a.sh)
lftp 192.168.229.131:/> exit
[root@localhost ~]# lftp 192.168.229.131
lftp 192.168.229.131:~> pwd
ftp://192.168.229.131
lftp 192.168.229.131:/> cd pub
lftp 192.168.229.131:/pub> get x.sh
10 bytes transferred
lftp 192.168.229.131:/pub> exit
[root@localhost ~]# ls
alan CentOS-7-x86_64-DVD-1708.iso nginx-1.16.0.tar.gz root
anaconda-ks.cfg nginx-1.16.0 ntfs-3g-2016.2.22-3.el7.x86_64.rpm x.sh
2.3ftp 配置本地用户登录
整体思路:
创建测试用户
使用echo '12345' | passwd --stdin tuan 设置密码(不设置密码登不上)
配置本地用户ftp 配置文件
vim /etc/vsftpd/vsftpd.conf
重启vsftpd
客户端:
lftp 服务端ip -u tuan
可以创建目录(创建在当前普通用户的家目录里)
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为无限制
[root@ftp-server ~]# useradd tuan
[root@ftp-server ~]# echo '123456' | passwd --stdin tuan #设置密码
Changing password for user tuan.
passwd: all authentication tokens updated successfully.
服务
客户
[root@localhost ~]# lftp 192.168.229.131 -u tuan
口令:
lftp tuan@192.168.229.131:~> mkdir sos
mkdir 成功, 建立 `sos'
lftp tuan@192.168.229.131:~> put /root/text
4 bytes transferred
lftp tuan@192.168.229.131:~> ls
drwxr-xr-x 2 1002 1002 6 Aug 15 07:58 sos
-rw-r--r-- 1 1002 1002 4 Aug 15 07:59 text
服务
[root@localhost ~]# ls /home/tuan
123 qq sos text
防火墙 配置文件
系统优化检测常用命令
(后期做服务脚本常用)(简介:系统优化其本质是系统在提供服务的同时,承受压力过大需进行参数调优)
1、查看平均负载
系统负载system loadd :系统CPU繁忙程度的度量,即有多少进程在等待被CPU 调度,平均负载(Load Average):一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟
用到的命令 :top uptime
2、释放 buffer和cache (不要轻易尝试)
#echo 3(信号) > /proc/sys/vm/drop_caches
3、带宽使用情况
#yum -y install iftop.x86_64
iftop
上行流量
下行流量
第一行:界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条做标尺用的。
中间部分:中间的<= => 这两个左右箭头,表示的是流量的方向 。=> 代表发送 , <=代表接收
TX:发送流量
RX:接收流量
TOTAL:总流量
Cum:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40 s 的平均流量
4、网络接口统计报告
#yum -y install nethogs.x86_64
#nethogs