文件服务器

发布于:2023-01-16 ⋅ 阅读:(483) ⋅ 点赞:(0)

目录

一、构建NFS远程共享存储

1.1NFS实战

二、ftp文件传输协议

2.1FTP基础

2.2匿名用户整体思路:

2.3ftp 配置本地用户登录


一、构建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

 

 


网站公告

今日签到

点亮在社区的每一天
去签到